Merge branch 'Rainchus:main' into main

This commit is contained in:
CreateSource 2023-12-03 12:51:28 -05:00 committed by GitHub
commit 4113188da1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 1158 additions and 23 deletions

View file

@ -4,6 +4,8 @@
#include "types.h"
#include "common_enums.h"
#include "dolphin/dvd.h"
#include "dolphin/mtx/GeoTypes.h"
#include "dolphin/gx/GXEnum.h"
typedef struct om_ovl_his_data {
OverlayID overlay;
@ -157,4 +159,120 @@ typedef struct om_obj_data {
void *data;
} omObjData;
typedef struct anim_frame_data {
s16 pat;
s16 time;
s16 shiftX;
s16 shiftY;
s16 flip;
s16 pad;
} AnimFrameData;
typedef struct anim_bank_data {
s16 timeNum;
s16 unk;
AnimFrameData *frame;
} AnimBankData;
typedef struct anim_layer_data {
u8 alpha;
u8 flip;
s16 bmpNo;
s16 startX;
s16 startY;
s16 sizeX;
s16 sizeY;
s16 shiftX;
s16 shiftY;
s16 vtx[8];
} AnimLayerData;
typedef struct anim_pat_data {
s16 layerNum;
s16 centerX;
s16 centerY;
s16 sizeX;
s16 sizeY;
AnimLayerData *layer;
} AnimPatData;
typedef struct anim_bmp_data {
u8 pixSize;
u8 dataFmt;
s16 palNum;
s16 sizeX;
s16 sizeY;
u32 dataSize;
void *palData;
void *data;
} AnimBmpData;
typedef struct anim_data {
s16 bankNum;
s16 patNum;
s16 bmpNum;
s16 useNum;
AnimBankData *bank;
AnimPatData *pat;
AnimBmpData *bmp;
} AnimData;
typedef struct sprite_data {
u8 r;
u8 g;
u8 b;
char draw_no;
short frame;
short bank;
short attr;
short dirty_flag;
short prio;
float time;
float x;
float y;
float z_rot;
float scale_x;
float scale_y;
float speed;
float a;
GXTexWrapMode wrap_s;
GXTexWrapMode wrap_t;
short tex_scale_x;
short tex_scale_y;
Mtx *group_mtx;
union {
AnimData *data;
void (*func)(struct sprite_data *sprite);
};
AnimPatData *pat_data;
AnimFrameData *frame_data;
short work[4];
AnimData *bg;
unsigned short bg_bank;
short scissor_x;
short scissor_y;
short scissor_w;
short scissor_h;
} SpriteData;
typedef struct sprite_group_data {
short capacity;
float x;
float y;
float z_rot;
float scale_x;
float scale_y;
float center_x;
float center_y;
short *members;
Mtx mtx;
} SpriteGroupData;
typedef struct sprite_order_data {
unsigned short group;
unsigned short sprite;
unsigned short prio;
unsigned short next;
} SpriteOrderData;
#endif

View file

@ -21,6 +21,12 @@ void GXSetTevIndirect(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTe
GXIndTexAlphaSel alpha_sel);
void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets,
GXBool replace_mode, GXIndTexMtxID matrix_sel);
void GXSetTevIndTile (GXTevStageID tev_stage, GXIndTexStageID ind_stage,
u16 tilesize_s, u16 tilesize_t,
u16 tilespacing_s, u16 tilespacing_t,
GXIndTexFormat format, GXIndTexMtxID matrix_sel,
GXIndTexBiasSel bias_sel, GXIndTexAlphaSel alpha_sel);
void GXSetIndTexCoordScale(GXIndTexStageID ind_state, GXIndTexScale scale_s, GXIndTexScale scale_t);
#ifdef __cplusplus

View file

@ -30,6 +30,7 @@ void GXInitTexCacheRegion(GXTexRegion* region, GXBool is_32b_mipmap, u32 tmem_ev
GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback);
void GXInvalidateTexRegion(const GXTexRegion* region);
void GXSetTexCoordScaleManually(GXTexCoordID coord, GXBool enable, u16 ss, u16 ts);
#ifdef __cplusplus
}
#endif

View file

@ -7,6 +7,7 @@
#include "dolphin/mtx.h"
#include "dolphin/gx/GXStruct.h"
void Hu3DLayerHookSet(short layer, void (*func)(short layer));
void Hu3D2Dto3D(Vec3f*, s32, Vec3f*);
void Hu3DModelLightInfoSet(s32, s32);
void Hu3DBGColorSet(u8, u8, u8);
@ -159,7 +160,50 @@ void espKill(s16);
void espDispOn(s16);
void espPosSet(s16, f32, f32);
void HuSprInit(void);
void HuSprClose(void);
void HuSprExec(short draw_no);
void HuSprBegin(void);
SpriteData *HuSprCall(void);
void HuSprFinish(void);
void HuSprPauseSet(BOOL value);
AnimData *HuSprAnimRead(void *data);
void HuSprAnimLock(AnimData *anim);
short HuSprCreate(AnimData *anim, short prio, short bank);
short HuSprFuncCreate(void (*func)(SpriteData *sprite), short prio);
short HuSprGrpCreate(short capacity);
short HuSprGrpCopy(short group);
void HuSprGrpMemberSet(short group, short member, short sprite);
void HuSprGrpMemberKill(short group, short member);
void HuSprGrpKill(short group);
void HuSprKill(short sprite);
void HuSprAnimKill(AnimData *anim);
void HuSprAttrSet(short group, short member, int attr);
void HuSprAttrReset(short group, short member, int attr);
void HuSprPosSet(short group, short member, float x, float y);
void HuSprZRotSet(short group, short member, float z_rot);
void HuSprScaleSet(short group, short member, float x, float y);
void HuSprTPLvlSet(short group, short member, float tp_lvl);
void HuSprColorSet(short group, short member, u8 r, u8 g, u8 b);
void HuSprSpeedSet(short group, short member, float speed);
void HuSprBankSet(short group, short member, short bank);
void HuSprGrpPosSet(short group, float x, float y);
void HuSprGrpCenterSet(short group, float x, float y);
void HuSprGrpZRotSet(short group, float z_rot);
void HuSprGrpScaleSet(short group, float x, float y);
void HuSprGrpTPLvlSet(short group, float tp_lvl);
void HuSprGrpDrawNoSet(short group, int draw_no);
void HuSprDrawNoSet(short group, short member, int draw_no);
void HuSprPriSet(short group, short member, short prio);
void HuSprGrpScissorSet(short group, short x, short y, short w, short h);
void HuSprScissorSet(short group, short member, short x, short y, short w, short h);
AnimData *HuSprAnimMake(short sizeX, short sizeY, short dataFmt);
void HuSprBGSet(short group, short member, AnimData *bg, short bg_bank);
void HuSprSprBGSet(short sprite, AnimData *bg, short bg_bank);
void AnimDebug(AnimData *anim);
void HuSprDispInit(void);
void HuSprDisp(SpriteData *sprite);
void HuSprTexLoad(AnimData *anim, short bmp, short slot, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, GXTexFilter filter);
void HuWinAllKill(void);
void HuWinMesSet(s16, s32);

View file

@ -48,4 +48,6 @@ extern OverlayID omprevovl;
extern PlayerState GWPlayer[4];
extern SystemState GWSystem;
extern u32 minimumVcount;
#endif