mirror of https://github.com/zeldaret/mm.git
EnClearTag OK and documented (#214)
* merge main * Match Init * Clear_Tag OK * Full documentation * More docs * Fix function * Fix MakeFile for assets and Fix texture swapped names * Fix name * Improve name and remove pad * Can't stop the minor tweeks * Adding potential Makefile fixes * Minor name change * Another name fix... and format * PR Suggestion & Add Overlay File Description * Re-documentation to match OoT WIP (more to come) * Finish docs from OoT * Fix merge and format * Minor touch-ups * Cleaner conditional
This commit is contained in:
parent
5fa3049236
commit
9637e19303
|
|
@ -0,0 +1,44 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Clear_Tag" BaseAddress="0x80947F60" RangeStart="0x2F00" RangeEnd="0x5D00" Segment="128">
|
||||
|
||||
<!-- Debris from explosion -->
|
||||
<DList Name="gClearTagDebrisEffectMaterialDL" Offset="0x3130"/>
|
||||
<Texture Name="gClearTagDebrisEffectTex" OutName="clear_tag_debris_effect" Format="rgb5a1" Width="16" Height="16" Offset="0x2F00"/>
|
||||
<DList Name="gClearTagDebrisEffectDL" Offset="0x31B0"/>
|
||||
<Array Name="gClearTagDebrisEffectVtx" Count="3" Offset="0x3100">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<!-- Used for inner black smoke cloud from explosion: multi-texture -->
|
||||
<DList Name="gClearTagFireEffectMaterialDL" Offset="0x37F8"/>
|
||||
<Texture Name="gClearTagFireEffectFlickerTex" OutName="clear_tag_fire_effect_flicker" Format="i4" Width="32" Height="64" Offset="0x31C8"/>
|
||||
<Texture Name="gClearTagFireEffectBackgroundTex" OutName="clear_tag_fire_effect_background" Format="i4" Width="32" Height="32" Offset="0x35C8"/>
|
||||
<DList Name="gClearTagFireEffectDL" Offset="0x38A0"/>
|
||||
<Array Name="gClearTagFireEffectVtx" Count="3" Offset="0x37C8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<!-- Used for spherical outer-most white-yellow cloud from explosions -->
|
||||
<DList Name="gClearTagFlashEffectDL" Offset="0x4900"/>
|
||||
<Texture Name="gClearTagFlashEffectTex" OutName="clear_tag_flash_effect" Format="i8" Width="64" Height="64" Offset="0x38C0"/>
|
||||
<Array Name="gClearTagFlashEffectVtx" Count="4" Offset="0x48C0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<!-- Used for spherical outer-most cloud from explosions applied to floor poly -->
|
||||
<DList Name="gClearTagFlashEffectGroundDL" Offset="0x4BB0"/>
|
||||
<Texture Name="gClearTagFlashEffectGroundTex" OutName="clear_tag_flash_ground_effect" Format="i4" Width="32" Height="32" Offset="0x4980"/>
|
||||
<Array Name="gClearTagFlashEffectGroundVtx" Count="3" Offset="0x4B80">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<!-- Used for spherical glowing light orbs squished thin into light rays -->
|
||||
<DList Name="gClearTagLightRayEffectMaterialDL" Offset="0x5C78"/>
|
||||
<Texture Name="gClearTagLightRayEffectTex" OutName="clear_tag_light_ray_effect" Format="i8" Width="64" Height="64" Offset="0x4C38"/>
|
||||
<DList Name="gClearTagLightRayEffectDL" Offset="0x5CE8"/>
|
||||
<Array Name="gClearTagLightRayEffectVtx" Count="4" Offset="0x5C38">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
</File>
|
||||
</Root>
|
||||
|
|
@ -34,8 +34,11 @@ def ExtractFunc(fullPath):
|
|||
objectName = os.path.splitext(xmlName)[0]
|
||||
|
||||
outPath = os.path.join("assets", *pathList[2:-1], objectName)
|
||||
basromPath = os.path.join("baserom", "assets", *pathList[2:-1])
|
||||
outSourcePath = outPath
|
||||
if "overlays" in pathList:
|
||||
basromPath = os.path.join("baserom", *pathList[2:-1])
|
||||
else:
|
||||
basromPath = os.path.join("baserom", "assets", *pathList[2:-1])
|
||||
|
||||
## MM doesn't have _scene prefixed files, so this check is not necessary.
|
||||
## This _may_ change in the future, so I wont delete this for now.
|
||||
|
|
|
|||
|
|
@ -49,8 +49,6 @@
|
|||
#define _SHIFTR(v, s, w) \
|
||||
((unsigned int)(((unsigned int)(v) >> (s)) & ((0x01 << (w)) - 1)))
|
||||
|
||||
#define _SHIFT _SHIFTL /* old, for compatibility only */
|
||||
|
||||
#define G_ON (1)
|
||||
#define G_OFF (0)
|
||||
|
||||
|
|
|
|||
|
|
@ -787,7 +787,7 @@ float func_800B6FC8(Player* player);
|
|||
u32 func_800B7200(s32 param_1);
|
||||
// void func_800B722C(void);
|
||||
void func_800B724C(GlobalContext* globalCtx, Actor* actor, u8 param_3);
|
||||
u32 func_800B7298(GlobalContext* globalCtx, UNK_TYPE4 param_2, u8 param_3);
|
||||
u32 func_800B7298(GlobalContext* globalCtx, Actor* actor, u8 param_3);
|
||||
void func_800B72E0(s32 param_1);
|
||||
void func_800B72F8(DynaPolyActor* dpactor, f32 a1, s16 a2);
|
||||
s32 Actor_IsLinkFacingActor(Actor* actor, s16 tolerance, GlobalContext* globalCtx);
|
||||
|
|
@ -1007,7 +1007,7 @@ f32 func_800C411C(CollisionContext* colCtx, CollisionPoly** arg1, s32* arg2, Act
|
|||
// void func_800C4488(void);
|
||||
// void func_800C44F0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_800C455C(void);
|
||||
s32 func_800C45C4(CollisionContext* colCtx, u32 param_2, Vec3f* param_3, Vec3f* param_4, Vec3f* param_5, f32 param_6, s32* param_7, s32* param_8, DynaPolyActor* param_9, f32 param_10, u8 param_11);
|
||||
s32 func_800C45C4(CollisionContext* colCtx, u32 arg1, Vec3f* arg2, Vec3f* arg3, Vec3f* arg4, f32 arg5, s32* arg6, s32* arg7, DynaPolyActor* arg8, f32 arg9, u8 arg10);
|
||||
// void func_800C4C74(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_800C4CD8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8);
|
||||
// void func_800C4D3C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9);
|
||||
|
|
@ -1019,23 +1019,23 @@ s32 func_800C45C4(CollisionContext* colCtx, u32 param_2, Vec3f* param_3, Vec3f*
|
|||
// void func_800C5464(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_800C54AC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
|
||||
// void func_800C5538(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
|
||||
s32 func_800C55C4(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*);
|
||||
s32 func_800C55C4(CollisionContext* colCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, CollisionPoly** arg4, u32 arg5, u32 arg6, u32 arg7, u32 arg8, u32* arg9);
|
||||
// void func_800C5650(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10, UNK_TYPE4 param_11);
|
||||
// void func_800C56E0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10, UNK_TYPE4 param_11, UNK_TYPE4 param_12);
|
||||
s32 func_800C576C(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*);
|
||||
s32 func_800C576C(CollisionContext* colCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, CollisionPoly** arg4, u32 arg5, u32 arg6, u32 arg7, u32 arg8, u32* arg9);
|
||||
// void func_800C57F8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_800C583C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9);
|
||||
// void func_800C58C8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
|
||||
// void func_800C5954(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE2 param_8);
|
||||
// void func_800C5A20(void);
|
||||
s32 func_800C5A20(CollisionContext* colCtx, Vec3f* arg1, f32 arg2);
|
||||
// void func_800C5A64(void);
|
||||
void BgCheck_ScenePolygonListsInit(SSNodeList* param_1);
|
||||
void BgCheck_ScenePolygonListsInit(SSNodeList* arg0);
|
||||
void BgCheck_ScenePolygonListsAlloc(GlobalContext* globalCtx, SSNodeList* lists, s32 numNodes, u32 numPolygons);
|
||||
s32 func_800C5B80(u16* param_1);
|
||||
s32 func_800C5B80(u16* arg0);
|
||||
u16 BgCheck_ScenePolygonListsReserveNode(SSNodeList* lists);
|
||||
void BgCheck_ActorMeshParamsInit(ScaleRotPos* params);
|
||||
void BgCheck_SetActorMeshParams(ScaleRotPos* params, Vec3f* scale, Vec3s* rotation, Vec3f* position);
|
||||
s32 BgCheck_AreActorMeshParamsEqual(ScaleRotPos* param_1, ScaleRotPos* param_2);
|
||||
s32 BgCheck_AreActorMeshParamsEqual(ScaleRotPos* arg0, ScaleRotPos* arg1);
|
||||
void BgCheck_ActorMeshPolyListsHeadsInit(DynaLookup* lists);
|
||||
void BgCheck_ActorMeshPolyListsInit(DynaLookup* lists);
|
||||
void BgCheck_ActorMeshVerticesIndexInit(s16* index);
|
||||
|
|
@ -1120,7 +1120,7 @@ u32 func_800C9E18(CollisionContext* colCtx, CollisionPoly* polygon, s32 index);
|
|||
u32 func_800C9E40(CollisionContext* colCtx, CollisionPoly* polygon, s32 index);
|
||||
u32 func_800C9E88(CollisionContext* colCtx, CollisionPoly* polygon, s32 index);
|
||||
// void func_800C9EBC(GlobalContext* globalCtx, CollisionContext* colCtx, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_800CA1AC(GlobalContext* globalCtx, CollisionContext* colCtx, f32 param_3, f32 param_4, f32* param_5, UNK_PTR param_6);
|
||||
s32 func_800CA1AC(GlobalContext* globalCtx, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface, WaterBox** outWaterBox);
|
||||
void func_800CA1E8(GlobalContext* globalCtx, CollisionContext* colCtx, f32 arg2, f32 arg3, f32* arg4, UNK_PTR arg5);
|
||||
// void func_800CA22C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_800CA568(void);
|
||||
|
|
@ -3051,10 +3051,10 @@ s32 func_8016970C(GlobalContext* globalCtx, s16 camId, Vec3f* at, Vec3f* eye);
|
|||
// void func_8016981C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_80169940(void);
|
||||
// void func_80169988(void);
|
||||
void func_801699D4(GlobalContext* globalCtx, s16 param_2, s16 param_3);
|
||||
void func_801699D4(GlobalContext* globalCtx, s16 arg1, s16 arg2);
|
||||
// void func_80169A50(void);
|
||||
// void func_80169AC0(void);
|
||||
// void func_80169AFC(void);
|
||||
void func_80169AFC(GlobalContext* globalCtx, s16 camId, s16 arg2);
|
||||
// void func_80169C64(void);
|
||||
// void func_80169C84(void);
|
||||
// void convert_scene_number_among_shared_scenes(void);
|
||||
|
|
@ -3396,7 +3396,7 @@ void SysMatrix_SetCurrentState(MtxF* matrix);
|
|||
MtxF* SysMatrix_GetCurrentState(void);
|
||||
void SysMatrix_InsertMatrix(MtxF* matrix, s32 appendToState);
|
||||
void SysMatrix_InsertTranslation(f32 x, f32 y, f32 z, s32 appendToState);
|
||||
void Matrix_Scale(f32 xScale, f32 yScale, f32 zScale, u8 appendToState);
|
||||
void Matrix_Scale(f32 xScale, f32 yScale, f32 zScale, s32 appendToState);
|
||||
void SysMatrix_InsertXRotation_s(s16 rotation, s32 appendToState);
|
||||
void SysMatrix_InsertXRotation_f(f32 rotation, s32 appendToState);
|
||||
void SysMatrix_RotateStateAroundXAxis(f32 rotation);
|
||||
|
|
@ -3876,7 +3876,7 @@ void func_8019FAD8(Vec3f* param_1, u16 param_2, f32 param_3);
|
|||
// void func_8019FC20(void);
|
||||
// void func_8019FCB8(void);
|
||||
// void func_8019FD90(void);
|
||||
// void func_8019FDC8(void);
|
||||
void func_8019FDC8(UNK_PTR arg0, u16 sfxId, UNK_TYPE arg2);
|
||||
// void func_8019FE1C(void);
|
||||
// void func_8019FE74(void);
|
||||
// void func_8019FEDC(void);
|
||||
|
|
|
|||
|
|
@ -1878,7 +1878,7 @@ extern UNK_PTR D_801DB478[7];
|
|||
// extern UNK_TYPE1 D_801DB494;
|
||||
// extern UNK_TYPE1 D_801DB49C;
|
||||
// extern UNK_TYPE2 D_801DB4A0;
|
||||
// extern UNK_TYPE4 D_801DB4A4;
|
||||
extern UNK_TYPE D_801DB4A4;
|
||||
// extern UNK_TYPE1 D_801DB4B0;
|
||||
// extern UNK_TYPE1 D_801DB4B8;
|
||||
// extern UNK_TYPE1 D_801DB4C0;
|
||||
|
|
|
|||
|
|
@ -490,20 +490,6 @@ typedef struct {
|
|||
/* 0x0 */ Vec3s pos;
|
||||
} BgVertex; // size = 0x6
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ Vec3s minPos;
|
||||
/* 0x6 */ UNK_TYPE1 xLength; // Created by retype action
|
||||
/* 0x7 */ UNK_TYPE1 pad7[0x1];
|
||||
/* 0x8 */ UNK_TYPE1 zLength; // Created by retype action
|
||||
/* 0x9 */ UNK_TYPE1 pad9[0x3];
|
||||
/* 0xC */ u32 properties;
|
||||
} BgWaterBox; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ UNK_TYPE1 pad0[0x4];
|
||||
/* 0x4 */ BgWaterBox* boxes;
|
||||
} BgWaterboxList; // size = 0x8
|
||||
|
||||
typedef union {
|
||||
F3DVertexColor color;
|
||||
F3DVertexNormal normal;
|
||||
|
|
|
|||
|
|
@ -1000,4 +1000,14 @@ typedef enum {
|
|||
/* 0x2B2 */ ACTOR_ID_MAX // originally "ACTOR_DLF_MAX"
|
||||
} ActorID;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ CLEAR_TAG_SMALL_EXPLOSION,
|
||||
/* 0x01 */ CLEAR_TAG_LARGE_EXPLOSION,
|
||||
/* 0x02 */ CLEAR_TAG_POP,
|
||||
/* 0x03 */ CLEAR_TAG_SMALL_LIGHT_RAYS,
|
||||
/* 0x04 */ CLEAR_TAG_LARGE_LIGHT_RAYS,
|
||||
/* 0x23 */ CLEAR_TAG_SPLASH = 35,
|
||||
/* 0xC8 */ CLEAR_TAG_SMOKE = 200,
|
||||
} ClearTagType;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2410,9 +2410,9 @@ SECTIONS
|
|||
ovl_En_Clear_Tag : AT(RomLocation)
|
||||
{
|
||||
build/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.o(.text)
|
||||
build/asm/overlays/ovl_En_Clear_Tag_data.o(.data)
|
||||
build/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.o(.data)
|
||||
build/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.o(.rodata)
|
||||
build/asm/overlays/ovl_En_Clear_Tag_rodata.o(.rodata)
|
||||
build/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag_overlay.o(.ovl)
|
||||
}
|
||||
SegmentEnd = .;
|
||||
SegmentSize = SegmentEnd - SegmentStart;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,16 @@ D_04029CB0 = 0x04029CB0;
|
|||
D_04029CF0 = 0x04029CF0;
|
||||
D_04029CB0 = 0x04029CB0;
|
||||
D_04029CF0 = 0x04029CF0;
|
||||
D_04030100 = 0x04030100;
|
||||
D_040378F0 = 0x040378F0;
|
||||
D_04037DF0 = 0x04037DF0;
|
||||
D_040382F0 = 0x040382F0;
|
||||
D_040387F0 = 0x040387F0;
|
||||
D_04038CF0 = 0x04038CF0;
|
||||
D_040391F0 = 0x040391F0;
|
||||
D_040396F0 = 0x040396F0;
|
||||
D_04039BF0 = 0x04039BF0;
|
||||
D_0403A0F0 = 0x0403A0F0;
|
||||
D_04058BA0 = 0x04058BA0;
|
||||
D_0405AAB0 = 0x0405AAB0;
|
||||
D_0405BEF0 = 0x0405BEF0;
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ extern AnimationHeader D_06000990;
|
|||
extern FlexSkeletonHeader D_06008C40;
|
||||
|
||||
// Probably the same struct as ActorAnimationEntryS, need more info from func_8013BC6C
|
||||
static ActorAnimationEntryS D_80C1E200[] = { &D_06000990, 1.0f, 0, -1, 0, 0};
|
||||
static ActorAnimationEntryS D_80C1E200[] = { &D_06000990, 1.0f, 0, -1, 0, 0 };
|
||||
|
||||
s32 func_80C1DED0(DmNb* this, s32 arg1) {
|
||||
s32 ret = 0;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -5,9 +5,50 @@
|
|||
|
||||
struct EnClearTag;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ CLEAR_TAG_EFFECT_AVAILABLE,
|
||||
/* 0x01 */ CLEAR_TAG_EFFECT_DEBRIS,
|
||||
/* 0x02 */ CLEAR_TAG_EFFECT_FIRE, // never set to, remnant of OoT
|
||||
/* 0x03 */ CLEAR_TAG_EFFECT_SMOKE,
|
||||
/* 0x04 */ CLEAR_TAG_EFFECT_FLASH,
|
||||
/* 0x05 */ CLEAR_TAG_EFFECT_LIGHT_RAYS,
|
||||
/* 0x06 */ CLEAR_TAG_EFFECT_SHOCKWAVE,
|
||||
/* 0x07 */ CLEAR_TAG_EFFECT_SPLASH,
|
||||
/* 0x08 */ CLEAR_TAG_EFFECT_ISOLATED_SMOKE,
|
||||
} ClearTagEffectType;
|
||||
|
||||
typedef struct EnClearTagEffect {
|
||||
/* 0x00 */ u8 type;
|
||||
/* 0x01 */ u8 actionTimer;
|
||||
/* 0x04 */ Vec3f position;
|
||||
/* 0x10 */ Vec3f velocity;
|
||||
/* 0x1C */ Vec3f acceleration;
|
||||
/* 0x28 */ Color_RGBAf primColor;
|
||||
/* 0x38 */ Color_RGBAf envColor;
|
||||
/* 0x48 */ s16 bounces;
|
||||
/* 0x4A */ s16 effectsTimer;
|
||||
/* 0x4C */ s16 lightRayAlpha;
|
||||
/* 0x4E */ s16 lightRayAlphaDecrementSpeed;
|
||||
/* 0x50 */ f32 scale;
|
||||
/* 0x54 */ f32 maxScale;
|
||||
/* 0x58 */ f32 rotationY;
|
||||
/* 0x5C */ f32 rotationX;
|
||||
/* 0x60 */ f32 rotationZ;
|
||||
/* 0x64 */ f32 maxScaleTarget;
|
||||
/* 0x68 */ f32 smokeScaleY;
|
||||
/* 0x6C */ f32 smokeScaleX;
|
||||
} EnClearTagEffect; // size = 0x70
|
||||
|
||||
typedef struct EnClearTag {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ char unk_0144[0x2D40];
|
||||
/* 0x0144 */ EnClearTagEffect effect[103];
|
||||
/* 0x2E54 */ u8 cameraState;
|
||||
/* 0x2E56 */ s16 activeTimer; // Actor Marked for Death when timer runs out
|
||||
/* 0x2E58 */ UNK_TYPE1 unk2E58[0xC];
|
||||
/* 0x2E64 */ s16 camId;
|
||||
/* 0x2E66 */ Color_RGBA8 flashEnvColor;
|
||||
/* 0x2E6C */ Vec3f eye; // Camera eye
|
||||
/* 0x2E78 */ Vec3f at; // Camera lookAt
|
||||
} EnClearTag; // size = 0x2E84
|
||||
|
||||
extern const ActorInit En_Clear_Tag_InitVars;
|
||||
|
|
|
|||
|
|
@ -155,8 +155,8 @@ void EnEncount2_Popped(EnEncount2* this, GlobalContext* globalCtx) {
|
|||
|
||||
Math_Vec3f_Copy(&curPos, &this->dyna.actor.world.pos);
|
||||
curPos.y += 60.0f;
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, curPos.x, curPos.y, curPos.z, 0xFF, 0xFF, 0xC8,
|
||||
0x0001);
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, curPos.x, curPos.y, curPos.z, 255, 255, 200,
|
||||
CLEAR_TAG_LARGE_EXPLOSION);
|
||||
|
||||
for (i = 0; i != 100; ++i) {
|
||||
EnEncount2_InitParticles(this, &curPos, 10);
|
||||
|
|
|
|||
|
|
@ -351,7 +351,8 @@ void EnFirefly_SetupFall(EnFirefly* this, GlobalContext* globalCtx) {
|
|||
this->unk_2E8.x = 4.0f;
|
||||
this->unk_2E8.y = 0.55f;
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, this->collider.info.bumper.hitPos.x,
|
||||
this->collider.info.bumper.hitPos.y, this->collider.info.bumper.hitPos.z, 0, 0, 0, 3);
|
||||
this->collider.info.bumper.hitPos.y, this->collider.info.bumper.hitPos.z, 0, 0, 0,
|
||||
CLEAR_TAG_SMALL_LIGHT_RAYS);
|
||||
} else if (this->actor.colChkInfo.damageEffect == 2) {
|
||||
this->unk_18F = 0;
|
||||
this->unk_2E8.x = 4.0f;
|
||||
|
|
|
|||
|
|
@ -557,7 +557,8 @@ void EnFsn_UpdateItemSelectedProperty(EnFsn* this) {
|
|||
s32 i;
|
||||
|
||||
for (items = this->items, i = 0; i < this->totalSellingItems; items++, i++) {
|
||||
if (this->actionFunc != EnFsn_SelectItem && this->actionFunc != EnFsn_PlayerCannotBuy && this->drawCursor == 0) {
|
||||
if (this->actionFunc != EnFsn_SelectItem && this->actionFunc != EnFsn_PlayerCannotBuy &&
|
||||
this->drawCursor == 0) {
|
||||
(*items)->isSelected = false;
|
||||
} else {
|
||||
(*items)->isSelected = (i == this->cursorIdx) ? true : false;
|
||||
|
|
|
|||
|
|
@ -1347,9 +1347,9 @@ void func_80B452EC(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
s32 i;
|
||||
|
||||
for (i = 0; i < this->unk379; i++) {
|
||||
D_80B50320[i] = (EnInvadepoh*)Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_INVADEPOH, this->actor.world.pos.x,
|
||||
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0,
|
||||
(i & 7) | ((phi_s2 << 8) & 0x7F00) | 0x10);
|
||||
D_80B50320[i] = (EnInvadepoh*)Actor_Spawn(
|
||||
&globalCtx->actorCtx, globalCtx, ACTOR_EN_INVADEPOH, this->actor.world.pos.x, this->actor.world.pos.y,
|
||||
this->actor.world.pos.z, 0, 0, 0, (i & 7) | ((phi_s2 << 8) & 0x7F00) | 0x10);
|
||||
if (phi_s2 != 0xFF) {
|
||||
Path* path = &globalCtx->setupPathList[phi_s2];
|
||||
phi_s2 = path->unk1;
|
||||
|
|
@ -2307,7 +2307,7 @@ void func_80B479E8(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
this->counter++;
|
||||
if (this->actionTimer == 8) {
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, this->actor.world.pos.x,
|
||||
this->actor.world.pos.y - 10.0f, this->actor.world.pos.z, 0, 0, 3, 200);
|
||||
this->actor.world.pos.y - 10.0f, this->actor.world.pos.z, 0, 0, 3, CLEAR_TAG_SMOKE);
|
||||
}
|
||||
|
||||
if (this->actionTimer == 8) {
|
||||
|
|
@ -2624,7 +2624,8 @@ void func_80B48848(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
Math_StepToS(&this->behaviorInfo.unk4C, 0x7D0, 0x46);
|
||||
}
|
||||
func_80B43E6C(this, 6, this->behaviorInfo.unk4C, 0x46);
|
||||
if (((this->actor.flags & 0x40) == 0x40) && (func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 7.0f))) {
|
||||
if (((this->actor.flags & 0x40) == 0x40) &&
|
||||
(func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 7.0f))) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_ROMANI_WALK);
|
||||
}
|
||||
if (this->actionTimer > 0) {
|
||||
|
|
@ -3077,7 +3078,8 @@ void func_80B49C38(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
this->actor.flags |= (0x8 | 0x1);
|
||||
}
|
||||
|
||||
if (((this->actor.flags & 0x40) == 0x40) && (func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 7.0f))) {
|
||||
if (((this->actor.flags & 0x40) == 0x40) &&
|
||||
(func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 7.0f))) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_ROMANI_WALK);
|
||||
}
|
||||
if (this->clockTime >= 0.9999f) {
|
||||
|
|
@ -3302,7 +3304,8 @@ void func_80B4A67C(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
this->unk378 = 0;
|
||||
this->actor.flags |= (0x8 | 0x1);
|
||||
}
|
||||
if (((this->actor.flags & 0x40) == 0x40) && (func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 7.0f))) {
|
||||
if (((this->actor.flags & 0x40) == 0x40) &&
|
||||
(func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 7.0f))) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_ROMANI_WALK);
|
||||
}
|
||||
if (this->pathIndex == this->endPoint) {
|
||||
|
|
@ -3463,8 +3466,7 @@ void func_80B4ADCC(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
if (this->textId == 0x3333) {
|
||||
func_80B4AEC0(this);
|
||||
}
|
||||
else if (this->textId == 0x3334) {
|
||||
} else if (this->textId == 0x3334) {
|
||||
func_801477B4(globalCtx);
|
||||
func_80B4B024(this);
|
||||
}
|
||||
|
|
@ -3554,7 +3556,6 @@ void func_80B4B218(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Player* player;
|
||||
AlienBehaviorInfo* substruct = &this->behaviorInfo;
|
||||
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
if (sp38 && this->actor.update != NULL) {
|
||||
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
|
||||
|
|
@ -3658,7 +3659,8 @@ void func_80B4B768(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
s32 pad;
|
||||
|
||||
Math_StepToF(&this->actor.speedXZ, 0.0f, 1.0f);
|
||||
Math_SmoothStepToS(&this->actor.world.rot.y, Actor_YawBetweenActors(&this->actor, &D_80B5040C->actor), 5, 0x1388, 0x64);
|
||||
Math_SmoothStepToS(&this->actor.world.rot.y, Actor_YawBetweenActors(&this->actor, &D_80B5040C->actor), 5, 0x1388,
|
||||
0x64);
|
||||
func_80B44E90(this, globalCtx);
|
||||
if (func_801378B8(&this->skelAnime, 13.0f) || func_801378B8(&this->skelAnime, 19.0f)) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_SMALL_DOG_ANG_BARK);
|
||||
|
|
@ -3836,7 +3838,8 @@ void func_80B4BC4C(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
}
|
||||
|
||||
if (((this->actor.flags & 0x40) == 0x40) && (func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 12.0f))) {
|
||||
if (((this->actor.flags & 0x40) == 0x40) &&
|
||||
(func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 12.0f))) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_ROMANI_WALK);
|
||||
}
|
||||
if (gSaveContext.time > CLOCK_TIME(20, 15)) {
|
||||
|
|
@ -4056,7 +4059,8 @@ void func_80B4C730(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
substruct->unk26.y = CLAMP(temp_v1_4, -8000, 8000);
|
||||
}
|
||||
|
||||
if (((this->actor.flags & 0x40) == 0x40) && (func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 7.0f))) {
|
||||
if (((this->actor.flags & 0x40) == 0x40) &&
|
||||
(func_801378B8(&this->skelAnime, 0.0f) || func_801378B8(&this->skelAnime, 7.0f))) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_ROMANI_WALK);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -407,7 +407,7 @@ void func_8086A724(EnPametfrog* this, GlobalContext* globalCtx) {
|
|||
this->unk_2C4 = 3.0f;
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG,
|
||||
this->collider.elements[0].info.bumper.hitPos.x, this->collider.elements[0].info.bumper.hitPos.y,
|
||||
this->collider.elements[0].info.bumper.hitPos.z, 0, 0, 0, 4);
|
||||
this->collider.elements[0].info.bumper.hitPos.z, 0, 0, 0, CLEAR_TAG_LARGE_LIGHT_RAYS);
|
||||
} else if (this->actor.colChkInfo.damageEffect == 3) {
|
||||
func_8086A024(this);
|
||||
}
|
||||
|
|
@ -1305,7 +1305,8 @@ void EnPametfrog_ApplyDamage(EnPametfrog* this, GlobalContext* globalCtx) {
|
|||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG,
|
||||
this->collider.elements[0].info.bumper.hitPos.x,
|
||||
this->collider.elements[0].info.bumper.hitPos.y,
|
||||
this->collider.elements[0].info.bumper.hitPos.z, 0, 0, 0, 4);
|
||||
this->collider.elements[0].info.bumper.hitPos.z, 0, 0, 0,
|
||||
CLEAR_TAG_LARGE_LIGHT_RAYS);
|
||||
}
|
||||
func_8086CB4C(this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -242,7 +242,7 @@ void EnPoFusen_IncrementRomaniPop(EnPoFusen* this) {
|
|||
|
||||
void EnPoFusen_Pop(EnPoFusen* this, GlobalContext* globalCtx) {
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, this->actor.world.pos.x,
|
||||
this->actor.world.pos.y + 20.0f, this->actor.world.pos.z, 255, 255, 200, 2);
|
||||
this->actor.world.pos.y + 20.0f, this->actor.world.pos.z, 255, 255, 200, CLEAR_TAG_POP);
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_IT_BOMB_EXPLOSION);
|
||||
Actor_MarkForDeath(&this->actor);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ static InitChainEntry sInitChain[] = {
|
|||
|
||||
static CollisionHeader* sColHeaders[] = { &D_06004FF8, &D_060048D0 };
|
||||
|
||||
|
||||
void ObjRaillift_UpdatePosition(ObjRaillift* this, s32 idx) {
|
||||
Math_Vec3s_ToVec3f(&this->dyna.actor.world.pos, &this->points[idx]);
|
||||
}
|
||||
|
|
@ -159,7 +158,8 @@ void ObjRaillift_Move(ObjRaillift* this, GlobalContext* globalCtx) {
|
|||
this->dyna.actor.speedXZ *= 0.4f;
|
||||
isTeleporting = OBJRAILLIFT_SHOULD_TELEPORT(&this->dyna.actor);
|
||||
isPosUpdated = true;
|
||||
if (((this->curPoint >= this->endPoint) && (this->direction > 0)) || ((this->curPoint <= 0) && (this->direction < 0))) {
|
||||
if (((this->curPoint >= this->endPoint) && (this->direction > 0)) ||
|
||||
((this->curPoint <= 0) && (this->direction < 0))) {
|
||||
if (!isTeleporting) {
|
||||
this->direction = -this->direction;
|
||||
this->waitTimer = 10;
|
||||
|
|
@ -168,7 +168,8 @@ void ObjRaillift_Move(ObjRaillift* this, GlobalContext* globalCtx) {
|
|||
endPoint = &this->points[this->endPoint];
|
||||
this->curPoint = this->direction > 0 ? 0 : this->endPoint;
|
||||
initialPoint = &this->points[0];
|
||||
if ((initialPoint->x != endPoint->x) || (initialPoint->y != endPoint->y) || (initialPoint->z != endPoint->z)) {
|
||||
if ((initialPoint->x != endPoint->x) || (initialPoint->y != endPoint->y) ||
|
||||
(initialPoint->z != endPoint->z)) {
|
||||
this->actionFunc = ObjRaillift_Teleport;
|
||||
func_800C62BC(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
|
||||
isPosUpdated = false;
|
||||
|
|
@ -245,7 +246,8 @@ void ObjRaillift_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
this->cycle += 0xCE4;
|
||||
Math_StepToF(&this->maxHeight, 0.0f, 0.12f);
|
||||
step = this->isWeightOn ? Math_CosS(fabsf(this->cycleSpeed) * 2048.0f) + 0.02f : Math_SinS(fabsf(this->cycleSpeed) * 2048.0f) + 0.02f;
|
||||
step = this->isWeightOn ? Math_CosS(fabsf(this->cycleSpeed) * 2048.0f) + 0.02f
|
||||
: Math_SinS(fabsf(this->cycleSpeed) * 2048.0f) + 0.02f;
|
||||
target = this->isWeightOn ? -8.0f : 0.0f;
|
||||
Math_StepToF(&this->cycleSpeed, target, step);
|
||||
this->dyna.actor.shape.yOffset = ((Math_SinS(this->cycle) * this->maxHeight) + this->cycleSpeed) * 10.0f;
|
||||
|
|
@ -269,8 +271,8 @@ void ObjRaillift_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
func_8012C28C(globalCtx->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, globalCtx->gameplayFrames, 0, 32, 32, 1, 0, 0,
|
||||
32, 32, 0, 0, 0, 160));
|
||||
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, globalCtx->gameplayFrames, 0, 32, 32, 1, 0, 0, 32,
|
||||
32, 0, 0, 0, 160));
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06004BF0);
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx);
|
||||
|
|
|
|||
|
|
@ -7576,21 +7576,21 @@
|
|||
0x809469C0:("func_809469C0",),
|
||||
0x8094702C:("func_8094702C",),
|
||||
0x80947668:("func_80947668",),
|
||||
0x80947F60:("func_80947F60",),
|
||||
0x809480C8:("func_809480C8",),
|
||||
0x80948264:("func_80948264",),
|
||||
0x809484EC:("func_809484EC",),
|
||||
0x809485A8:("func_809485A8",),
|
||||
0x80948788:("func_80948788",),
|
||||
0x8094899C:("func_8094899C",),
|
||||
0x80948A54:("func_80948A54",),
|
||||
0x80947F60:("EnClearTag_CreateDebrisEffect",),
|
||||
0x809480C8:("EnClearTag_CreateSmokeEffect",),
|
||||
0x80948264:("EnClearTag_CreateIsolatedSmokeEffect",),
|
||||
0x809484EC:("EnClearTag_CreateFlashEffect",),
|
||||
0x809485A8:("EnClearTag_CreateLightRayEffect",),
|
||||
0x80948788:("EnClearTag_CreateIsolatedLightRayEffect",),
|
||||
0x8094899C:("EnClearTag_CreateShockwaveEffect",),
|
||||
0x80948A54:("EnClearTag_CreateSplashEffect",),
|
||||
0x80948BB4:("EnClearTag_Destroy",),
|
||||
0x80948BC4:("EnClearTag_Init",),
|
||||
0x80949288:("func_80949288",),
|
||||
0x80949288:("EnClearTag_UpdateCamera",),
|
||||
0x80949570:("EnClearTag_Update",),
|
||||
0x809495D8:("EnClearTag_Draw",),
|
||||
0x809495F8:("func_809495F8",),
|
||||
0x80949BD4:("func_80949BD4",),
|
||||
0x809495F8:("EnClearTag_UpdateEffects",),
|
||||
0x80949BD4:("EnClearTag_DrawEffects",),
|
||||
0x8094DEE0:("func_8094DEE0",),
|
||||
0x8094DF90:("func_8094DF90",),
|
||||
0x8094DFF8:("func_8094DFF8",),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
[preserve_macros]
|
||||
"g[DS]P.*" = "void"
|
||||
"gs[DS]P.*" = "void"
|
||||
"gDma.*" = "void"
|
||||
"G_IM_SIZ_.*" = "int"
|
||||
"G_[AC]C.*" = "int"
|
||||
|
|
|
|||
Loading…
Reference in New Issue