diff --git a/assets/xml/interface/week_static.xml b/assets/xml/interface/week_static.xml index 12cc885fa..e2b098410 100644 --- a/assets/xml/interface/week_static.xml +++ b/assets/xml/interface/week_static.xml @@ -1,7 +1,7 @@ - - - + + + diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml index 5dababaab..37fb3fc61 100644 --- a/assets/xml/objects/gameplay_keep.xml +++ b/assets/xml/objects/gameplay_keep.xml @@ -1223,8 +1223,8 @@ - - + + @@ -1281,7 +1281,7 @@ - + @@ -1486,9 +1486,9 @@ - - - + + + diff --git a/assets/xml/objects/object_az.xml b/assets/xml/objects/object_az.xml index e4e56aa88..42e5bdc61 100644 --- a/assets/xml/objects/object_az.xml +++ b/assets/xml/objects/object_az.xml @@ -64,8 +64,8 @@ - - + + diff --git a/assets/xml/objects/object_bg.xml b/assets/xml/objects/object_bg.xml index 272968b8d..9008fb381 100644 --- a/assets/xml/objects/object_bg.xml +++ b/assets/xml/objects/object_bg.xml @@ -1,62 +1,79 @@  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,6 +90,8 @@ + + @@ -84,6 +103,8 @@ + + @@ -107,6 +128,8 @@ + + diff --git a/assets/xml/objects/object_bigpo.xml b/assets/xml/objects/object_bigpo.xml index 46c79310e..fbde9e8e5 100644 --- a/assets/xml/objects/object_bigpo.xml +++ b/assets/xml/objects/object_bigpo.xml @@ -7,13 +7,13 @@ - + - + @@ -57,7 +57,7 @@ - + diff --git a/assets/xml/objects/object_boss07.xml b/assets/xml/objects/object_boss07.xml index f1be3cf31..2d3aa4fa1 100644 --- a/assets/xml/objects/object_boss07.xml +++ b/assets/xml/objects/object_boss07.xml @@ -150,7 +150,7 @@ - + diff --git a/assets/xml/objects/object_box.xml b/assets/xml/objects/object_box.xml index c0603a6cf..8bb2b7efe 100644 --- a/assets/xml/objects/object_box.xml +++ b/assets/xml/objects/object_box.xml @@ -11,12 +11,12 @@ - - - - - - + + + + + + @@ -24,7 +24,7 @@ - + diff --git a/assets/xml/objects/object_comb.xml b/assets/xml/objects/object_comb.xml index d2b00b0dd..2bea4db20 100644 --- a/assets/xml/objects/object_comb.xml +++ b/assets/xml/objects/object_comb.xml @@ -1,8 +1,12 @@  + - - - - + + + + + + + diff --git a/assets/xml/objects/object_dinofos.xml b/assets/xml/objects/object_dinofos.xml index 7ed5f81f5..c3c575b0f 100644 --- a/assets/xml/objects/object_dinofos.xml +++ b/assets/xml/objects/object_dinofos.xml @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + diff --git a/assets/xml/objects/object_dnj.xml b/assets/xml/objects/object_dnj.xml index 3b4f27579..f7f9d830c 100644 --- a/assets/xml/objects/object_dnj.xml +++ b/assets/xml/objects/object_dnj.xml @@ -59,7 +59,7 @@ - + diff --git a/assets/xml/objects/object_dnk.xml b/assets/xml/objects/object_dnk.xml index b085eed28..0e35b1f97 100644 --- a/assets/xml/objects/object_dnk.xml +++ b/assets/xml/objects/object_dnk.xml @@ -33,7 +33,7 @@ - + diff --git a/assets/xml/objects/object_dns.xml b/assets/xml/objects/object_dns.xml index e5d91326f..903dfba6c 100644 --- a/assets/xml/objects/object_dns.xml +++ b/assets/xml/objects/object_dns.xml @@ -25,7 +25,7 @@ " Format="rgba16" Width="8" Height="8" Offset="0x28E8" /> - + diff --git a/assets/xml/objects/object_ds2n.xml b/assets/xml/objects/object_ds2n.xml index 7c04da8bf..e4757de31 100644 --- a/assets/xml/objects/object_ds2n.xml +++ b/assets/xml/objects/object_ds2n.xml @@ -20,9 +20,9 @@ - - - + + + @@ -49,9 +49,9 @@ - - - + + + diff --git a/assets/xml/objects/object_dy_obj.xml b/assets/xml/objects/object_dy_obj.xml index 37fef4ab1..b321240cc 100644 --- a/assets/xml/objects/object_dy_obj.xml +++ b/assets/xml/objects/object_dy_obj.xml @@ -51,7 +51,7 @@ - + diff --git a/assets/xml/objects/object_eg.xml b/assets/xml/objects/object_eg.xml index 28686f3ae..a79ff6332 100644 --- a/assets/xml/objects/object_eg.xml +++ b/assets/xml/objects/object_eg.xml @@ -41,7 +41,7 @@ - + diff --git a/assets/xml/objects/object_f40_switch.xml b/assets/xml/objects/object_f40_switch.xml index 7e7fb5b1c..6be5a5bd5 100644 --- a/assets/xml/objects/object_f40_switch.xml +++ b/assets/xml/objects/object_f40_switch.xml @@ -1,9 +1,10 @@  + - - - - - + + + + + diff --git a/assets/xml/objects/object_fish.xml b/assets/xml/objects/object_fish.xml index b4de27c4e..318cb53d5 100644 --- a/assets/xml/objects/object_fish.xml +++ b/assets/xml/objects/object_fish.xml @@ -213,7 +213,7 @@ - + diff --git a/assets/xml/objects/object_gla.xml b/assets/xml/objects/object_gla.xml index 60880a7a7..45da7754a 100644 --- a/assets/xml/objects/object_gla.xml +++ b/assets/xml/objects/object_gla.xml @@ -31,7 +31,7 @@ - + diff --git a/assets/xml/objects/object_hs.xml b/assets/xml/objects/object_hs.xml index c5ac723f8..be333f1dc 100644 --- a/assets/xml/objects/object_hs.xml +++ b/assets/xml/objects/object_hs.xml @@ -44,7 +44,7 @@ - + diff --git a/assets/xml/objects/object_icicle.xml b/assets/xml/objects/object_icicle.xml index ac0000471..d3275aa46 100644 --- a/assets/xml/objects/object_icicle.xml +++ b/assets/xml/objects/object_icicle.xml @@ -1,7 +1,8 @@  + - - - + + + diff --git a/assets/xml/objects/object_ik.xml b/assets/xml/objects/object_ik.xml index fcbb90620..66df1e9ed 100644 --- a/assets/xml/objects/object_ik.xml +++ b/assets/xml/objects/object_ik.xml @@ -52,25 +52,25 @@ - - - + + + - - + + - - - - - + + + + + - - - - - - + + + + + + diff --git a/assets/xml/objects/object_jso.xml b/assets/xml/objects/object_jso.xml index bfe271d69..d94ffdafe 100644 --- a/assets/xml/objects/object_jso.xml +++ b/assets/xml/objects/object_jso.xml @@ -1,122 +1,147 @@  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_kaizoku_obj.xml b/assets/xml/objects/object_kaizoku_obj.xml index a8e773034..c13f32125 100644 --- a/assets/xml/objects/object_kaizoku_obj.xml +++ b/assets/xml/objects/object_kaizoku_obj.xml @@ -29,7 +29,7 @@ - + diff --git a/assets/xml/objects/object_kinsta1_obj.xml b/assets/xml/objects/object_kinsta1_obj.xml index be178d1e8..d2a55b04d 100644 --- a/assets/xml/objects/object_kinsta1_obj.xml +++ b/assets/xml/objects/object_kinsta1_obj.xml @@ -1,7 +1,8 @@  + - - - + + + diff --git a/assets/xml/objects/object_kusa.xml b/assets/xml/objects/object_kusa.xml index 9ed22b39f..362e47114 100644 --- a/assets/xml/objects/object_kusa.xml +++ b/assets/xml/objects/object_kusa.xml @@ -1,6 +1,6 @@  - - + + diff --git a/assets/xml/objects/object_kzsaku.xml b/assets/xml/objects/object_kzsaku.xml index af957d700..fa157409e 100644 --- a/assets/xml/objects/object_kzsaku.xml +++ b/assets/xml/objects/object_kzsaku.xml @@ -1,7 +1,8 @@  + - - - + + + diff --git a/assets/xml/objects/object_ladder.xml b/assets/xml/objects/object_ladder.xml index 29ee69b9b..2fc01e5bf 100644 --- a/assets/xml/objects/object_ladder.xml +++ b/assets/xml/objects/object_ladder.xml @@ -1,13 +1,23 @@  + - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_lightblock.xml b/assets/xml/objects/object_lightblock.xml index d58ec0004..07c5da688 100644 --- a/assets/xml/objects/object_lightblock.xml +++ b/assets/xml/objects/object_lightblock.xml @@ -1,9 +1,10 @@  + - - - - - + + + + + diff --git a/assets/xml/objects/object_ob.xml b/assets/xml/objects/object_ob.xml index d23ab6790..1efe524b4 100644 --- a/assets/xml/objects/object_ob.xml +++ b/assets/xml/objects/object_ob.xml @@ -65,10 +65,10 @@ - + - + diff --git a/assets/xml/objects/object_obj_tokeidai.xml b/assets/xml/objects/object_obj_tokeidai.xml index 09e070254..94a302ea4 100644 --- a/assets/xml/objects/object_obj_tokeidai.xml +++ b/assets/xml/objects/object_obj_tokeidai.xml @@ -36,7 +36,7 @@ - + @@ -68,11 +68,11 @@ - + - + diff --git a/assets/xml/objects/object_obj_yasi.xml b/assets/xml/objects/object_obj_yasi.xml index a8e153edd..34ace132e 100644 --- a/assets/xml/objects/object_obj_yasi.xml +++ b/assets/xml/objects/object_obj_yasi.xml @@ -3,10 +3,10 @@ - - - - + + + + diff --git a/assets/xml/objects/object_random_obj.xml b/assets/xml/objects/object_random_obj.xml index 9b9986ca1..509ed86c7 100644 --- a/assets/xml/objects/object_random_obj.xml +++ b/assets/xml/objects/object_random_obj.xml @@ -1,6 +1,7 @@  + - - + + diff --git a/assets/xml/objects/object_redead_obj.xml b/assets/xml/objects/object_redead_obj.xml index fd286d6e7..8460579b3 100644 --- a/assets/xml/objects/object_redead_obj.xml +++ b/assets/xml/objects/object_redead_obj.xml @@ -1,7 +1,8 @@  + - - - + + + diff --git a/assets/xml/objects/object_rotlift.xml b/assets/xml/objects/object_rotlift.xml index da5db27d7..c2acf0540 100644 --- a/assets/xml/objects/object_rotlift.xml +++ b/assets/xml/objects/object_rotlift.xml @@ -3,7 +3,7 @@ - + @@ -11,7 +11,7 @@ - + diff --git a/assets/xml/objects/object_ru2.xml b/assets/xml/objects/object_ru2.xml index 89d00e9d7..7d5823a50 100644 --- a/assets/xml/objects/object_ru2.xml +++ b/assets/xml/objects/object_ru2.xml @@ -17,7 +17,7 @@ - + diff --git a/assets/xml/objects/object_sdn.xml b/assets/xml/objects/object_sdn.xml index 8271480be..bcc1f7637 100644 --- a/assets/xml/objects/object_sdn.xml +++ b/assets/xml/objects/object_sdn.xml @@ -3,19 +3,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -33,17 +33,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -61,6 +61,6 @@ - + diff --git a/assets/xml/objects/object_sichitai_obj.xml b/assets/xml/objects/object_sichitai_obj.xml index d1179beab..03bc4f7f3 100644 --- a/assets/xml/objects/object_sichitai_obj.xml +++ b/assets/xml/objects/object_sichitai_obj.xml @@ -1,6 +1,6 @@  - + diff --git a/assets/xml/objects/object_skb.xml b/assets/xml/objects/object_skb.xml index 78413a9de..b1afaf353 100644 --- a/assets/xml/objects/object_skb.xml +++ b/assets/xml/objects/object_skb.xml @@ -1,64 +1,65 @@  + - - - - + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + diff --git a/assets/xml/objects/object_stk.xml b/assets/xml/objects/object_stk.xml index a6f00c89b..eccbbb3a1 100644 --- a/assets/xml/objects/object_stk.xml +++ b/assets/xml/objects/object_stk.xml @@ -23,13 +23,13 @@ - - - - - - - + + + + + + + diff --git a/assets/xml/objects/object_tro.xml b/assets/xml/objects/object_tro.xml index eb1ba9984..0a4a3ea8b 100644 --- a/assets/xml/objects/object_tro.xml +++ b/assets/xml/objects/object_tro.xml @@ -1,6 +1,6 @@  - + diff --git a/assets/xml/objects/object_wdor04.xml b/assets/xml/objects/object_wdor04.xml index 07ad601dd..d47e78a8e 100644 --- a/assets/xml/objects/object_wdor04.xml +++ b/assets/xml/objects/object_wdor04.xml @@ -2,6 +2,6 @@ - + diff --git a/assets/xml/objects/object_zl1.xml b/assets/xml/objects/object_zl1.xml index 2b8a101bc..ed7fbf987 100644 --- a/assets/xml/objects/object_zl1.xml +++ b/assets/xml/objects/object_zl1.xml @@ -1,90 +1,117 @@  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_zl4.xml b/assets/xml/objects/object_zl4.xml index 667ca5f21..2c5eff1ef 100644 --- a/assets/xml/objects/object_zl4.xml +++ b/assets/xml/objects/object_zl4.xml @@ -104,7 +104,7 @@ - + @@ -118,7 +118,7 @@ - + diff --git a/assets/xml/objects/object_zod.xml b/assets/xml/objects/object_zod.xml index 45fb179cc..a926e6ef9 100644 --- a/assets/xml/objects/object_zod.xml +++ b/assets/xml/objects/object_zod.xml @@ -24,9 +24,9 @@ - - - + + + diff --git a/docs/tutorial/object_decomp_example.md b/docs/tutorial/object_decomp_example.md index e4025caae..10fcf2766 100644 --- a/docs/tutorial/object_decomp_example.md +++ b/docs/tutorial/object_decomp_example.md @@ -197,13 +197,13 @@ We can see this is the guard's Deku Flower: We can name the display list as such in the XML: ```xml - + ``` Then, like all steps before, we can run `./extract_assets.py -s objects/object_dns` and then update `z_en_dns.c` with our new name: ```c -gSPDisplayList(POLY_OPA_DISP++, gKingsChamberDekuGuardDekuFlower); +gSPDisplayList(POLY_OPA_DISP++, gKingsChamberDekuGuardDekuFlowerDL); ``` ## Step #5: Naming limb display lists diff --git a/include/functions.h b/include/functions.h index f4070af9c..865f71926 100644 --- a/include/functions.h +++ b/include/functions.h @@ -203,8 +203,8 @@ void EffectSsGFire_Spawn(PlayState* play, Vec3f* pos); // void EffectSsLightning_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, Color_RGBA8* pzParm3, Color_RGBA8* pzParm4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8); void EffectSsDtBubble_SpawnColorProfile(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale, s16 life, s16 colorProfile, s16 randXZ); void EffectSsDtBubble_SpawnCustomColor(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, Color_RGBA8* primColor, Color_RGBA8* envColor, s16 scale, s16 life, s16 randXZ); -void EffectSsHahen_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 flags, s16 scale, s16 objId, s16 life, Gfx* dList); -void EffectSsHahen_SpawnBurst(PlayState* play, Vec3f* pos, f32 burstScale, s16 flags, s16 scale, s16 randScaleRange, s16 count, s16 objId, s16 life, Gfx* dList); +void EffectSsHahen_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 flags, s16 scale, s16 objectId, s16 life, Gfx* dList); +void EffectSsHahen_SpawnBurst(PlayState* play, Vec3f* pos, f32 burstScale, s16 flags, s16 scale, s16 randScaleRange, s16 count, s16 objectId, s16 life, Gfx* dList); // void func_800B2364(void); void EffectSsStick_Spawn(PlayState* play, Vec3f* pos, s16 yaw); // void EffectSsSibuki_Spawn(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7); @@ -215,7 +215,7 @@ void EffectSsHitmark_SpawnCustomScale(PlayState* play, s32 type, s16 scale, Vec3 void EffectSsFhgFlash_SpawnShock(PlayState* play, Actor* actor, Vec3f* pos, s16 scale, u8 params); void EffectSsKFire_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scaleMax, u8 type); void EffectSsSolderSrchBall_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale, s16* playerDetected, s16 flags); -void EffectSsKakera_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* arg3, s16 gravity, s16 arg5, s16 arg6, s16 arg7, s16 arg8, s16 scale, s16 arg10, s16 arg11, s32 life, s16 colorIdx, s16 objId, Gfx* dList); +void EffectSsKakera_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* arg3, s16 gravity, s16 arg5, s16 arg6, s16 arg7, s16 arg8, s16 scale, s16 arg10, s16 arg11, s32 life, s16 colorIdx, s16 objectId, Gfx* dList); // void EffectSsIcePiece_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, UNK_TYPE4 uParm3, Vec3f* pzParm4, Vec3f* param_5, UNK_TYPE4 param_6); void EffectSsIcePiece_SpawnBurst(PlayState* play, Vec3f* refPos, f32 scale); void func_800B2B44(PlayState* play, Actor* actor, Vec3f* pos, f32 scale); diff --git a/include/variables.h b/include/variables.h index 8484cd7ca..866f241ba 100644 --- a/include/variables.h +++ b/include/variables.h @@ -180,7 +180,7 @@ extern s16 gItemPrices[]; extern u16 gSceneIdsPerRegion[11][27]; extern u8 gPlayerFormItemRestrictions[PLAYER_FORM_MAX][114]; -extern s16 gPlayerFormObjectIndices[PLAYER_FORM_MAX]; +extern s16 gPlayerFormObjectIds[PLAYER_FORM_MAX]; extern ObjectId gObjectTableSize; extern RomFile gObjectTable[OBJECT_ID_MAX]; diff --git a/include/z64actor.h b/include/z64actor.h index 1b6c37072..b3e1fe77e 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -118,7 +118,7 @@ typedef struct Actor { /* 0x004 */ u32 flags; // Flags used for various purposes /* 0x008 */ PosRot home; // Initial position/rotation when spawned. Can be used for other purposes /* 0x01C */ s16 params; // Configurable variable set by the actor's spawn data; original name: "args_data" - /* 0x01E */ s8 objBankIndex; // Object bank index of the actor's object dependency; original name: "bank" + /* 0x01E */ s8 objectSlot; // Object slot (in ObjectContext) corresponding to the actor's object; original name: "bank" /* 0x01F */ s8 targetMode; // Controls how far the actor can be targeted from and how far it can stay locked on /* 0x020 */ s16 halfDaysBits; // Bitmask indicating which half-days this actor is allowed to not be killed(?) (TODO: not sure how to word this). If the current halfDayBit is not part of this mask then the actor is killed when spawning the setup actors /* 0x024 */ PosRot world; // Position/rotation in the world diff --git a/include/z64door.h b/include/z64door.h index 26653c308..93dff5ea9 100644 --- a/include/z64door.h +++ b/include/z64door.h @@ -9,7 +9,7 @@ typedef struct KnobDoorActor { /* 0x15C */ SkelAnime skelAnime; /* 0x1A0 */ u8 animIndex; /* 0x1A1 */ u8 playOpenAnim; - /* 0x1A2 */ s8 requiredObjBankIndex; + /* 0x1A2 */ s8 objectSlot; /* 0x1A3 */ s8 dlIndex; } KnobDoorActor; // size = 0x1A4 diff --git a/include/z64effect.h b/include/z64effect.h index 71ad80510..8950958cb 100644 --- a/include/z64effect.h +++ b/include/z64effect.h @@ -33,7 +33,7 @@ struct CollisionPoly; #define rgEnvColorG regs[8] #define rgEnvColorB regs[9] #define rgEnvColorA regs[10] -#define rgObjBankIndex regs[11] +#define rgObjectSlot regs[11] typedef struct { /* 0x0 */ u8 active; diff --git a/include/z64math.h b/include/z64math.h index 6fa64f4f4..4a4d15b98 100644 --- a/include/z64math.h +++ b/include/z64math.h @@ -39,6 +39,11 @@ typedef struct { /* 0x8 */ s32 z; } Vec3i; // size = 0xC +typedef struct { + /* 0x0 */ f32 distance; + /* 0x4 */ s16 angle; +} VecPolar; // size = 0x8 + typedef struct { /* 0x0 */ Vec3s center; /* 0x6 */ s16 radius; @@ -49,8 +54,8 @@ typedef struct { /* 0xC */ f32 radius; } Spheref; // size = 0x10 -/* -The plane paramaters are of form `ax + by + cz + d = 0` +/* +The plane paramaters are of form `ax + by + cz + d = 0` where `(a,b,c)` is the plane's normal vector and d is the originDist */ typedef struct { diff --git a/include/z64scene.h b/include/z64scene.h index c6400a5c8..edb99fb68 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -472,6 +472,8 @@ typedef struct { typedef RoomShapeCullableEntry PolygonDlist2; typedef RoomShapeCullable PolygonType2; +#define OBJECT_SLOT_NONE -1 + typedef struct { /* 0x000 */ void* spaceStart; /* 0x004 */ void* spaceEnd; diff --git a/include/z64subs.h b/include/z64subs.h index 4d365dd14..2e751dfc4 100644 --- a/include/z64subs.h +++ b/include/z64subs.h @@ -147,8 +147,8 @@ s16 SubS_GetDistSqAndOrientPoints(Vec3f* vecA, Vec3f* vecB, f32* distSq); s32 SubS_MoveActorToPoint(Actor* actor, Vec3f* point, s16 rotStep); s16 SubS_GetDistSqAndOrientPath(Path* path, s32 pointIndex, Vec3f* pos, f32* distSq); -s8 SubS_IsObjectLoaded(s8 index, struct PlayState* play); -s8 SubS_GetObjectIndex(s16 id, struct PlayState* play); +s8 SubS_IsObjectLoaded(s8 objectSlot, struct PlayState* play); +s8 SubS_GetObjectSlot(s16 objectId, struct PlayState* play); Actor* SubS_FindActor(struct PlayState* play, Actor* actorListStart, u8 actorCategory, s16 actorId); diff --git a/include/z_en_hy_code.h b/include/z_en_hy_code.h index 2b5d46d57..7bc41c7c8 100644 --- a/include/z_en_hy_code.h +++ b/include/z_en_hy_code.h @@ -81,10 +81,10 @@ typedef struct EnHy { /* 0x144 */ EnHyActionFunc actionFunc; /* 0x148 */ EnHyActionFunc prevActionFunc; /* 0x14C */ SkelAnime skelAnime; - /* 0x190 */ s8 headObjIndex; // Limb 15 - /* 0x191 */ s8 skelUpperObjIndex; // Limbs 8-14 - /* 0x192 */ s8 skelLowerObjIndex; // Limbs 1-7 - /* 0x193 */ s8 animObjIndex; + /* 0x190 */ s8 headObjectSlot; // Limb 15 + /* 0x191 */ s8 skelUpperObjectSlot; // Limbs 8-14 + /* 0x192 */ s8 skelLowerObjectSlot; // Limbs 1-7 + /* 0x193 */ s8 animObjectSlot; /* 0x194 */ ColliderCylinder collider; /* 0x1E0 */ u16 textId; /* 0x1E2 */ u8 waitingOnInit; diff --git a/spec b/spec index 339a701c8..7aab83ed8 100644 --- a/spec +++ b/spec @@ -2137,8 +2137,7 @@ beginseg name "ovl_Obj_Grass_Unit" compress include "build/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.o" - include "build/data/ovl_Obj_Grass_Unit/ovl_Obj_Grass_Unit.data.o" - include "build/data/ovl_Obj_Grass_Unit/ovl_Obj_Grass_Unit.reloc.o" + include "build/src/overlays/actors/ovl_Obj_Grass_Unit/ovl_Obj_Grass_Unit_reloc.o" endseg beginseg @@ -3334,8 +3333,7 @@ beginseg name "ovl_En_Takaraya" compress include "build/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.o" - include "build/data/ovl_En_Takaraya/ovl_En_Takaraya.data.o" - include "build/data/ovl_En_Takaraya/ovl_En_Takaraya.reloc.o" + include "build/src/overlays/actors/ovl_En_Takaraya/ovl_En_Takaraya_reloc.o" endseg beginseg diff --git a/src/code/object_table.c b/src/code/object_table.c index aa73199b8..87c4069fe 100644 --- a/src/code/object_table.c +++ b/src/code/object_table.c @@ -1,6 +1,6 @@ #include "global.h" -s16 gPlayerFormObjectIndices[PLAYER_FORM_MAX] = { +s16 gPlayerFormObjectIds[PLAYER_FORM_MAX] = { OBJECT_LINK_BOY, // PLAYER_FORM_FIERCE_DEITY OBJECT_LINK_GORON, // PLAYER_FORM_GORON OBJECT_LINK_ZORA, // PLAYER_FORM_ZORA diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 25e106846..403144236 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1096,7 +1096,7 @@ void Actor_SetScale(Actor* actor, f32 scale) { } void Actor_SetObjectDependency(PlayState* play, Actor* actor) { - gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[actor->objBankIndex].segment); + gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[actor->objectSlot].segment); } void Actor_Init(Actor* actor, PlayState* play) { @@ -1119,7 +1119,7 @@ void Actor_Init(Actor* actor, PlayState* play) { actor->floorBgId = BGCHECK_SCENE; ActorShape_Init(&actor->shape, 0.0f, NULL, 0.0f); - if (Object_IsLoaded(&play->objectCtx, actor->objBankIndex)) { + if (Object_IsLoaded(&play->objectCtx, actor->objectSlot)) { Actor_SetObjectDependency(play, actor); actor->init(actor, play); actor->init = NULL; @@ -2486,7 +2486,7 @@ Actor* Actor_UpdateActor(UpdateActor_Params* params) { actor->audioFlags &= ~ACTOR_AUDIO_FLAG_ALL; if (actor->init != NULL) { - if (Object_IsLoaded(&play->objectCtx, actor->objBankIndex)) { + if (Object_IsLoaded(&play->objectCtx, actor->objectSlot)) { Actor_SetObjectDependency(play, actor); actor->init(actor, play); actor->init = NULL; @@ -2500,7 +2500,7 @@ Actor* Actor_UpdateActor(UpdateActor_Params* params) { nextActor = actor->next; } } else { - if (!Object_IsLoaded(&play->objectCtx, actor->objBankIndex)) { + if (!Object_IsLoaded(&play->objectCtx, actor->objectSlot)) { Actor_Kill(actor); } else if ((params->requiredActorFlag && !(actor->flags & params->requiredActorFlag)) || (((!params->requiredActorFlag) != 0) && @@ -2700,8 +2700,8 @@ void Actor_Draw(PlayState* play, Actor* actor) { Matrix_Scale(actor->scale.x, actor->scale.y, actor->scale.z, MTXMODE_APPLY); Actor_SetObjectDependency(play, actor); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[actor->objBankIndex].segment); - gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[actor->objBankIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[actor->objectSlot].segment); + gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[actor->objectSlot].segment); if (actor->colorFilterTimer != 0) { s32 colorFlag = COLORFILTER_GET_COLORFLAG(actor->colorFilterParams); @@ -3055,7 +3055,7 @@ void Actor_KillAllWithMissingObject(PlayState* play, ActorContext* actorCtx) { actor = actorCtx->actorLists[i].first; while (actor != NULL) { - if (!Object_IsLoaded(&play->objectCtx, actor->objBankIndex)) { + if (!Object_IsLoaded(&play->objectCtx, actor->objectSlot)) { Actor_Kill(actor); } @@ -3287,7 +3287,7 @@ Actor* Actor_SpawnAsChildAndCutscene(ActorContext* actorCtx, PlayState* play, s1 s32 pad; Actor* actor; ActorInit* actorInit; - s32 objBankIndex; + s32 objectSlot; ActorOverlay* overlayEntry; if (actorCtx->totalLoadedActors >= 0xFF) { @@ -3299,9 +3299,10 @@ Actor* Actor_SpawnAsChildAndCutscene(ActorContext* actorCtx, PlayState* play, s1 return NULL; } - objBankIndex = Object_GetSlot(&play->objectCtx, actorInit->objectId); - if ((objBankIndex < 0) || ((actorInit->type == ACTORCAT_ENEMY) && Flags_GetClear(play, play->roomCtx.curRoom.num) && - (actorInit->id != ACTOR_BOSS_05))) { + objectSlot = Object_GetSlot(&play->objectCtx, actorInit->objectId); + if ((objectSlot <= OBJECT_SLOT_NONE) || + ((actorInit->type == ACTORCAT_ENEMY) && Flags_GetClear(play, play->roomCtx.curRoom.num) && + (actorInit->id != ACTOR_BOSS_05))) { Actor_FreeOverlay(&gActorOverlayTable[index]); return NULL; } @@ -3323,10 +3324,10 @@ Actor* Actor_SpawnAsChildAndCutscene(ActorContext* actorCtx, PlayState* play, s1 actor->flags = actorInit->flags; if (actorInit->id == ACTOR_EN_PART) { - actor->objBankIndex = rotZ; + actor->objectSlot = rotZ; rotZ = 0; } else { - actor->objBankIndex = objBankIndex; + actor->objectSlot = objectSlot; } actor->init = actorInit->init; @@ -3705,7 +3706,7 @@ void Actor_SpawnBodyParts(Actor* actor, PlayState* play, s32 partParams, Gfx** d spawnedPart = Actor_SpawnAsChild(&play->actorCtx, actor, play, ACTOR_EN_PART, currentMatrix->mf[3][0], - currentMatrix->mf[3][1], currentMatrix->mf[3][2], 0, 0, actor->objBankIndex, partParams); + currentMatrix->mf[3][1], currentMatrix->mf[3][2], 0, 0, actor->objectSlot, partParams); if (spawnedPart != NULL) { part = (EnPart*)spawnedPart; diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 300a3c20f..da2752960 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -1,3 +1,4 @@ +#include "prevent_bss_reordering.h" #include "PR/ultratypes.h" // Variables are put before most headers as a hacky way to bypass bss reordering diff --git a/src/code/z_draw.c b/src/code/z_draw.c index 3f1d1dc47..1d5b967d7 100644 --- a/src/code/z_draw.c +++ b/src/code/z_draw.c @@ -823,13 +823,13 @@ void GetItem_DrawWallet(PlayState* play, s16 drawId) { void GetItem_DrawRemains(PlayState* play, s16 drawId) { s32 pad; - s8 objectIndex; + s8 objectSlot; OPEN_DISPS(play->state.gfxCtx); - objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_BSMASK); + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_BSMASK); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectSlot].segment); Gfx_SetupDL25_Opa(play->state.gfxCtx); Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY); diff --git a/src/code/z_effect_soft_sprite_old_init.c b/src/code/z_effect_soft_sprite_old_init.c index d71a18674..245f90a82 100644 --- a/src/code/z_effect_soft_sprite_old_init.c +++ b/src/code/z_effect_soft_sprite_old_init.c @@ -41,7 +41,7 @@ void EffectSs_DrawGEffect(PlayState* play, EffectSs* this, TexturePtr texture) { MtxF mfTrans11DA0; s32 pad1; Mtx* mtx; - void* object = play->objectCtx.slots[this->rgObjBankIndex].segment; + void* objectPtr = play->objectCtx.slots[this->rgObjectSlot].segment; OPEN_DISPS(gfxCtx); @@ -50,8 +50,8 @@ void EffectSs_DrawGEffect(PlayState* play, EffectSs* this, TexturePtr texture) { SkinMatrix_SetScale(&mfScale, scale, scale, scale); SkinMatrix_MtxFMtxFMult(&mfTrans, &play->billboardMtxF, &mfTrans11DA0); SkinMatrix_MtxFMtxFMult(&mfTrans11DA0, &mfScale, &mfResult); - gSegments[0x06] = VIRTUAL_TO_PHYSICAL(object); - gSPSegment(POLY_XLU_DISP++, 0x06, object); + gSegments[0x06] = VIRTUAL_TO_PHYSICAL(objectPtr); + gSPSegment(POLY_XLU_DISP++, 0x06, objectPtr); mtx = SkinMatrix_MtxFToNewMtx(gfxCtx, &mfResult); @@ -542,7 +542,7 @@ void EffectSsDtBubble_SpawnCustomColor(PlayState* play, Vec3f* pos, Vec3f* veloc * - due to how life is implemented it is capped at 200. Any value over 200 is accepted, but the fragment will * only live for 200 frames */ -void EffectSsHahen_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 flags, s16 scale, s16 objId, +void EffectSsHahen_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 flags, s16 scale, s16 objectId, s16 life, Gfx* dList) { EffectSsHahenInitParams initParams; @@ -552,7 +552,7 @@ void EffectSsHahen_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* ac initParams.dList = dList; initParams.flags = flags; initParams.scale = scale; - initParams.objId = objId; + initParams.objectId = objectId; initParams.life = life; EffectSs_Spawn(play, EFFECT_SS_HAHEN, 128, &initParams); @@ -568,7 +568,7 @@ void EffectSsHahen_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* ac * only live for 200 frames */ void EffectSsHahen_SpawnBurst(PlayState* play, Vec3f* pos, f32 burstScale, s16 flags, s16 scale, s16 randScaleRange, - s16 count, s16 objId, s16 life, Gfx* dList) { + s16 count, s16 objectId, s16 life, Gfx* dList) { s32 i; Vec3f velocity; Vec3f accel; @@ -581,7 +581,7 @@ void EffectSsHahen_SpawnBurst(PlayState* play, Vec3f* pos, f32 burstScale, s16 f velocity.z = (Rand_ZeroOne() - 0.5f) * burstScale; velocity.y = ((Rand_ZeroOne() * 0.5f) + 0.5f) * burstScale; - EffectSsHahen_Spawn(play, pos, &velocity, &accel, flags, Rand_S16Offset(scale, randScaleRange), objId, life, + EffectSsHahen_Spawn(play, pos, &velocity, &accel, flags, Rand_S16Offset(scale, randScaleRange), objectId, life, dList); } } @@ -719,7 +719,7 @@ void EffectSsSolderSrchBall_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, // EffectSsKakera Spawn Functions void EffectSsKakera_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* arg3, s16 gravity, s16 arg5, s16 arg6, - s16 arg7, s16 arg8, s16 scale, s16 arg10, s16 arg11, s32 life, s16 colorIdx, s16 objId, + s16 arg7, s16 arg8, s16 scale, s16 arg10, s16 arg11, s32 life, s16 colorIdx, s16 objectId, Gfx* dList) { EffectSsKakeraInitParams initParams; @@ -736,7 +736,7 @@ void EffectSsKakera_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* a initParams.unk_32 = arg11; initParams.life = life; initParams.colorIdx = colorIdx; - initParams.objId = objId; + initParams.objectId = objectId; initParams.dList = dList; EffectSs_Spawn(play, EFFECT_SS_KAKERA, 101, &initParams); diff --git a/src/code/z_en_hy_code.c b/src/code/z_en_hy_code.c index d64308bff..c7d89137b 100644 --- a/src/code/z_en_hy_code.c +++ b/src/code/z_en_hy_code.c @@ -133,7 +133,7 @@ EnDoor* EnHy_FindNearestDoor(Actor* actor, PlayState* play) { } void EnHy_ChangeObjectAndAnim(EnHy* enHy, PlayState* play, s16 animIndex) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[enHy->animObjIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[enHy->animObjectSlot].segment); EnHy_ChangeAnim(&enHy->skelAnime, animIndex); } @@ -141,7 +141,7 @@ s32 EnHy_UpdateSkelAnime(EnHy* enHy, PlayState* play) { s32 isUpdated = false; if (enHy->actor.draw != NULL) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[enHy->animObjIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[enHy->animObjectSlot].segment); SkelAnime_Update(&enHy->skelAnime); isUpdated = true; } @@ -161,14 +161,14 @@ void EnHy_Blink(EnHy* enHy, s32 eyeTexMaxIndex) { s32 EnHy_Init(EnHy* enHy, PlayState* play, FlexSkeletonHeader* skeletonHeaderSeg, s16 animIndex) { s32 isInitialized = false; - if ((SubS_IsObjectLoaded(enHy->animObjIndex, play) == true) && - (SubS_IsObjectLoaded(enHy->headObjIndex, play) == true) && - (SubS_IsObjectLoaded(enHy->skelUpperObjIndex, play) == true) && - (SubS_IsObjectLoaded(enHy->skelLowerObjIndex, play) == true)) { - enHy->actor.objBankIndex = enHy->skelLowerObjIndex; + if ((SubS_IsObjectLoaded(enHy->animObjectSlot, play) == true) && + (SubS_IsObjectLoaded(enHy->headObjectSlot, play) == true) && + (SubS_IsObjectLoaded(enHy->skelUpperObjectSlot, play) == true) && + (SubS_IsObjectLoaded(enHy->skelLowerObjectSlot, play) == true)) { + enHy->actor.objectSlot = enHy->skelLowerObjectSlot; isInitialized = true; ActorShape_Init(&enHy->actor.shape, 0.0f, NULL, 0.0f); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[enHy->actor.objBankIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[enHy->actor.objectSlot].segment); SkelAnime_InitFlex(play, &enHy->skelAnime, skeletonHeaderSeg, NULL, enHy->jointTable, enHy->morphTable, ENHY_LIMB_MAX); EnHy_ChangeObjectAndAnim(enHy, play, animIndex); diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index c6b52e476..d0dada57d 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -184,17 +184,17 @@ void EnItem00_Init(Actor* thisx, PlayState* play) { break; case ITEM00_SHIELD_HERO: - thisx->objBankIndex = Object_GetSlot(&play->objectCtx, OBJECT_GI_SHIELD_2); + thisx->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_SHIELD_2); EnItem00_SetObject(this, play, &shadowOffset, &shadowScale); break; case ITEM00_MAP: - thisx->objBankIndex = Object_GetSlot(&play->objectCtx, OBJECT_GI_MAP); + thisx->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_MAP); EnItem00_SetObject(this, play, &shadowOffset, &shadowScale); break; case ITEM00_COMPASS: - thisx->objBankIndex = Object_GetSlot(&play->objectCtx, OBJECT_GI_COMPASS); + thisx->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_COMPASS); EnItem00_SetObject(this, play, &shadowOffset, &shadowScale); break; @@ -317,10 +317,10 @@ void EnItem00_Destroy(Actor* thisx, PlayState* play) { } void EnItem00_WaitForHeartObject(EnItem00* this, PlayState* play) { - s32 objBankIndex = Object_GetSlot(&play->objectCtx, OBJECT_GI_HEARTS); + s32 objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_HEARTS); - if (Object_IsLoaded(&play->objectCtx, objBankIndex)) { - this->actor.objBankIndex = objBankIndex; + if (Object_IsLoaded(&play->objectCtx, objectSlot)) { + this->actor.objectSlot = objectSlot; this->actionFunc = func_800A640C; } } @@ -725,10 +725,10 @@ void EnItem00_Draw(Actor* thisx, PlayState* play) { case ITEM00_RECOVERY_HEART: if (this->unk152 < 0) { if (this->unk152 == -1) { - s8 bankIndex = Object_GetSlot(&play->objectCtx, OBJECT_GI_HEART); + s8 objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_HEART); - if (Object_IsLoaded(&play->objectCtx, bankIndex)) { - this->actor.objBankIndex = bankIndex; + if (Object_IsLoaded(&play->objectCtx, objectSlot)) { + this->actor.objectSlot = objectSlot; Actor_SetObjectDependency(play, &this->actor); this->unk152 = -2; } @@ -852,7 +852,7 @@ void EnItem00_DrawSprite(EnItem00* this, PlayState* play) { void EnItem00_DrawHeartContainer(EnItem00* this, PlayState* play) { s32 pad[2]; - if (Object_GetSlot(&play->objectCtx, OBJECT_GI_HEARTS) == this->actor.objBankIndex) { + if (Object_GetSlot(&play->objectCtx, OBJECT_GI_HEARTS) == this->actor.objectSlot) { OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL25_Xlu(play->state.gfxCtx); diff --git a/src/code/z_horse.c b/src/code/z_horse.c index ac0142fae..52808477a 100644 --- a/src/code/z_horse.c +++ b/src/code/z_horse.c @@ -216,7 +216,7 @@ s32 Horse_IsActive(PlayState* play, ActorContext* actorCtx) { if (bgActor != NULL) { while (true) { if ((bgActor->update != NULL) && (bgActor->init == NULL)) { - if (Object_IsLoaded(&play->objectCtx, bgActor->objBankIndex)) { + if (Object_IsLoaded(&play->objectCtx, bgActor->objectSlot)) { if ((bgActor->id == ACTOR_EN_HORSE) && (((EnHorse*)bgActor)->action != ENHORSE_ACTION_INACTIVE)) { return true; } diff --git a/src/code/z_map_disp.c b/src/code/z_map_disp.c index 7934386fb..ffb406e55 100644 --- a/src/code/z_map_disp.c +++ b/src/code/z_map_disp.c @@ -375,7 +375,7 @@ void func_8010439C(PlayState* play) { if (actor != NULL) { do { if ((actor->update != NULL) && (actor->init == NULL) && - (Object_IsLoaded(&play->objectCtx, actor->objBankIndex)) && + (Object_IsLoaded(&play->objectCtx, actor->objectSlot)) && ((actor->id == ACTOR_EN_BOX) || (i == ACTORCAT_PLAYER) || (actor->flags & ACTOR_FLAG_80000000)) && ((D_801BEBB8.curRoom == actor->room) || (actor->room == -1))) { @@ -485,7 +485,7 @@ void func_80104AE8(PlayState* play) { if (actor != NULL) { do { if ((actor->update != NULL) && (actor->init == NULL) && - Object_IsLoaded(&play->objectCtx, actor->objBankIndex) && + Object_IsLoaded(&play->objectCtx, actor->objectSlot) && ((D_801BEBB8.curRoom == actor->room) || (actor->room == -1))) { func_801045AC(play, actor); } @@ -499,13 +499,13 @@ void func_80104AE8(PlayState* play) { // Possible fakematch // https://decomp.me/scratch/kvGBZ void func_80104C80(PlayState* play) { - s32 objBankIndex; + s32 objectSlot; - objBankIndex = Object_GetSlot(&play->objectCtx, GAMEPLAY_DANGEON_KEEP); - if (objBankIndex < 0) { + objectSlot = Object_GetSlot(&play->objectCtx, GAMEPLAY_DANGEON_KEEP); + if (objectSlot < 0) { D_801BEBB8.unk20 |= 1; } else { - do { } while (!Object_IsLoaded(&play->objectCtx, objBankIndex)); } + do { } while (!Object_IsLoaded(&play->objectCtx, objectSlot)); } if (&play->objectCtx) {} } @@ -861,12 +861,14 @@ void MapDisp_SwapRooms(s16 nextRoom) { MapDisp_GetMapScale(nextMinimapEntry, &scaleTemp); scale = scaleTemp; } - D_801BEBB8.unk1C = (s16)(s32)( - ((f32)sp44 + (((f32)prevMinimapEntry->unk2 - (f32)nextMinimapEntry->unk2) * (1.0f / scale))) - - (f32)sp3C); - D_801BEBB8.unk1E = (s16)(s32)( - ((f32)sp40 + (((f32)prevMinimapEntry->unk6 - (f32)nextMinimapEntry->unk6) * (1.0f / scale))) - - (f32)sp38); + D_801BEBB8.unk1C = + (s16)(s32)(((f32)sp44 + + (((f32)prevMinimapEntry->unk2 - (f32)nextMinimapEntry->unk2) * (1.0f / scale))) - + (f32)sp3C); + D_801BEBB8.unk1E = + (s16)(s32)(((f32)sp40 + + (((f32)prevMinimapEntry->unk6 - (f32)nextMinimapEntry->unk6) * (1.0f / scale))) - + (f32)sp38); D_801BEBB8.unkC = sp54 - D_801BEBB8.unk1C; D_801BEBB8.unkE = sp50 - D_801BEBB8.unk1E; } diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index f288b31de..3a5d69a34 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -392,16 +392,16 @@ void func_8012301C(Actor* thisx, PlayState* play2) { this->actionVar1++; if (this->actionVar1 == 2) { - s16 objectId = gPlayerFormObjectIndices[GET_PLAYER_FORM]; + s16 objectId = gPlayerFormObjectIds[GET_PLAYER_FORM]; gActorOverlayTable[ACTOR_PLAYER].initInfo->objectId = objectId; - func_8012F73C(&play->objectCtx, this->actor.objBankIndex, objectId); - this->actor.objBankIndex = Object_GetSlot(&play->objectCtx, GAMEPLAY_KEEP); + func_8012F73C(&play->objectCtx, this->actor.objectSlot, objectId); + this->actor.objectSlot = Object_GetSlot(&play->objectCtx, GAMEPLAY_KEEP); } else if (this->actionVar1 >= 3) { - s32 objBankIndex = Object_GetSlot(&play->objectCtx, gActorOverlayTable[ACTOR_PLAYER].initInfo->objectId); + s32 objectSlot = Object_GetSlot(&play->objectCtx, gActorOverlayTable[ACTOR_PLAYER].initInfo->objectId); - if (Object_IsLoaded(&play->objectCtx, objBankIndex)) { - this->actor.objBankIndex = objBankIndex; + if (Object_IsLoaded(&play->objectCtx, objectSlot)) { + this->actor.objectSlot = objectSlot; this->actor.shape.rot.z = GET_PLAYER_FORM + 1; this->actor.init = PlayerCall_Init; this->actor.update = PlayerCall_Update; @@ -1869,7 +1869,7 @@ void Player_DrawHookshotReticle(PlayState* play, Player* player, f32 hookshotDis gSPMatrix(OVERLAY_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(OVERLAY_DISP++, 0x06, play->objectCtx.slots[player->actor.objBankIndex].segment); + gSPSegment(OVERLAY_DISP++, 0x06, play->objectCtx.slots[player->actor.objectSlot].segment); gSPDisplayList(OVERLAY_DISP++, gHookshotReticleDL); CLOSE_DISPS(play->state.gfxCtx); diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 235fec38e..2890797c5 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -157,7 +157,7 @@ void* func_8012F73C(ObjectContext* objectCtx, s32 slot, s16 id) { void Scene_CommandSpawnList(PlayState* play, SceneCmd* cmd) { s32 loadedCount; s16 playerObjectId; - void* nextObject; + void* objectPtr; play->linkActorEntry = (ActorEntry*)Lib_SegmentedToVirtual(cmd->spawnList.segment) + play->setupEntranceList[play->curSpawn].spawn; @@ -170,14 +170,14 @@ void Scene_CommandSpawnList(PlayState* play, SceneCmd* cmd) { } loadedCount = Object_SpawnPersistent(&play->objectCtx, OBJECT_LINK_CHILD); - nextObject = play->objectCtx.slots[play->objectCtx.numEntries].segment; + objectPtr = play->objectCtx.slots[play->objectCtx.numEntries].segment; play->objectCtx.numEntries = loadedCount; play->objectCtx.numPersistentEntries = loadedCount; - playerObjectId = gPlayerFormObjectIndices[GET_PLAYER_FORM]; + playerObjectId = gPlayerFormObjectIds[GET_PLAYER_FORM]; gActorOverlayTable[0].initInfo->objectId = playerObjectId; Object_SpawnPersistent(&play->objectCtx, playerObjectId); - play->objectCtx.slots[play->objectCtx.numEntries].segment = nextObject; + play->objectCtx.slots[play->objectCtx.numEntries].segment = objectPtr; } // SceneTableEntry Header Command 0x01: Actor List diff --git a/src/code/z_sub_s.c b/src/code/z_sub_s.c index 3dc02ba7d..e630ed150 100644 --- a/src/code/z_sub_s.c +++ b/src/code/z_sub_s.c @@ -1169,12 +1169,12 @@ s16 SubS_GetDistSqAndOrientPath(Path* path, s32 pointIndex, Vec3f* pos, f32* dis return Math_Atan2S(diffX, diffZ); } -s8 SubS_IsObjectLoaded(s8 index, PlayState* play) { - return !Object_IsLoaded(&play->objectCtx, index) ? false : true; +s8 SubS_IsObjectLoaded(s8 objectSlot, PlayState* play) { + return !Object_IsLoaded(&play->objectCtx, objectSlot) ? false : true; } -s8 SubS_GetObjectIndex(s16 id, PlayState* play) { - return Object_GetSlot(&play->objectCtx, id); +s8 SubS_GetObjectSlot(s16 objectId, PlayState* play) { + return Object_GetSlot(&play->objectCtx, objectId); } /** diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index 01a74402c..9db179c1a 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -52,7 +52,7 @@ ActorInit Bg_Breakwall_InitVars = { }; typedef struct { - /* 0x00 */ s16 unk_00; + /* 0x00 */ s16 objectId; /* 0x04 */ Gfx* unk_04; /* 0x08 */ Gfx* unk_08; /* 0x0C */ AnimatedMaterial* unk_0C; @@ -212,9 +212,9 @@ void BgBreakwall_Init(Actor* thisx, PlayState* play) { BgBreakwallStruct* sp24 = &D_808B8140[BGBREAKWALL_GET_F(&this->dyna.actor)]; Actor_ProcessInitChain(&this->dyna.actor, sInitChain); - this->unk_15C = Object_GetSlot(&play->objectCtx, sp24->unk_00); + this->objectSlot = Object_GetSlot(&play->objectCtx, sp24->objectId); - if ((this->unk_15C < 0) || !sp24->unk_14(this, play)) { + if ((this->objectSlot <= OBJECT_SLOT_NONE) || !sp24->unk_14(this, play)) { Actor_Kill(&this->dyna.actor); return; } @@ -233,10 +233,10 @@ void BgBreakwall_Destroy(Actor* thisx, PlayState* play) { } void func_808B76CC(BgBreakwall* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->unk_15C)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { BgBreakwallStruct* temp_s1 = &D_808B8140[BGBREAKWALL_GET_F(&this->dyna.actor)]; - this->dyna.actor.objBankIndex = this->unk_15C; + this->dyna.actor.objectSlot = this->objectSlot; this->dyna.actor.draw = BgBreakwall_Draw; if (((BGBREAKWALL_GET_F(&this->dyna.actor)) != BGBREAKWALL_F_7) && diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h index 5baa97232..f1f3c2b5c 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h @@ -20,7 +20,7 @@ typedef enum { typedef struct BgBreakwall { /* 0x000 */ DynaPolyActor dyna; - /* 0x15C */ s8 unk_15C; + /* 0x15C */ s8 objectSlot; /* 0x15D */ u8 switchFlag; /* 0x15E */ u8 unk_15E; /* 0x160 */ BgBreakwallActionFunc actionFunc; diff --git a/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c b/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c index 7f0312f0c..b6db682d2 100644 --- a/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c +++ b/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c @@ -57,7 +57,7 @@ static ColliderCylinderInit sCylinderInit = { }; void BgDkjailIvy_IvyCutEffects(BgDkjailIvy* this, PlayState* play) { - static Gfx* sLeafDlists[] = { gKakeraLeafMiddle, gKakeraLeafTip }; + static Gfx* sLeafDlists[] = { gKakeraLeafMiddleDL, gKakeraLeafTipDL }; static s16 sLeafScales[] = { 110, 80, 60, 40 }; f32 phi_fs0; s32 i; diff --git a/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.c b/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.c index 9e4f9a590..18063efce 100644 --- a/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.c +++ b/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.c @@ -1,7 +1,7 @@ /* * File: z_bg_f40_switch.c * Overlay: ovl_Bg_F40_Switch - * Description: Stone Tower Switch + * Description: Stone Tower FloorSwitch */ #include "z_bg_f40_switch.h" @@ -113,7 +113,7 @@ void BgF40Switch_Init(Actor* thisx, PlayState* play) { this->actionFunc = BgF40Switch_IdleUnpressed; this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y + 1.0f; DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); - DynaPolyActor_LoadMesh(play, &this->dyna, &object_f40_switch_Colheader_000118); + DynaPolyActor_LoadMesh(play, &this->dyna, &gStoneTowerFloorSwitchCol); if (!sBgF40SwitchGlobalsInitialized) { sBgF40SwitchLastUpdateFrame = play->gameplayFrames; sBgF40SwitchGlobalsInitialized = true; @@ -189,6 +189,6 @@ void BgF40Switch_Update(Actor* thisx, PlayState* play) { void BgF40Switch_Draw(Actor* thisx, PlayState* play) { BgF40Switch* this = THIS; - Gfx_DrawDListOpa(play, object_f40_switch_DL_000438); - Gfx_DrawDListOpa(play, object_f40_switch_DL_000390); + Gfx_DrawDListOpa(play, gStoneTowerFloorSwitchDL); + Gfx_DrawDListOpa(play, gStoneTowerFloorSwitchOutlineDL); } diff --git a/src/overlays/actors/ovl_Bg_Icicle/z_bg_icicle.c b/src/overlays/actors/ovl_Bg_Icicle/z_bg_icicle.c index a8eea2641..df6245c68 100644 --- a/src/overlays/actors/ovl_Bg_Icicle/z_bg_icicle.c +++ b/src/overlays/actors/ovl_Bg_Icicle/z_bg_icicle.c @@ -69,7 +69,7 @@ void BgIcicle_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(thisx, sInitChain); DynaPolyActor_Init(&this->dyna, 0); - DynaPolyActor_LoadMesh(play, &this->dyna, &object_icicle_Colheader_000294); + DynaPolyActor_LoadMesh(play, &this->dyna, &gIcicleCol); Collider_InitAndSetCylinder(play, &this->collider, thisx, &sCylinderInit); Collider_UpdateCylinder(thisx, &this->collider); @@ -242,5 +242,5 @@ void BgIcicle_Update(Actor* thisx, PlayState* play) { } void BgIcicle_Draw(Actor* thisx, PlayState* play) { - Gfx_DrawDListOpa(play, object_icicle_DL_0000D0); + Gfx_DrawDListOpa(play, gIcicleDL); } diff --git a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c index 05d4a27bf..ebdaeff51 100644 --- a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c +++ b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c @@ -386,7 +386,7 @@ void BgIngate_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL25_Opa(play->state.gfxCtx); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, gSichitaiBoat); + gSPDisplayList(POLY_OPA_DISP++, gSichitaiBoatDL); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.c b/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.c index 12cd5d334..8445e855a 100644 --- a/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.c +++ b/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.c @@ -37,10 +37,10 @@ static InitChainEntry sInitChain[] = { }; static Gfx* sLadderDLists[] = { - object_ladder_DL_0000A0, // 12 Rung - object_ladder_DL_0002D0, // 16 Rung - object_ladder_DL_000500, // 20 Rung - object_ladder_DL_000730, // 24 Rung + gWoodenLadder12RungDL, + gWoodenLadder16RungDL, + gWoodenLadder20RungDL, + gWoodenLadder24RungDL, }; void BgLadder_Init(Actor* thisx, PlayState* play) { @@ -55,13 +55,13 @@ void BgLadder_Init(Actor* thisx, PlayState* play) { size = thisx->params; if (size == LADDER_SIZE_12RUNG) { - DynaPolyActor_LoadMesh(play, &this->dyna, &object_ladder_Colheader_0001D8); + DynaPolyActor_LoadMesh(play, &this->dyna, &gWoodenLadder12RungCol); } else if (size == LADDER_SIZE_16RUNG) { - DynaPolyActor_LoadMesh(play, &this->dyna, &object_ladder_Colheader_000408); + DynaPolyActor_LoadMesh(play, &this->dyna, &gWoodenLadder16RungCol); } else if (size == LADDER_SIZE_20RUNG) { - DynaPolyActor_LoadMesh(play, &this->dyna, &object_ladder_Colheader_000638); + DynaPolyActor_LoadMesh(play, &this->dyna, &gWoodenLadder20RungCol); } else if (size == LADDER_SIZE_24RUNG) { - DynaPolyActor_LoadMesh(play, &this->dyna, &object_ladder_Colheader_000868); + DynaPolyActor_LoadMesh(play, &this->dyna, &gWoodenLadder24RungCol); } else { Actor_Kill(&this->dyna.actor); return; diff --git a/src/overlays/actors/ovl_Bg_Numa_Hana/z_bg_numa_hana.c b/src/overlays/actors/ovl_Bg_Numa_Hana/z_bg_numa_hana.c index 91ea969e2..0d308979c 100644 --- a/src/overlays/actors/ovl_Bg_Numa_Hana/z_bg_numa_hana.c +++ b/src/overlays/actors/ovl_Bg_Numa_Hana/z_bg_numa_hana.c @@ -378,7 +378,7 @@ void BgNumaHana_Draw(Actor* thisx, PlayState* play2) { BgNumaHana* this = THIS; WoodenFlowerPetalPosRot* innerPetalPosRot; WoodenFlowerPetalPosRot* outerPetalPosRot; - s32 objectIndex; + s32 objectSlot; s32 i; OPEN_DISPS(play->state.gfxCtx); @@ -404,13 +404,13 @@ void BgNumaHana_Draw(Actor* thisx, PlayState* play2) { gSPDisplayList(POLY_OPA_DISP++, gWoodenFlowerOuterPetalDL); } - objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_SYOKUDAI); - if ((objectIndex >= 0) && (Object_IsLoaded(&play->objectCtx, objectIndex))) { + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_SYOKUDAI); + if ((objectSlot > OBJECT_SLOT_NONE) && (Object_IsLoaded(&play->objectCtx, objectSlot))) { Matrix_SetTranslateRotateYXZ(this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y - 64.5f, this->dyna.actor.world.pos.z, &this->dyna.actor.shape.rot); Matrix_Scale(1.5f, 1.5f, 1.5f, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, gObjectSyokudaiTypeNoSwitchDL); } diff --git a/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c b/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c index 63cedff5a..3eb8e3c8a 100644 --- a/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c +++ b/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c @@ -103,9 +103,9 @@ void BgUmajump_Init(Actor* thisx, PlayState* play) { thisx->update = Actor_Noop; } } else { - this->objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_UMAJUMP); + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_UMAJUMP); - if (this->objectIndex < 0) { + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(thisx); } @@ -126,8 +126,8 @@ void BgUmajump_Destroy(Actor* thisx, PlayState* play) { void BgUmajump_Update(Actor* thisx, PlayState* play) { BgUmajump* this = THIS; - if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) { - this->dyna.actor.objBankIndex = this->objectIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->dyna.actor.objectSlot = this->objectSlot; this->dyna.actor.draw = BgUmajump_Draw; Actor_SetObjectDependency(play, &this->dyna.actor); diff --git a/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.h b/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.h index ae35ac98c..372402ebd 100644 --- a/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.h +++ b/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.h @@ -23,7 +23,7 @@ typedef struct BgUmajump { /* 0x000 */ DynaPolyActor dyna; /* 0x15C */ BgUmajumpActionFunc actionFunc; /* 0x160 */ union { - s32 objectIndex; + s32 objectSlot; s32 rotationTimer; // y rotation s32 pathIndex; }; diff --git a/src/overlays/actors/ovl_Boss_03/z_boss_03.c b/src/overlays/actors/ovl_Boss_03/z_boss_03.c index e9394f783..9e1111a6b 100644 --- a/src/overlays/actors/ovl_Boss_03/z_boss_03.c +++ b/src/overlays/actors/ovl_Boss_03/z_boss_03.c @@ -2152,14 +2152,14 @@ void Boss03_Update(Actor* thisx, PlayState* play2) { /* Start of Gyorg's Draw section */ void Boss03_SetObject(PlayState* play, s16 objectId) { - s32 objectIndex = Object_GetSlot(&play->objectCtx, objectId); + s32 objectSlot = Object_GetSlot(&play->objectCtx, objectId); OPEN_DISPS(play->state.gfxCtx); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectIndex].segment); - gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[objectIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectSlot].segment); + gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[objectSlot].segment); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index 2b0669f39..3f29047fa 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -37,14 +37,14 @@ ActorInit Demo_Effect_InitVars = { }; void DemoEffect_Init(Actor* thisx, PlayState* play) { - static s16 sEffectTypeObjects[] = { + static s16 sEffectTypeObjectIds[] = { OBJECT_EFC_TW, OBJECT_EFC_TW, OBJECT_EFC_TW, OBJECT_EFC_TW, GAMEPLAY_KEEP, GAMEPLAY_KEEP, GAMEPLAY_KEEP, GAMEPLAY_KEEP, GAMEPLAY_KEEP, }; s32 pad; DemoEffect* this = THIS; s32 type = DEMO_EFFECT_GET_TYPE(&this->actor); - s32 objectIndex; + s32 objectSlot; s32 pad2; Color_RGB8 lightColors[] = { { 200, 200, 0 }, // Yellow @@ -54,16 +54,16 @@ void DemoEffect_Init(Actor* thisx, PlayState* play) { { 255, 255, 80 }, // Light Yellow }; - if (sEffectTypeObjects[type] == GAMEPLAY_KEEP) { - objectIndex = 0; + if (sEffectTypeObjectIds[type] == GAMEPLAY_KEEP) { + objectSlot = 0; } else { - objectIndex = Object_GetSlot(&play->objectCtx, sEffectTypeObjects[type]); + objectSlot = Object_GetSlot(&play->objectCtx, sEffectTypeObjectIds[type]); } - if (objectIndex < 0) { + if (objectSlot <= OBJECT_SLOT_NONE) { // assert on debug } else { - this->initObjectIndex = objectIndex; + this->initObjectSlot = objectSlot; } Actor_SetScale(&this->actor, 0.2f); @@ -123,8 +123,8 @@ void DemoEffect_Destroy(Actor* thisx, PlayState* play) { } void DemoEffect_WaitForObject(DemoEffect* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->initObjectIndex)) { - this->actor.objBankIndex = this->initObjectIndex; + if (Object_IsLoaded(&play->objectCtx, this->initObjectSlot)) { + this->actor.objectSlot = this->initObjectSlot; this->actor.draw = this->initDrawFunc; this->actionFunc = this->initActionFunc; } diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h index a69316308..538f6bc1e 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h @@ -26,7 +26,7 @@ typedef enum { typedef struct DemoEffect { /* 0x000 */ Actor actor; /* 0x144 */ SkelCurve skelCurve; - /* 0x164 */ u8 initObjectIndex; + /* 0x164 */ u8 initObjectSlot; /* 0x165 */ u8 primXluColor[3]; /* 0x168 */ u8 envXluColor[3]; /* 0x16C */ s16 timer; diff --git a/src/overlays/actors/ovl_Demo_Getitem/z_demo_getitem.c b/src/overlays/actors/ovl_Demo_Getitem/z_demo_getitem.c index b52787f36..d72fdca4f 100644 --- a/src/overlays/actors/ovl_Demo_Getitem/z_demo_getitem.c +++ b/src/overlays/actors/ovl_Demo_Getitem/z_demo_getitem.c @@ -30,7 +30,7 @@ ActorInit Demo_Getitem_InitVars = { (ActorFunc)NULL, }; -static s16 sObjectBankIndices[] = { OBJECT_GI_MASK14, OBJECT_GI_SWORD_4 }; +static s16 sObjectIds[] = { OBJECT_GI_MASK14, OBJECT_GI_SWORD_4 }; static s16 sGetItemDraws[] = { GID_MASK_GREAT_FAIRY, GID_SWORD_GREAT_FAIRY }; @@ -43,7 +43,7 @@ typedef enum GreatFairyRewardItem { void DemoGetitem_Init(Actor* thisx, PlayState* play) { s32 pad; - s32 objectIndex; + s32 objectSlot; s32 itemIndex; DemoGetitem* this = THIS; @@ -57,22 +57,22 @@ void DemoGetitem_Init(Actor* thisx, PlayState* play) { this->getItemDrawId = sGetItemDraws[itemIndex]; this->cueType = sCueTypes[itemIndex]; - objectIndex = Object_GetSlot(&play->objectCtx, sObjectBankIndices[itemIndex]); - if (objectIndex < 0) { + objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[itemIndex]); + if (objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } - this->objectIndex = objectIndex; + this->objectSlot = objectSlot; } void DemoGetitem_Destroy(Actor* thisx, PlayState* play) { } void DemoGetitem_Wait(DemoGetitem* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { this->actor.draw = NULL; - this->actor.objBankIndex = this->objectIndex; + this->actor.objectSlot = this->objectSlot; this->actionFunc = DemoGetitem_PerformCutsceneActions; } } diff --git a/src/overlays/actors/ovl_Demo_Getitem/z_demo_getitem.h b/src/overlays/actors/ovl_Demo_Getitem/z_demo_getitem.h index 130b2cfa6..c43020300 100644 --- a/src/overlays/actors/ovl_Demo_Getitem/z_demo_getitem.h +++ b/src/overlays/actors/ovl_Demo_Getitem/z_demo_getitem.h @@ -13,7 +13,7 @@ typedef struct DemoGetitem { /* 0x000 */ Actor actor; /* 0x144 */ s16 getItemDrawId; /* 0x146 */ u16 cueType; - /* 0x148 */ s8 objectIndex; + /* 0x148 */ s8 objectSlot; /* 0x14C */ DemoGetitemActionFunc actionFunc; } DemoGetitem; // size = 0x150 diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c index 945e09fee..bce779aa7 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -34,7 +34,7 @@ ActorInit Demo_Kankyo_InitVars = { (ActorFunc)DemoKankyo_Draw, }; -static s32 sObjectBubbleIndex = OBJECT_BUBBLE | 0x10000; +static s32 sObjectBubbleId = OBJECT_BUBBLE | 0x10000; void DemoKankyo_SetupAction(DemoKankyo* this, DemoKankyoActionFunc actionFunc) { this->actionFunc = actionFunc; @@ -279,9 +279,9 @@ void DemoKakyo_LostWoodsSparkleActionFunc(DemoKankyo* this, PlayState* play) { } void DemoKakyo_GiantObjectCheck(DemoKankyo* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->objectId)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { this->isSafeToDrawGiants = true; - this->actor.objBankIndex = this->objectId; + this->actor.objectSlot = this->objectSlot; DemoKankyo_SetupAction(this, DemoKakyo_MoonSparklesActionFunc); } } @@ -437,7 +437,7 @@ void DemoKankyo_Init(Actor* thisx, PlayState* play) { DemoKankyo* this = THIS; s32 pad; s32 i; - s32 objId; + s32 objectSlot; // This must be a single line to match, possibly a macro? // clang-format off @@ -449,7 +449,7 @@ void DemoKankyo_Init(Actor* thisx, PlayState* play) { switch (this->actor.params) { case DEMO_KANKYO_TYPE_LOSTWOODS: - objId = OBJECT_UNSET_0; + objectSlot = 0; this->actor.room = -1; if (sLostWoodsSparklesMutex == false) { DemoKankyo_SetupAction(this, DemoKakyo_LostWoodsSparkleActionFunc); @@ -461,24 +461,24 @@ void DemoKankyo_Init(Actor* thisx, PlayState* play) { case DEMO_KANKYO_TYPE_GIANTS: this->isSafeToDrawGiants = false; - objId = Object_GetSlot(&play->objectCtx, sObjectBubbleIndex); + objectSlot = Object_GetSlot(&play->objectCtx, sObjectBubbleId); DemoKankyo_SetupAction(this, DemoKakyo_GiantObjectCheck); break; case DEMO_KANKYO_TYPE_MOON: - objId = OBJECT_UNSET_0; + objectSlot = 0; this->isSafeToDrawGiants = true; DemoKankyo_SetupAction(this, DemoKakyo_MoonSparklesActionFunc); break; default: //! @bug: this causes a crash because the actionfunc is never set - objId = -1; + objectSlot = OBJECT_SLOT_NONE; break; } - if (objId > -1) { - this->objectId = objId; + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; } } diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.h b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.h index cbee0a148..6142796ce 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.h +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.h @@ -31,7 +31,7 @@ typedef struct DemoKankyo { /* 0x0000 */ Actor actor; /* 0x0144 */ DemoKankyoEffect effects[DEMOKANKYO_EFFECT_COUNT]; /* 0x1644 */ DemoKankyoActionFunc actionFunc; - /* 0x1648 */ s32 objectId; + /* 0x1648 */ s32 objectSlot; /* 0x164C */ u8 isSafeToDrawGiants; } DemoKankyo; // size = 0x1650 diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.c b/src/overlays/actors/ovl_Dm_An/z_dm_an.c index a55f2cc1f..3b05c6e56 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.c +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.c @@ -70,41 +70,41 @@ static AnimationInfoS sAnimationInfo[DMAN_ANIM_MAX] = { }; s32 DmAn_UpdateSkelAnime(DmAn* this, PlayState* play) { - s8 objectIndex = this->actor.objBankIndex; - s8 objectIndex2; + s8 objectSlot = this->actor.objectSlot; + s8 objectSlot2; s32 isAnimFinished = false; if (this->animIndex <= DMAN_ANIM_1) { - objectIndex2 = this->actor.objBankIndex; + objectSlot2 = this->actor.objectSlot; } else { - objectIndex2 = this->unk_2AC; + objectSlot2 = this->an4ObjectSlot; } - if (objectIndex2 >= 0) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex2].segment); + if (objectSlot2 >= 0) { + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot2].segment); isAnimFinished = SkelAnime_Update(&this->skelAnime); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); } return isAnimFinished; } s32 DmAn_ChangeAnim(DmAn* this, PlayState* play, s32 animIndex) { - s8 objectIndex = this->actor.objBankIndex; - s8 objectIndex2; + s8 objectSlot = this->actor.objectSlot; + s8 objectSlot2; s32 didAnimChange = false; if (animIndex <= DMAN_ANIM_1) { - objectIndex2 = this->actor.objBankIndex; + objectSlot2 = this->actor.objectSlot; } else { - objectIndex2 = this->unk_2AC; + objectSlot2 = this->an4ObjectSlot; } - if ((objectIndex2 >= 0) && (this->animIndex != animIndex)) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex2].segment); + if ((objectSlot2 >= 0) && (this->animIndex != animIndex)) { + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot2].segment); this->animIndex = animIndex; didAnimChange = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, animIndex); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); } return didAnimChange; @@ -191,8 +191,8 @@ Actor* func_80C1C8E8(PlayState* play) { } void func_80C1C958(DmAn* this, PlayState* play) { - if ((this->unk_2AC >= 0) && SubS_IsObjectLoaded(this->unk_2AC, play) && (this->unk_2AD >= 0) && - SubS_IsObjectLoaded(this->unk_2AD, play)) { + if ((this->an4ObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->an4ObjectSlot, play) && + (this->msmoObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->msmoObjectSlot, play)) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 14.0f); SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->jointTable, this->morphTable, OBJECT_AN1_LIMB_MAX); @@ -273,8 +273,8 @@ void DmAn_DoNothing(DmAn* this, PlayState* play) { void DmAn_Init(Actor* thisx, PlayState* play) { DmAn* this = THIS; - this->unk_2AC = SubS_GetObjectIndex(OBJECT_AN4, play); - this->unk_2AD = SubS_GetObjectIndex(OBJECT_MSMO, play); + this->an4ObjectSlot = SubS_GetObjectSlot(OBJECT_AN4, play); + this->msmoObjectSlot = SubS_GetObjectSlot(OBJECT_MSMO, play); this->actionFunc = func_80C1C958; } @@ -302,8 +302,8 @@ Vec3f D_80C1D2DC = { 1000.0f, 0.0f, 0.0f }; void func_80C1CD80(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { s32 pad[2]; DmAn* this = THIS; - s8 sp2B = this->actor.objBankIndex; - s8 sp2A = this->unk_2AD; + s8 objectSlot = this->actor.objectSlot; + s8 msmoObjectSlot = this->msmoObjectSlot; if ((limbIndex == OBJECT_AN1_LIMB_05) && this->didAnimChangeInCs) { OPEN_DISPS(play->state.gfxCtx); @@ -312,9 +312,9 @@ void func_80C1CD80(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Acto Matrix_TranslateRotateZYX(&D_80C1D2C8, &D_80C1D2D4); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp2A].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[msmoObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, gMoonMaskDL); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp2B].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectSlot].segment); Matrix_Pop(); diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.h b/src/overlays/actors/ovl_Dm_An/z_dm_an.h index c1e85d3eb..00931d731 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.h +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.h @@ -18,8 +18,8 @@ typedef struct DmAn { /* 0x1A4 */ Vec3s unk_1AA; /* 0x1B0 */ Vec3s jointTable[OBJECT_AN1_LIMB_MAX]; /* 0x22E */ Vec3s morphTable[OBJECT_AN1_LIMB_MAX]; - /* 0x2AC */ s8 unk_2AC; - /* 0x2AD */ s8 unk_2AD; + /* 0x2AC */ s8 an4ObjectSlot; + /* 0x2AD */ s8 msmoObjectSlot; /* 0x2AE */ u16 unk_2AE; /* 0x2B0 */ u8 cueId; /* 0x2B4 */ Actor* unk_2B4; diff --git a/src/overlays/actors/ovl_Dm_Char03/z_dm_char03.c b/src/overlays/actors/ovl_Dm_Char03/z_dm_char03.c index 3c499aa7a..d7d7460c8 100644 --- a/src/overlays/actors/ovl_Dm_Char03/z_dm_char03.c +++ b/src/overlays/actors/ovl_Dm_Char03/z_dm_char03.c @@ -72,10 +72,10 @@ void DmChar03_Destroy(Actor* thisx, PlayState* play) { } void func_80AAB5F8(DmChar03* this, PlayState* play) { - s32 index = Object_GetSlot(&play->objectCtx, OBJECT_GI_NUTSMASK); + s32 objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_NUTSMASK); - if (index >= 0) { - this->objectIndex = index; + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; this->actionFunc = func_80AAB644; } } @@ -187,13 +187,13 @@ void DmChar03_Draw(Actor* thisx, PlayState* play) { void func_80AABA84(PlayState* play, DmChar03* this) { s32 pad; - if (this->actor.objBankIndex == this->objectIndex) { + if (this->actor.objectSlot == this->objectSlot) { Matrix_Translate(this->offset.x, this->offset.y, this->offset.z, MTXMODE_NEW); Matrix_RotateZYX(0, (play->gameplayFrames * 0x3E8), 0, MTXMODE_APPLY); Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY); GetItem_Draw(play, GID_MASK_DEKU); } - if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) { - this->actor.objBankIndex = this->objectIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; } } diff --git a/src/overlays/actors/ovl_Dm_Char03/z_dm_char03.h b/src/overlays/actors/ovl_Dm_Char03/z_dm_char03.h index 5b4a2e621..3b60c18c2 100644 --- a/src/overlays/actors/ovl_Dm_Char03/z_dm_char03.h +++ b/src/overlays/actors/ovl_Dm_Char03/z_dm_char03.h @@ -13,7 +13,7 @@ typedef struct DmChar03 { /* 0x188 */ DmChar03ActionFunc actionFunc; /* 0x18C */ s16 animIndex; /* 0x18E */ u8 unk_18E; - /* 0x18F */ u8 objectIndex; + /* 0x18F */ u8 objectSlot; /* 0x190 */ Vec3f offset; } DmChar03; // size = 0x19C diff --git a/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.c b/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.c index f2f8980a0..43c049f97 100644 --- a/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.c +++ b/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.c @@ -178,10 +178,10 @@ void DmChar05_Destroy(Actor* thisx, PlayState* play) { } void func_80AAC990(DmChar05* this, PlayState* play) { - s32 objectIdx = Object_GetSlot(&play->objectCtx, OBJECT_GI_GOLONMASK); + s32 objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_GOLONMASK); - if (objectIdx >= 0) { - this->unk_18F = objectIdx; + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; this->actionFunc = func_80AAC9DC; } } @@ -200,10 +200,10 @@ void func_80AAC9DC(DmChar05* this, PlayState* play) { } void func_80AACA98(DmChar05* this, PlayState* play) { - s32 objectIdx = Object_GetSlot(&play->objectCtx, OBJECT_GI_MASK13); + s32 objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_MASK13); - if (objectIdx >= 0) { - this->unk_18F = objectIdx; + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; this->actionFunc = func_80AACAE4; } } @@ -227,15 +227,15 @@ void func_80AACAE4(DmChar05* this, PlayState* play) { } void func_80AACBE4(DmChar05* this, PlayState* play) { - static s16 D_80AAE2F0[] = { + static s16 sObjectIds[] = { OBJECT_GI_MASK17, OBJECT_GI_MASK14, OBJECT_GI_MASK10, OBJECT_GI_MASK21, OBJECT_GI_MASK11, OBJECT_GI_MASK20, OBJECT_GI_RABIT_MASK, OBJECT_GI_MASK12, }; s32 params = DMCHAR05_GET(&this->actor) - DMCHAR05_5; - s32 objectIdx = Object_GetSlot(&play->objectCtx, D_80AAE2F0[params]); + s32 objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[params]); - if (objectIdx >= 0) { - this->unk_18F = objectIdx; + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; this->actionFunc = func_80AACD0C; } } @@ -278,10 +278,10 @@ void func_80AACD0C(DmChar05* this, PlayState* play) { } void func_80AACD1C(DmChar05* this, PlayState* play) { - s32 objectIdx = Object_GetSlot(&play->objectCtx, OBJECT_GI_ZORAMASK); + s32 objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_ZORAMASK); - if (objectIdx >= 0) { - this->unk_18F = objectIdx; + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; this->actionFunc = func_80AACD68; } } @@ -298,10 +298,10 @@ void func_80AACD68(DmChar05* this, PlayState* play) { } void func_80AACE10(DmChar05* this, PlayState* play) { - s32 objectIdx = Object_GetSlot(&play->objectCtx, OBJECT_GI_MASK15); + s32 objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GI_MASK15); - if (objectIdx >= 0) { - this->unk_18F = objectIdx; + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; this->actionFunc = func_80AACE5C; } } @@ -723,55 +723,55 @@ void DmChar05_Draw(Actor* thisx, PlayState* play) { } void func_80AADD9C(PlayState* play, DmChar05* this) { - if (this->actor.objBankIndex == this->unk_18F) { + if (this->actor.objectSlot == this->objectSlot) { Matrix_Translate(this->unk_190.x, this->unk_190.y, this->unk_190.z, MTXMODE_NEW); Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY); Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY); GetItem_Draw(play, GID_MASK_GORON); } - if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) { - this->actor.objBankIndex = this->unk_18F; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; } } void func_80AADE78(PlayState* play, DmChar05* this) { - if (this->actor.objBankIndex == this->unk_18F) { + if (this->actor.objectSlot == this->objectSlot) { Matrix_Translate(this->unk_190.x, this->unk_190.y, this->unk_190.z, MTXMODE_NEW); Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY); Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY); GetItem_Draw(play, GID_MASK_ZORA); } - if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) { - this->actor.objBankIndex = this->unk_18F; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; } } void func_80AADF54(PlayState* play, DmChar05* this) { - if (this->actor.objBankIndex == this->unk_18F) { + if (this->actor.objectSlot == this->objectSlot) { Matrix_Translate(this->unk_190.x, this->unk_190.y, this->unk_190.z, MTXMODE_NEW); Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY); Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY); GetItem_Draw(play, GID_MASK_GIBDO); } - if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) { - this->actor.objBankIndex = this->unk_18F; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; } } void func_80AAE030(PlayState* play, DmChar05* this) { if (this->unk_18E != 0) { - if (this->actor.objBankIndex == this->unk_18F) { + if (this->actor.objectSlot == this->objectSlot) { Matrix_Translate(this->unk_190.x, this->unk_190.y, this->unk_190.z, MTXMODE_NEW); Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY); Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY); GetItem_Draw(play, GID_MASK_COUPLE); } - if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) { - this->actor.objBankIndex = this->unk_18F; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; } } } @@ -784,14 +784,14 @@ void func_80AAE114(PlayState* play, DmChar05* this) { }; getItemDrawIndex = DMCHAR05_GET(&this->actor) - DMCHAR05_5; - if (this->actor.objBankIndex == this->unk_18F) { + if (this->actor.objectSlot == this->objectSlot) { Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, MTXMODE_NEW); Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY); Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY); GetItem_Draw(play, getItemDrawIds[getItemDrawIndex]); } - if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) { - this->actor.objBankIndex = this->unk_18F; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; } } diff --git a/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.h b/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.h index 62500ec9c..a690cd50f 100644 --- a/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.h +++ b/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.h @@ -31,7 +31,7 @@ typedef struct DmChar05 { /* 0x188 */ DmChar05ActionFunc actionFunc; /* 0x18C */ s16 animIndex; /* 0x18E */ u8 unk_18E; - /* 0x18F */ u8 unk_18F; + /* 0x18F */ u8 objectSlot; /* 0x190 */ Vec3f unk_190; /* 0x19C */ u32 unk_19C; /* 0x1A0 */ u32 unk_1A0; diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c index ec5a83095..3994c8fce 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c @@ -70,41 +70,41 @@ static AnimationInfoS sAnimationInfo[DMGM_ANIM_MAX] = { }; s32 DmGm_UpdateSkelAnime(DmGm* this, PlayState* play) { - s8 objectIndex = this->actor.objBankIndex; + s8 objectSlot = this->actor.objectSlot; s8 objectIndex2; s32 isAnimFinished = false; if (this->animIndex <= DMGM_ANIM_1) { - objectIndex2 = this->actor.objBankIndex; + objectIndex2 = this->actor.objectSlot; } else { - objectIndex2 = this->unk_2AC; + objectIndex2 = this->an4ObjectSlot; } if (objectIndex2 >= 0) { gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex2].segment); isAnimFinished = SkelAnime_Update(&this->skelAnime); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); } return isAnimFinished; } s32 DmGm_ChangeAnim(DmGm* this, PlayState* play, s32 animIndex) { - s8 objectIndex = this->actor.objBankIndex; + s8 objectSlot = this->actor.objectSlot; s8 objectIndex2; s32 didAnimChange = false; if (animIndex <= DMGM_ANIM_1) { - objectIndex2 = this->actor.objBankIndex; + objectIndex2 = this->actor.objectSlot; } else { - objectIndex2 = this->unk_2AC; + objectIndex2 = this->an4ObjectSlot; } if ((objectIndex2 >= 0) && (this->animIndex != animIndex)) { gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex2].segment); this->animIndex = animIndex; didAnimChange = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, animIndex); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); } return didAnimChange; @@ -191,8 +191,8 @@ Actor* func_80C24838(PlayState* play) { } void func_80C248A8(DmGm* this, PlayState* play) { - if ((this->unk_2AC >= 0) && SubS_IsObjectLoaded(this->unk_2AC, play) && (this->unk_2AD >= 0) && - SubS_IsObjectLoaded(this->unk_2AD, play)) { + if ((this->an4ObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->an4ObjectSlot, play) && + (this->msmoObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->msmoObjectSlot, play)) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 14.0f); SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->jointTable, this->morphTable, OBJECT_AN1_LIMB_MAX); @@ -273,8 +273,8 @@ void DmGm_DoNothing(DmGm* this, PlayState* play) { void DmGm_Init(Actor* thisx, PlayState* play) { DmGm* this = THIS; - this->unk_2AC = SubS_GetObjectIndex(OBJECT_AN4, play); - this->unk_2AD = SubS_GetObjectIndex(OBJECT_MSMO, play); + this->an4ObjectSlot = SubS_GetObjectSlot(OBJECT_AN4, play); + this->msmoObjectSlot = SubS_GetObjectSlot(OBJECT_MSMO, play); this->actionFunc = func_80C248A8; } @@ -302,8 +302,8 @@ Vec3f D_80C2522C = { 1000.0f, 0.0f, 0.0f }; void DmGm_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { s32 pad[2]; DmGm* this = THIS; - s8 sp2B = this->actor.objBankIndex; - s8 sp2A = this->unk_2AD; + s8 sp2B = this->actor.objectSlot; + s8 sp2A = this->msmoObjectSlot; if ((limbIndex == OBJECT_AN1_LIMB_05) && this->didAnimChangeInCs) { OPEN_DISPS(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h index e54ee07ee..8abcba712 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h @@ -18,8 +18,8 @@ typedef struct DmGm { /* 0x1A4 */ Vec3s unk_1AA; /* 0x1B0 */ Vec3s jointTable[OBJECT_AN1_LIMB_MAX]; /* 0x22E */ Vec3s morphTable[OBJECT_AN1_LIMB_MAX]; - /* 0x2AC */ s8 unk_2AC; - /* 0x2AD */ s8 unk_2AD; + /* 0x2AC */ s8 an4ObjectSlot; + /* 0x2AD */ s8 msmoObjectSlot; /* 0x2AE */ u16 unk_2AE; /* 0x2B0 */ u8 cueId; /* 0x2B4 */ Actor* unk_2B4; diff --git a/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c b/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c index c9aaa48cb..e4f85e15c 100644 --- a/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c +++ b/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c @@ -307,20 +307,20 @@ static AnimationInfo sAnimationInfo[SK_ANIM_LAUGH_AFTER_MAX] = { * Ensures the correct object for the current animation is in segment 6. */ void DmStk_LoadObjectForAnimation(DmStk* this, PlayState* play) { - s32 objectIndex; + s32 objectSlot; if (((this->animIndex >= SK_ANIM_SHAKE_HEAD) && (this->animIndex <= SK_ANIM_BENT_OVER_HEAD_TWITCH)) || (this->animIndex == SK_ANIM_CALL_DOWN_MOON_START) || (this->animIndex == SK_ANIM_CALL_DOWN_MOON_LOOP) || (this->animIndex == SK_ANIM_TELESCOPE_LOOK_UP_START) || (this->animIndex == SK_ANIM_TELESCOPE_LOOK_UP_LOOP)) { - objectIndex = this->objectStkObjectIndex; + objectSlot = this->objectStkObjectSlot; } else if (this->animIndex >= SK_ANIM_LOOK_UP_AT_GIANTS) { - objectIndex = this->objectStk3ObjectIndex; + objectSlot = this->objectStk3ObjectSlot; } else { - objectIndex = this->objectStk2ObjectIndex; + objectSlot = this->objectStk2ObjectSlot; } - if (objectIndex >= 0) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectIndex].segment); + if (objectSlot > OBJECT_SLOT_NONE) { + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); } } @@ -1062,10 +1062,10 @@ void DmStk_Init(Actor* thisx, PlayState* play) { this->shouldDraw = true; if (DM_STK_GET_TYPE(&this->actor) != DM_STK_TYPE_MAJORAS_MASK) { this->dekuPipesCutsceneState = SK_DEKU_PIPES_CS_STATE_NOT_READY; - this->objectStkObjectIndex = Object_GetSlot(&play->objectCtx, OBJECT_STK); - this->objectStk2ObjectIndex = Object_GetSlot(&play->objectCtx, OBJECT_STK2); - this->objectStk3ObjectIndex = Object_GetSlot(&play->objectCtx, OBJECT_STK3); - if (this->objectStkObjectIndex < 0) { + this->objectStkObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_STK); + this->objectStk2ObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_STK2); + this->objectStk3ObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_STK3); + if (this->objectStkObjectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); } @@ -1965,18 +1965,18 @@ void DmStk_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot if (Cutscene_IsCueInChannel(play, CS_CMD_ACTOR_CUE_513) && (play->csCtx.actorCues[Cutscene_GetCueChannel(play, CS_CMD_ACTOR_CUE_513)]->id == 2) && - (this->objectStk2ObjectIndex >= 0)) { + (this->objectStk2ObjectSlot > OBJECT_SLOT_NONE)) { Matrix_Push(); Matrix_Scale(2.0f, 2.0f, 2.0f, MTXMODE_APPLY); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectStk2ObjectIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectStk2ObjectSlot].segment); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->objectStk2ObjectIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->objectStk2ObjectSlot].segment); AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gSkullKidMajorasMaskCurseOverlayTexAnim)); Gfx_DrawDListOpa(play, gSkullKidMajorasMaskCurseOverlayDL); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectStkObjectIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectStkObjectSlot].segment); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->objectStkObjectIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->objectStkObjectSlot].segment); Matrix_Pop(); } @@ -1998,17 +1998,17 @@ void DmStk_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot switch (this->handType) { case SK_HAND_TYPE_HOLDING_LINK_MASK_AND_FLUTE: - gSPDisplayList(POLY_OPA_DISP++, gSkullKidUntexturedRightHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidUntexturedRightHandDL); gSPDisplayList(POLY_OPA_DISP++, gSkullKidLinkMask2DL); break; case SK_HAND_TYPE_HOLDING_LINK_MASK: - gSPDisplayList(POLY_OPA_DISP++, gSkullKidMaskHoldingRightHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidMaskHoldingRightHandDL); gSPDisplayList(POLY_OPA_DISP++, gSkullKidLinkMask3DL); break; case SK_HAND_TYPE_HOLDING_OCARINA: - gSPDisplayList(POLY_OPA_DISP++, gSkullKidOcarinaHoldingRightHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidOcarinaHoldingRightHandDL); if ((play->sceneId == SCENE_LOST_WOODS) && (gSaveContext.sceneLayer == 1)) { gSPDisplayList(POLY_OPA_DISP++, gSkullKidOcarinaOfTimeDL); @@ -2042,11 +2042,11 @@ void DmStk_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot break; case SK_HAND_TYPE_HOLDING_LINK_MASK: - gSPDisplayList(POLY_OPA_DISP++, gSkullKidUntexturedLeftHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidUntexturedLeftHandDL); break; case SK_HAND_TYPE_HOLDING_MAJORAS_MASK: - gSPDisplayList(POLY_OPA_DISP++, gSkullKidTwoFingersExtendedLeftHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidTwoFingersExtendedLeftHandDL); gSPDisplayList(POLY_OPA_DISP++, gSkullKidMajorasMask2DL); break; @@ -2054,21 +2054,21 @@ void DmStk_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot if ((play->sceneId != SCENE_LOST_WOODS) || (gSaveContext.sceneLayer != 1)) { gSPDisplayList(POLY_OPA_DISP++, gSkullKidOcarinaOfTimeDL); } - gSPDisplayList(POLY_OPA_DISP++, gSkullKidTwoFingersExtendedLeftHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidTwoFingersExtendedLeftHandDL); break; case SK_HAND_TYPE_JUGGLING_OR_DROPPING_OCARINA: - gSPDisplayList(POLY_OPA_DISP++, gSkullKidTwoFingersExtendedLeftHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidTwoFingersExtendedLeftHandDL); break; case SK_HAND_TYPE_HOLDING_FLUTE: - gSPDisplayList(POLY_OPA_DISP++, gSkullKidFluteHoldingLeftHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidFluteHoldingLeftHandDL); gSPDisplayList(POLY_OPA_DISP++, gSkullKidFluteDL); break; case SK_HAND_TYPE_DEFAULT: if (this->alpha == 255) { - gSPDisplayList(POLY_OPA_DISP++, gSkullKidOpenLeftHand); + gSPDisplayList(POLY_OPA_DISP++, gSkullKidOpenLeftHandDL); } break; @@ -2095,7 +2095,7 @@ void DmStk_Draw(Actor* thisx, PlayState* play) { return; } - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectStkObjectIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectStkObjectSlot].segment); OPEN_DISPS(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.h b/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.h index cc7ac89ea..0b723019a 100644 --- a/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.h +++ b/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.h @@ -43,9 +43,9 @@ typedef struct DmStk { /* 0x330 */ s32 fadeOutTimer; /* 0x334 */ u8 cueId; /* 0x335 */ u8 hasBeenHit; // set but never used - /* 0x336 */ s8 objectStkObjectIndex; - /* 0x337 */ s8 objectStk2ObjectIndex; - /* 0x338 */ s8 objectStk3ObjectIndex; + /* 0x336 */ s8 objectStkObjectSlot; + /* 0x337 */ s8 objectStk2ObjectSlot; + /* 0x338 */ s8 objectStk3ObjectSlot; /* 0x339 */ u8 deflectCount; /* 0x33A */ u8 dekuPipesCutsceneState; /* 0x33B */ u8 shouldDraw; diff --git a/src/overlays/actors/ovl_Dm_Zl/z_dm_zl.c b/src/overlays/actors/ovl_Dm_Zl/z_dm_zl.c index 88c0f4280..4a585c779 100644 --- a/src/overlays/actors/ovl_Dm_Zl/z_dm_zl.c +++ b/src/overlays/actors/ovl_Dm_Zl/z_dm_zl.c @@ -41,7 +41,7 @@ typedef enum { } DmZlAnimation; static AnimationInfo sAnimationInfo[ZELDA_ANIM_MAX] = { - { &gDmZl4FacingAwayHandsOverEmblemLoop, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -10.0f }, // ZELDA_ANIM_FACING_AWAY + { &gDmZl4FacingAwayHandsOverEmblemLoopAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -10.0f }, // ZELDA_ANIM_FACING_AWAY { &gDmZl4TurningAround2Anim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -10.0f }, // ZELDA_ANIM_TURNING_TOWARD_PLAYER { &gDmZl4HandsOverEmblemLoopAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -10.0f }, // ZELDA_ANIM_FACING_PLAYER { &gDmZl4GivingItemStartAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -10.0f }, // ZELDA_ANIM_GIVING_OCARINA_START diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index 4a793bfe0..3b495b3c0 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -81,10 +81,10 @@ ShutterInfo D_808A21B0[] = { { object_hakugin_obj_DL_000128, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, { gGreatBayTempleObjectDoorDL, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, { object_ikana_obj_DL_014A40, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, - { object_redead_obj_DL_0001A0, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, + { gBeneathTheWellSlidingDoorDL, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, { object_ikninside_obj_DL_004440, object_ikninside_obj_DL_005260, 130, 0, 20, 15 }, - { object_random_obj_DL_000190, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, - { object_kinsta1_obj_DL_000198, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, + { gSecretShrineSlidingDoorDL, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, + { gSwampSpiderHouseSlidingDoorDL, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, { object_kaizoku_obj_DL_0001A0, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, { object_last_obj_DL_0039C0, gameplay_keep_DL_078A80, 130, 12, 20, 15 }, }; @@ -234,7 +234,7 @@ void DoorShutter_Init(Actor* thisx, PlayState* play2) { this->slidingDoor.dyna.actor.room = -1; } - if ((this->requiredObjBankIndex = Object_GetSlot(&play->objectCtx, D_808A2180[sp24].objectId)) < 0) { + if ((this->objectSlot = Object_GetSlot(&play->objectCtx, D_808A2180[sp24].objectId)) <= OBJECT_SLOT_NONE) { Actor_Kill(&this->slidingDoor.dyna.actor); return; } @@ -262,9 +262,9 @@ void DoorShutter_Destroy(Actor* thisx, PlayState* play) { } void DoorShutter_SetupType(DoorShutter* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->requiredObjBankIndex) && + if (Object_IsLoaded(&play->objectCtx, this->objectSlot) && (!R_PLAY_FILL_SCREEN_ON || (R_PLAY_FILL_SCREEN_ALPHA == 0))) { - this->slidingDoor.dyna.actor.objBankIndex = this->requiredObjBankIndex; + this->slidingDoor.dyna.actor.objectSlot = this->objectSlot; this->slidingDoor.dyna.actor.draw = DoorShutter_Draw; DoorShutter_SetupDoor(this, play); } diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h index 5b42db50a..d1ccd1955 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h @@ -18,7 +18,7 @@ typedef struct DoorShutter { /* 0x0162 */ u8 doorType; /* 0x0163 */ u8 unk_163; /* 0x0164 */ u8 unk_164; - /* 0x0165 */ s8 requiredObjBankIndex; + /* 0x0165 */ s8 objectSlot; /* 0x0166 */ s8 unk_166; /* 0x0167 */ s8 unk_167; /* 0x0168 */ f32 unk_168; diff --git a/src/overlays/actors/ovl_En_Az/z_en_az.c b/src/overlays/actors/ovl_En_Az/z_en_az.c index 218de2cb5..43a557aae 100644 --- a/src/overlays/actors/ovl_En_Az/z_en_az.c +++ b/src/overlays/actors/ovl_En_Az/z_en_az.c @@ -78,20 +78,20 @@ typedef enum { } BeaverAnimation; static AnimationSpeedInfo sAnimationSpeedInfo[BEAVER_ANIM_IDLE_FACE_MAX] = { - { &gBeaverIdleAnim, 1.0f, ANIMMODE_LOOP, -10.0f }, // BEAVER_ANIM_IDLE - { &gBeaverWalkAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_WALK - { &gBeaverSwimWithSpinningTail, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_SWIM_WITH_SPINNING_TAIL - { &gBeaverSwimWithRaisedTail, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_SWIM_WITH_RAISED_TAIL - { &gBeaverTalkAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_TALK - { &gBeaverTalkWaveArmsAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_TALK_WAVE_ARMS - { &gBeaverLaughRightAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_LAUGH_RIGHT - { &gBeaverLaughLeftAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_LAUGH_LEFT - { &gBeaverSwimAnim, 2.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_SWIM - { &gBeaverTalkToLeftAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_TALK_TO_LEFT - { &gBeaverTalkToRightAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_TALK_TO_RIGHT - { &gBeaverBowAnim, 1.0f, ANIMMODE_ONCE, -5.0f }, // BEAVER_ANIM_BOW - { &gBeaverIdleFaceLeftAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_IDLE_FACE_LEFT - { &gBeaverIdleFaceRightAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_IDLE_FACE_RIGHT + { &gBeaverIdleAnim, 1.0f, ANIMMODE_LOOP, -10.0f }, // BEAVER_ANIM_IDLE + { &gBeaverWalkAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_WALK + { &gBeaverSwimWithSpinningTailAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_SWIM_WITH_SPINNING_TAIL + { &gBeaverSwimWithRaisedTailAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_SWIM_WITH_RAISED_TAIL + { &gBeaverTalkAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_TALK + { &gBeaverTalkWaveArmsAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_TALK_WAVE_ARMS + { &gBeaverLaughRightAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_LAUGH_RIGHT + { &gBeaverLaughLeftAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_LAUGH_LEFT + { &gBeaverSwimAnim, 2.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_SWIM + { &gBeaverTalkToLeftAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_TALK_TO_LEFT + { &gBeaverTalkToRightAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_TALK_TO_RIGHT + { &gBeaverBowAnim, 1.0f, ANIMMODE_ONCE, -5.0f }, // BEAVER_ANIM_BOW + { &gBeaverIdleFaceLeftAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_IDLE_FACE_LEFT + { &gBeaverIdleFaceRightAnim, 1.0f, ANIMMODE_LOOP, -5.0f }, // BEAVER_ANIM_IDLE_FACE_RIGHT }; ActorInit En_Az_InitVars = { diff --git a/src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c b/src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c index 46fd9d5b2..850ffa198 100644 --- a/src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c +++ b/src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c @@ -215,13 +215,13 @@ void EnBba01_Init(Actor* thisx, PlayState* play) { s32 pad; EnBba01* this = THIS; - this->enHy.animObjIndex = SubS_GetObjectIndex(OBJECT_BBA, play); - this->enHy.headObjIndex = SubS_GetObjectIndex(OBJECT_BBA, play); - this->enHy.skelUpperObjIndex = SubS_GetObjectIndex(OBJECT_BBA, play); - this->enHy.skelLowerObjIndex = SubS_GetObjectIndex(OBJECT_BBA, play); + this->enHy.animObjectSlot = SubS_GetObjectSlot(OBJECT_BBA, play); + this->enHy.headObjectSlot = SubS_GetObjectSlot(OBJECT_BBA, play); + this->enHy.skelUpperObjectSlot = SubS_GetObjectSlot(OBJECT_BBA, play); + this->enHy.skelLowerObjectSlot = SubS_GetObjectSlot(OBJECT_BBA, play); - if ((this->enHy.animObjIndex < 0) || (this->enHy.headObjIndex < 0) || (this->enHy.skelUpperObjIndex < 0) || - (this->enHy.skelLowerObjIndex < 0)) { + if ((this->enHy.animObjectSlot <= OBJECT_SLOT_NONE) || (this->enHy.headObjectSlot <= OBJECT_SLOT_NONE) || + (this->enHy.skelUpperObjectSlot <= OBJECT_SLOT_NONE) || (this->enHy.skelLowerObjectSlot <= OBJECT_SLOT_NONE)) { Actor_Kill(&this->enHy.actor); } this->enHy.actor.draw = NULL; @@ -264,9 +264,9 @@ s32 EnBba01_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* if (limbIndex == BBA_LIMB_RIGHT_LOWER_ARM_ROOT) { OPEN_DISPS(play->state.gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->enHy.headObjIndex].segment); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.headObjIndex].segment); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.skelLowerObjIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->enHy.headObjectSlot].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.headObjectSlot].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.skelLowerObjectSlot].segment); CLOSE_DISPS(play->state.gfxCtx); } @@ -303,8 +303,8 @@ void EnBba01_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro if (limbIndex == BBA_LIMB_HEAD) { OPEN_DISPS(play->state.gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->enHy.skelUpperObjIndex].segment); - gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.skelUpperObjIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->enHy.skelUpperObjectSlot].segment); + gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.skelUpperObjectSlot].segment); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c b/src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c index 09d67ac24..c55169218 100644 --- a/src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c +++ b/src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c @@ -205,13 +205,13 @@ void EnCne01_Init(Actor* thisx, PlayState* play) { s32 pad; EnCne01* this = THIS; - this->enHy.animObjIndex = SubS_GetObjectIndex(OBJECT_OS_ANIME, play); - this->enHy.headObjIndex = SubS_GetObjectIndex(OBJECT_CNE, play); - this->enHy.skelUpperObjIndex = SubS_GetObjectIndex(OBJECT_CNE, play); - this->enHy.skelLowerObjIndex = SubS_GetObjectIndex(OBJECT_CNE, play); + this->enHy.animObjectSlot = SubS_GetObjectSlot(OBJECT_OS_ANIME, play); + this->enHy.headObjectSlot = SubS_GetObjectSlot(OBJECT_CNE, play); + this->enHy.skelUpperObjectSlot = SubS_GetObjectSlot(OBJECT_CNE, play); + this->enHy.skelLowerObjectSlot = SubS_GetObjectSlot(OBJECT_CNE, play); - if ((this->enHy.animObjIndex < 0) || (this->enHy.headObjIndex < 0) || (this->enHy.skelUpperObjIndex < 0) || - (this->enHy.skelLowerObjIndex < 0)) { + if ((this->enHy.animObjectSlot <= OBJECT_SLOT_NONE) || (this->enHy.headObjectSlot <= OBJECT_SLOT_NONE) || + (this->enHy.skelUpperObjectSlot <= OBJECT_SLOT_NONE) || (this->enHy.skelLowerObjectSlot <= OBJECT_SLOT_NONE)) { Actor_Kill(&this->enHy.actor); } this->enHy.actor.draw = NULL; @@ -254,10 +254,10 @@ s32 EnCne01_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* if (limbIndex == CNE_LIMB_HEAD) { OPEN_DISPS(play->state.gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->enHy.headObjIndex].segment); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.headObjIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->enHy.headObjectSlot].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.headObjectSlot].segment); *dList = gCneHeadBrownHairDL; - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.skelLowerObjIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.skelLowerObjectSlot].segment); CLOSE_DISPS(play->state.gfxCtx); } @@ -294,8 +294,8 @@ void EnCne01_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro if (limbIndex == CNE_LIMB_RIGHT_FOOT) { OPEN_DISPS(play->state.gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->enHy.skelUpperObjIndex].segment); - gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.skelUpperObjIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->enHy.skelUpperObjectSlot].segment); + gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->enHy.skelUpperObjectSlot].segment); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.c b/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.c index 01b701ce1..1e322650e 100644 --- a/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.c +++ b/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.c @@ -582,16 +582,16 @@ void func_80BE7718(EnDaiku2* this, PlayState* play) { s32 i; GraphicsContext* gfxCtx = play->state.gfxCtx; EnDaiku2Effect* effect = this->effects; - s32 objectIdx; + s32 objectSlot; OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL25_Opa(play->state.gfxCtx); - objectIdx = Object_GetSlot(&play->objectCtx, OBJECT_BOMBIWA); - if ((objectIdx >= 0) && Object_IsLoaded(&play->objectCtx, objectIdx)) { + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_BOMBIWA); + if ((objectSlot > OBJECT_SLOT_NONE) && Object_IsLoaded(&play->objectCtx, objectSlot)) { gDPPipeSync(POLY_OPA_DISP++); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectIdx].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[objectSlot].segment); for (i = 0; i < ARRAY_COUNT(this->effects); i++, effect++) { if (effect->isEnabled) { diff --git a/src/overlays/actors/ovl_En_Demo_heishi/z_en_demo_heishi.c b/src/overlays/actors/ovl_En_Demo_heishi/z_en_demo_heishi.c index 3d4d95b87..86d8524be 100644 --- a/src/overlays/actors/ovl_En_Demo_heishi/z_en_demo_heishi.c +++ b/src/overlays/actors/ovl_En_Demo_heishi/z_en_demo_heishi.c @@ -58,7 +58,7 @@ void EnDemoheishi_Init(Actor* thisx, PlayState* play) { EnDemoheishi* this = THIS; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierWave, this->jointTable, this->morphTable, + SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierWaveAnim, this->jointTable, this->morphTable, SOLDIER_LIMB_MAX); this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actor.targetMode = TARGET_MODE_6; @@ -83,11 +83,11 @@ typedef enum { } EnDemoheishiAnimation; static AnimationHeader* sAnimations[DEMOHEISHI_ANIM_MAX] = { - &gSoldierStandHandOnHip, // DEMOHEISHI_ANIM_STAND_HAND_ON_HIP - &gSoldierCheerWithSpear, // DEMOHEISHI_ANIM_CHEER_WITH_SPEAR - &gSoldierWave, // DEMOHEISHI_ANIM_WAVE - &gSoldierSitAndReach, // DEMOHEISHI_ANIM_SIT_AND_REACH - &gSoldierStandUp, // DEMOHEISHI_ANIM_STAND_UP + &gSoldierStandHandOnHipAnim, // DEMOHEISHI_ANIM_STAND_HAND_ON_HIP + &gSoldierCheerWithSpearAnim, // DEMOHEISHI_ANIM_CHEER_WITH_SPEAR + &gSoldierWaveAnim, // DEMOHEISHI_ANIM_WAVE + &gSoldierSitAndReachAnim, // DEMOHEISHI_ANIM_SIT_AND_REACH + &gSoldierStandUpAnim, // DEMOHEISHI_ANIM_STAND_UP }; static u8 sAnimationModes[DEMOHEISHI_ANIM_MAX] = { diff --git a/src/overlays/actors/ovl_En_Dnh/z_en_dnh.c b/src/overlays/actors/ovl_En_Dnh/z_en_dnh.c index 4039386e0..e30ee26ab 100644 --- a/src/overlays/actors/ovl_En_Dnh/z_en_dnh.c +++ b/src/overlays/actors/ovl_En_Dnh/z_en_dnh.c @@ -60,7 +60,7 @@ typedef enum { } EnDnhAnimation; static AnimationInfoS sAnimationInfo[ENDNH_ANIM_MAX] = { - { &gKoumeKioskHeadMoving, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENDNH_ANIM_HEAD_MOVING + { &gKoumeKioskHeadMovingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENDNH_ANIM_HEAD_MOVING }; static TexturePtr sEyeTextures[] = { diff --git a/src/overlays/actors/ovl_En_Dnk/z_en_dnk.c b/src/overlays/actors/ovl_En_Dnk/z_en_dnk.c index 61170a5d0..0dab8ff45 100644 --- a/src/overlays/actors/ovl_En_Dnk/z_en_dnk.c +++ b/src/overlays/actors/ovl_En_Dnk/z_en_dnk.c @@ -209,10 +209,10 @@ s32 func_80A515C4(EnDnk* this) { } void func_80A51648(EnDnk* this, PlayState* play) { - if (SubS_IsObjectLoaded(this->unk_28E, play) == true) { - gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->unk_28E].segment); + if (SubS_IsObjectLoaded(this->objectSlot, play) == true) { + gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectSlot].segment); this->actor.draw = func_80A52018; - this->actor.objBankIndex = this->unk_28E; + this->actor.objectSlot = this->objectSlot; ActorShape_Init(&this->actor.shape, 0.0f, NULL, 18.0f); switch (ENDNK_GET_3(&this->actor)) { @@ -263,22 +263,23 @@ void EnDnk_DoNothing(EnDnk* this, PlayState* play) { void EnDnk_Init(Actor* thisx, PlayState* play) { EnDnk* this = THIS; - this->unk_28E = -1; + this->objectSlot = OBJECT_SLOT_NONE; + switch (ENDNK_GET_3(&this->actor)) { case ENDNK_GET_3_1: - this->unk_28E = SubS_GetObjectIndex(OBJECT_HINTNUTS, play); + this->objectSlot = SubS_GetObjectSlot(OBJECT_HINTNUTS, play); break; case ENDNK_GET_3_0: - this->unk_28E = SubS_GetObjectIndex(OBJECT_DNK, play); + this->objectSlot = SubS_GetObjectSlot(OBJECT_DNK, play); break; case ENDNK_GET_3_2: - this->unk_28E = SubS_GetObjectIndex(OBJECT_DEKUNUTS, play); + this->objectSlot = SubS_GetObjectSlot(OBJECT_DEKUNUTS, play); break; } - if (this->unk_28E >= 0) { + if (this->objectSlot > OBJECT_SLOT_NONE) { this->actionFunc = func_80A51648; } else { Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_En_Dnk/z_en_dnk.h b/src/overlays/actors/ovl_En_Dnk/z_en_dnk.h index ba870d67b..8b0900ae7 100644 --- a/src/overlays/actors/ovl_En_Dnk/z_en_dnk.h +++ b/src/overlays/actors/ovl_En_Dnk/z_en_dnk.h @@ -33,7 +33,7 @@ typedef struct EnDnk { /* 0x21E */ Vec3s morphTable[DNK_LIMB_MAX]; /* 0x260 */ Gfx* unk_260[DEKU_PALACE_GUARD_LIMB_MAX]; /* 0x28C */ u16 unk_28C; - /* 0x28E */ s8 unk_28E; + /* 0x28E */ s8 objectSlot; /* 0x290 */ s16 unk_290; /* 0x292 */ s16 unk_292; /* 0x294 */ s16 unk_294; diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 723ee895f..02777ec44 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -386,7 +386,7 @@ void func_8092D108(EnDns* this, PlayState* play) { Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, gKingsChamberDekuGuardDekuFlower); + gSPDisplayList(POLY_OPA_DISP++, gKingsChamberDekuGuardDekuFlowerDL); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index 1b5998efc..61ee82e98 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -294,7 +294,7 @@ typedef struct { /* 0x4 */ s16 objectId; } EnDoorInfo; // size = 0x6 -static EnDoorInfo sObjInfo[] = { +static EnDoorInfo sObjectInfo[] = { { SCENE_MITURIN, 0x01, OBJECT_NUMA_OBJ }, { SCENE_TENMON_DAI, 0x02, OBJECT_DOR01 }, { SCENE_00KEIKOKU, 0x02, OBJECT_DOR01 }, @@ -416,8 +416,8 @@ static Gfx* D_808679A4[14][2] = { void EnDoor_Init(Actor* thisx, PlayState* play2) { PlayState* play = play2; - s32 objectBankIndex; - EnDoorInfo* objectInfo = &sObjInfo[0]; + s32 objectSlot; + EnDoorInfo* objectInfo = &sObjectInfo[0]; EnDoor* this = THIS; s32 i; @@ -433,31 +433,32 @@ void EnDoor_Init(Actor* thisx, PlayState* play2) { SkelAnime_Init(play, &this->knobDoor.skelAnime, &gDoorSkel, &gameplay_keep_Anim_020658, this->limbTable, this->limbTable, DOOR_LIMB_MAX); if (this->doorType == ENDOOR_TYPE_5) { - objectInfo = &sObjInfo[17 + this->switchFlag]; + objectInfo = &sObjectInfo[17 + this->switchFlag]; } else { - for (i = 0; i < ARRAY_COUNT(sObjInfo) - 34; i++, objectInfo++) { + for (i = 0; i < ARRAY_COUNT(sObjectInfo) - 34; i++, objectInfo++) { if (play->sceneId == objectInfo->sceneId) { break; } } - if ((i >= ARRAY_COUNT(sObjInfo) - 34) && (Object_GetSlot(&play->objectCtx, GAMEPLAY_FIELD_KEEP) >= 0)) { + if ((i >= ARRAY_COUNT(sObjectInfo) - 34) && + (Object_GetSlot(&play->objectCtx, GAMEPLAY_FIELD_KEEP) > OBJECT_SLOT_NONE)) { objectInfo++; } } this->knobDoor.dlIndex = objectInfo->dListIndex; - objectBankIndex = Object_GetSlot(&play->objectCtx, objectInfo->objectId); - if (objectBankIndex < 0) { - objectInfo = &sObjInfo[15]; - objectBankIndex = Object_GetSlot(&play->objectCtx, objectInfo->objectId); - if (objectBankIndex != 0) { + objectSlot = Object_GetSlot(&play->objectCtx, objectInfo->objectId); + if (objectSlot <= OBJECT_SLOT_NONE) { + objectInfo = &sObjectInfo[15]; + objectSlot = Object_GetSlot(&play->objectCtx, objectInfo->objectId); + if (objectSlot != 0) { Actor_Kill(&this->knobDoor.dyna.actor); return; } } - this->knobDoor.requiredObjBankIndex = objectBankIndex; + this->knobDoor.objectSlot = objectSlot; this->knobDoor.dlIndex = objectInfo->dListIndex; // Set twice? - if (this->knobDoor.dyna.actor.objBankIndex == this->knobDoor.requiredObjBankIndex) { + if (this->knobDoor.dyna.actor.objectSlot == this->knobDoor.objectSlot) { func_80866A5C(this, play); } else { this->actionFunc = func_80866A5C; @@ -480,8 +481,8 @@ void EnDoor_Destroy(Actor* thisx, PlayState* play) { } void func_80866A5C(EnDoor* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->knobDoor.requiredObjBankIndex)) { - this->knobDoor.dyna.actor.objBankIndex = this->knobDoor.requiredObjBankIndex; + if (Object_IsLoaded(&play->objectCtx, this->knobDoor.objectSlot)) { + this->knobDoor.dyna.actor.objectSlot = this->knobDoor.objectSlot; this->actionFunc = func_80866B20; this->knobDoor.dyna.actor.world.rot.y = 0; if (this->doorType == ENDOOR_TYPE_1) { @@ -688,7 +689,7 @@ s32 EnDoor_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* void EnDoor_Draw(Actor* thisx, PlayState* play) { EnDoor* this = THIS; - if (this->knobDoor.dyna.actor.objBankIndex == this->knobDoor.requiredObjBankIndex) { + if (this->knobDoor.dyna.actor.objectSlot == this->knobDoor.objectSlot) { OPEN_DISPS(play->state.gfxCtx); if ((this->doorType == ENDOOR_TYPE_7) && (this->switchFlag == 0)) { diff --git a/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.c b/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.c index b771d09fe..c6c1b312e 100644 --- a/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.c +++ b/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.c @@ -58,7 +58,7 @@ typedef struct { /* 0x4 */ s16 objectId; } EnDoorEtcInfo; // size = 0x6 -EnDoorEtcInfo sObjInfo[] = { +EnDoorEtcInfo sObjectInfo[] = { { SCENE_MITURIN, 1, OBJECT_NUMA_OBJ }, { -1, 0, GAMEPLAY_KEEP }, { -1, 13, GAMEPLAY_FIELD_KEEP }, @@ -87,8 +87,8 @@ static InitChainEntry sInitChain[] = { void EnDoorEtc_Init(Actor* thisx, PlayState* play2) { PlayState* play = play2; - s32 objectIndex; - EnDoorEtcInfo* objectInfo = sObjInfo; + s32 objectSlot; + EnDoorEtcInfo* objectInfo = sObjectInfo; s32 i; EnDoorEtc* this = THIS; @@ -101,16 +101,16 @@ void EnDoorEtc_Init(Actor* thisx, PlayState* play2) { break; } } - if ((i >= 15) && (Object_GetSlot(&play->objectCtx, GAMEPLAY_FIELD_KEEP) >= 0)) { + if ((i >= 15) && (Object_GetSlot(&play->objectCtx, GAMEPLAY_FIELD_KEEP) > OBJECT_SLOT_NONE)) { objectInfo++; } - objectIndex = Object_GetSlot(&play->objectCtx, objectInfo->objectId); - if (objectIndex < 0) { + objectSlot = Object_GetSlot(&play->objectCtx, objectInfo->objectId); + if (objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->knobDoor.dyna.actor); } else { - this->knobDoor.requiredObjBankIndex = objectIndex; + this->knobDoor.objectSlot = objectSlot; this->knobDoor.dlIndex = objectInfo->dListIndex; - if (this->knobDoor.dyna.actor.objBankIndex == this->knobDoor.requiredObjBankIndex) { + if (this->knobDoor.dyna.actor.objectSlot == this->knobDoor.objectSlot) { EnDoorEtc_WaitForObject(this, play); } else { this->actionFunc = EnDoorEtc_WaitForObject; @@ -139,9 +139,9 @@ s32 EnDoorEtc_IsDistanceGreater(Vec3f* a, Vec3f* b, f32 c) { } void EnDoorEtc_WaitForObject(EnDoorEtc* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->knobDoor.requiredObjBankIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->knobDoor.objectSlot)) { this->knobDoor.dyna.actor.flags &= ~ACTOR_FLAG_10; - this->knobDoor.dyna.actor.objBankIndex = this->knobDoor.requiredObjBankIndex; + this->knobDoor.dyna.actor.objectSlot = this->knobDoor.objectSlot; this->actionFunc = func_80AC2354; this->knobDoor.dyna.actor.draw = EnDoorEtc_Draw; } diff --git a/src/overlays/actors/ovl_En_Drs/z_en_drs.c b/src/overlays/actors/ovl_En_Drs/z_en_drs.c index a521abaa0..e067b57b4 100644 --- a/src/overlays/actors/ovl_En_Drs/z_en_drs.c +++ b/src/overlays/actors/ovl_En_Drs/z_en_drs.c @@ -68,7 +68,7 @@ void EnDrs_CollisionUpdate(EnDrs* this, PlayState* play) { void EnDrs_Setup(EnDrs* this, PlayState* play) { s32 pad[2]; - if ((this->moonMaskObjBankIndex >= 0) && SubS_IsObjectLoaded(this->moonMaskObjBankIndex, play)) { + if ((this->moonMaskObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->moonMaskObjectSlot, play)) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f); SkelAnime_InitFlex(play, &this->skelAnime, &gWeddingDressMannequinSkel, NULL, this->jointTable, this->morphTable, WEDDING_DRESS_MANNEQUIN_LIMB_MAX); @@ -87,7 +87,7 @@ void EnDrs_Idle(EnDrs* this, PlayState* play) { void EnDrs_Init(Actor* thisx, PlayState* play) { EnDrs* this = THIS; - this->moonMaskObjBankIndex = SubS_GetObjectIndex(OBJECT_MSMO, play); + this->moonMaskObjectSlot = SubS_GetObjectSlot(OBJECT_MSMO, play); this->actionFunc = EnDrs_Setup; } @@ -110,8 +110,8 @@ void EnDrs_Update(Actor* thisx, PlayState* play) { void EnDrs_PostLimbDraw(PlayState* play2, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { EnDrs* this = THIS; PlayState* play = play2; - s8 temp = this->moonMaskObjBankIndex; - s8 temp2 = this->actor.objBankIndex; + s8 temp = this->moonMaskObjectSlot; + s8 temp2 = this->actor.objectSlot; // Anju removes the Moon Mask at the start of the Couple's Mask cutscene // after that it will no longer be rendered. diff --git a/src/overlays/actors/ovl_En_Drs/z_en_drs.h b/src/overlays/actors/ovl_En_Drs/z_en_drs.h index d811ae780..3c9803bf5 100644 --- a/src/overlays/actors/ovl_En_Drs/z_en_drs.h +++ b/src/overlays/actors/ovl_En_Drs/z_en_drs.h @@ -16,7 +16,7 @@ typedef struct EnDrs { /* 0x18C */ ColliderCylinder collider; /* 0x1D8 */ Vec3s jointTable[WEDDING_DRESS_MANNEQUIN_LIMB_MAX]; /* 0x1F0 */ Vec3s morphTable[WEDDING_DRESS_MANNEQUIN_LIMB_MAX]; - /* 0x208 */ s8 moonMaskObjBankIndex; + /* 0x208 */ s8 moonMaskObjectSlot; } EnDrs; // size = 0x20C */ #endif // Z_EN_DRS_H diff --git a/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c b/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c index 3d75e19d7..b75e0f21c 100644 --- a/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c +++ b/src/overlays/actors/ovl_En_Ending_Hero4/z_en_ending_hero4.c @@ -37,7 +37,7 @@ void EnEndingHero4_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); this->actor.targetMode = TARGET_MODE_6; this->actor.gravity = -3.0f; - SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierCheerWithSpear, this->jointTable, + SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierCheerWithSpearAnim, this->jointTable, this->morphTable, SOLDIER_LIMB_MAX); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f); EnEndingHero4_SetupIdle(this); diff --git a/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.c b/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.c index 64b7ea1c2..47312b722 100644 --- a/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.c +++ b/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.c @@ -56,15 +56,15 @@ static FlexSkeletonHeader* sSkeletons[ENDING_HERO6_TYPE_MAX] = { }; static AnimationHeader* sAnimations[ENDING_HERO6_TYPE_MAX] = { - &object_dt_Anim_000BE0, // ENDING_HERO6_TYPE_DT - &object_bai_Anim_0011C0, // ENDING_HERO6_TYPE_BAI - &object_toryo_Anim_000E50, // ENDING_HERO6_TYPE_TORYO - &gSoldierCheerWithSpear, // ENDING_HERO6_TYPE_SOLDIER - &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_RED - &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_BLUE - &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_GREEN - &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_PURPLE - &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_ORANGE + &object_dt_Anim_000BE0, // ENDING_HERO6_TYPE_DT + &object_bai_Anim_0011C0, // ENDING_HERO6_TYPE_BAI + &object_toryo_Anim_000E50, // ENDING_HERO6_TYPE_TORYO + &gSoldierCheerWithSpearAnim, // ENDING_HERO6_TYPE_SOLDIER + &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_RED + &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_BLUE + &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_GREEN + &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_PURPLE + &object_daiku_Anim_002FA0, // ENDING_HERO6_TYPE_DAIKU_ORANGE }; static s32 sLimbCounts[ENDING_HERO6_TYPE_MAX] = { @@ -171,8 +171,8 @@ void EnEndingHero6_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL25_Opa(play->state.gfxCtx); Gfx_SetupDL25_Xlu(play->state.gfxCtx); - if ((this->objectIndex >= 0) && Object_IsLoaded(&play->objectCtx, this->objectIndex)) { - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->objectIndex].segment); + if ((this->objectSlot > OBJECT_SLOT_NONE) && Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->objectSlot].segment); switch (this->type) { case ENDING_HERO6_TYPE_DAIKU_RED: diff --git a/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.h b/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.h index 808267b7b..3ec5698e0 100644 --- a/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.h +++ b/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.h @@ -27,7 +27,7 @@ typedef struct EnEndingHero6 { /* 0x278 */ EnEndingHero6ActionFunc actionFunc; /* 0x27C */ s32 animIndex; /* 0x280 */ s32 type; - /* 0x284 */ s8 objectIndex; + /* 0x284 */ s8 objectSlot; /* 0x286 */ s16 timer; /* 0x288 */ s16 blinkTimer; /* 0x28A */ s16 eyeState; diff --git a/src/overlays/actors/ovl_En_Fall/z_en_fall.c b/src/overlays/actors/ovl_En_Fall/z_en_fall.c index e902baa2d..33a6bf992 100644 --- a/src/overlays/actors/ovl_En_Fall/z_en_fall.c +++ b/src/overlays/actors/ovl_En_Fall/z_en_fall.c @@ -132,7 +132,7 @@ void EnFall_RisingDebris_ResetEffects(EnFall* this) { void EnFall_Init(Actor* thisx, PlayState* play) { EnFall* this = THIS; - s32 objectIndex; + s32 objectSlot; this->eyeGlowIntensity = 0.0f; this->flags = 0; @@ -165,27 +165,27 @@ void EnFall_Init(Actor* thisx, PlayState* play) { case EN_FALL_TYPE_LODMOON_NO_LERP: case EN_FALL_TYPE_LODMOON: case EN_FALL_TYPE_LODMOON_INVERTED_STONE_TOWER: - objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_LODMOON); + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_LODMOON); break; case EN_FALL_TYPE_MOONS_TEAR: - objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_MOONSTON); + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_MOONSTON); break; case EN_FALL_TYPE_STOPPED_MOON_OPEN_MOUTH: - objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_FALL2); + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_FALL2); break; default: - objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_FALL); + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_FALL); break; } - if (objectIndex < 0) { + if (objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } - this->objIndex = objectIndex; + this->objectSlot = objectSlot; this->actionFunc = EnFall_Setup; } @@ -210,8 +210,8 @@ Actor* EnFall_MoonsTear_GetTerminaFieldMoon(PlayState* play) { void EnFall_Setup(EnFall* this, PlayState* play) { Actor* moon; - if (Object_IsLoaded(&play->objectCtx, this->objIndex)) { - this->actor.objBankIndex = this->objIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; this->actionFunc = EnFall_Moon_PerformDefaultActions; switch (EN_FALL_TYPE(&this->actor)) { case EN_FALL_TYPE_TITLE_SCREEN_MOON: diff --git a/src/overlays/actors/ovl_En_Fall/z_en_fall.h b/src/overlays/actors/ovl_En_Fall/z_en_fall.h index 60bb7ec33..dde56ce91 100644 --- a/src/overlays/actors/ovl_En_Fall/z_en_fall.h +++ b/src/overlays/actors/ovl_En_Fall/z_en_fall.h @@ -30,7 +30,7 @@ typedef struct EnFall { /* 0x000 */ Actor actor; /* 0x144 */ s16 dayStartTime; /* 0x146 */ s16 currentDay; - /* 0x148 */ u8 objIndex; + /* 0x148 */ u8 objectSlot; /* 0x14C */ f32 scale; /* 0x150 */ union { f32 eyeGlowIntensity; diff --git a/src/overlays/actors/ovl_En_Geg/z_en_geg.c b/src/overlays/actors/ovl_En_Geg/z_en_geg.c index 938874266..10c8b5037 100644 --- a/src/overlays/actors/ovl_En_Geg/z_en_geg.c +++ b/src/overlays/actors/ovl_En_Geg/z_en_geg.c @@ -416,12 +416,12 @@ s32 func_80BB1D64(EnGeg* this, PlayState* play) { } void EnGeg_UpdateSkelAnime(EnGeg* this, PlayState* play) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->unk_248].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectSlot].segment); SkelAnime_Update(&this->skelAnime); } void EnGeg_ChangeAnim(EnGeg* this, PlayState* play) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->unk_248].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectSlot].segment); SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, this->animIndex); } @@ -454,7 +454,7 @@ s32 func_80BB2088(EnGeg* this, PlayState* play) { } void func_80BB217C(EnGeg* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->unk_248)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { this->animIndex = ENGEG_ANIM_5; EnGeg_ChangeAnim(this, play); Actor_SetScale(&this->actor, 0.01f); @@ -550,8 +550,8 @@ void func_80BB2520(EnGeg* this, PlayState* play) { break; case 0xD66: - this->unk_248 = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); - if (this->unk_248 >= 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); + if (this->objectSlot > OBJECT_SLOT_NONE) { this->animIndex = ENGEG_ANIM_19; EnGeg_ChangeAnim(this, play); } @@ -568,8 +568,8 @@ void func_80BB2520(EnGeg* this, PlayState* play) { case 0xD72: case 0xD75: case 0xD8B: - this->unk_248 = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); - if (this->unk_248 >= 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); + if (this->objectSlot > OBJECT_SLOT_NONE) { this->animIndex = ENGEG_ANIM_4; EnGeg_ChangeAnim(this, play); } @@ -713,8 +713,8 @@ void func_80BB2B1C(EnGeg* this, PlayState* play) { CutsceneManager_StartWithPlayerCsAndSetFlag(this->csId, &this->actor); this->unk_496 = 0xD68; Message_ContinueTextbox(play, this->unk_496); - this->unk_248 = Object_GetSlot(&play->objectCtx, OBJECT_TAISOU); - if (this->unk_248 >= 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_TAISOU); + if (this->objectSlot > OBJECT_SLOT_NONE) { this->animIndex = ENGEG_ANIM_13; EnGeg_ChangeAnim(this, play); } @@ -926,8 +926,8 @@ void EnGeg_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); if (this->actor.update != NULL) { - this->unk_248 = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); - if (this->unk_248 < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); } } diff --git a/src/overlays/actors/ovl_En_Geg/z_en_geg.h b/src/overlays/actors/ovl_En_Geg/z_en_geg.h index 980ada9fd..5d2990a09 100644 --- a/src/overlays/actors/ovl_En_Geg/z_en_geg.h +++ b/src/overlays/actors/ovl_En_Geg/z_en_geg.h @@ -23,7 +23,7 @@ typedef struct EnGeg { /* 0x240 */ s16 unk_240; /* 0x242 */ s16 unk_242; /* 0x244 */ s16 unk_244; - /* 0x248 */ s32 unk_248; + /* 0x248 */ s32 objectSlot; /* 0x24C */ Vec3s jointTable[GORON_LIMB_MAX]; /* 0x2B8 */ Vec3s morphTable[GORON_LIMB_MAX]; /* 0x324 */ UNK_TYPE1 unk324[0x144]; diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c index 299ab5c4b..5481d8a70 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c @@ -165,8 +165,8 @@ void EnGirlA_InitObjIndex(EnGirlA* this, PlayState* play) { return; } - this->objIndex = Object_GetSlot(&play->objectCtx, sShopItemEntries[params].objectId); - if (this->objIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, sShopItemEntries[params].objectId); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -564,9 +564,9 @@ void EnGirlA_InitalUpdate(EnGirlA* this, PlayState* play) { s16 params = this->actor.params; ShopItemEntry* shopItem = &sShopItemEntries[params]; - if (Object_IsLoaded(&play->objectCtx, this->objIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { this->actor.flags &= ~ACTOR_FLAG_10; - this->actor.objBankIndex = this->objIndex; + this->actor.objectSlot = this->objectSlot; this->actor.textId = shopItem->descriptionTextId; this->choiceTextId = shopItem->choiceTextId; diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.h b/src/overlays/actors/ovl_En_GirlA/z_en_girla.h index e155ef6df..f289e31d5 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.h +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.h @@ -27,7 +27,7 @@ typedef struct EnGirlA { /* 0x000 */ Actor actor; /* 0x144 */ UNK_TYPE1 unk144[0x44]; /* 0x188 */ EnGirlAActionFunc actionFunc; - /* 0x18C */ s8 objIndex; + /* 0x18C */ s8 objectSlot; /* 0x190 */ EnGirlAActionFunc mainActionFunc; /* 0x194 */ s32 isInitialized; /* 0x198 */ u16 choiceTextId; diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 39b705649..ca38f91ef 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -306,11 +306,11 @@ EnDoor* func_8094DF90(PlayState* play, s32 arg1) { s32 EnGm_UpdateSkelAnime(EnGm* this, PlayState* play) { s32 isAnimFinished = false; - if (this->unk_262 < 0) { + if (this->objectSlot <= OBJECT_SLOT_NONE) { return false; } - if (this->unk_262 >= 0) { + if (this->objectSlot > OBJECT_SLOT_NONE) { this->skelAnime.playSpeed = this->animPlaySpeed; isAnimFinished = SkelAnime_Update(&this->skelAnime); } @@ -319,7 +319,7 @@ s32 EnGm_UpdateSkelAnime(EnGm* this, PlayState* play) { } s32 EnGm_ChangeAnim(EnGm* this, PlayState* play, s32 animIndex) { - s8 tmp = this->unk_262; + s8 tmp = this->objectSlot; s32 changeAnim = false; s32 didAnimChange = false; @@ -347,7 +347,7 @@ s32 func_8094E0F8(EnGm* this, PlayState* play) { if ((this->unk_260 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0)) { this->unk_260 = play->roomCtx.curRoom.num; - this->unk_262 = SubS_GetObjectIndex(OBJECT_IN2, play); + this->objectSlot = SubS_GetObjectSlot(OBJECT_IN2, play); this->actor.draw = NULL; this->unk_3FC = 1; } @@ -356,7 +356,7 @@ s32 func_8094E0F8(EnGm* this, PlayState* play) { return false; } - if ((this->unk_262 < 0) || !SubS_IsObjectLoaded(this->unk_262, play)) { + if ((this->objectSlot <= OBJECT_SLOT_NONE) || !SubS_IsObjectLoaded(this->objectSlot, play)) { ret = true; } else { this->actor.draw = EnGm_Draw; @@ -1863,7 +1863,7 @@ void EnGm_Draw(Actor* thisx, PlayState* play) { }; EnGm* this = THIS; - if ((this->unk_258 != 0) && (this->unk_262 >= 0)) { + if ((this->unk_258 != 0) && (this->objectSlot > OBJECT_SLOT_NONE)) { OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL25_Opa(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.h b/src/overlays/actors/ovl_En_Gm/z_en_gm.h index 968d6dd07..e5785d837 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.h +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.h @@ -33,7 +33,7 @@ typedef struct EnGm { /* 0x25C */ s32 unk_25C; /* 0x260 */ s8 unk_260; /* 0x261 */ s8 unk_261; - /* 0x262 */ s8 unk_262; + /* 0x262 */ s8 objectSlot; /* 0x264 */ s32* unk_264; /* 0x268 */ Actor* unk_268; /* 0x26C */ UNK_TYPE1 unk_26C[0xC]; diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 2f6217411..691703307 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -978,23 +978,23 @@ s32 EnGo_UpdateSpringArrivalCutscene(EnGo* this, PlayState* play) { * @return True if non-repeating animation has finished */ s32 EnGo_UpdateSkelAnime(EnGo* this, PlayState* play) { - s8 objIndex = this->actor.objBankIndex; + s8 objectSlot = this->actor.objectSlot; s8 extraObjIndex = -1; s32 isAnimFinished = false; - if ((this->animIndex >= ENGO_ANIM_SPRING_MIN) && (this->hakuginDemoObjIndex >= 0)) { - extraObjIndex = this->hakuginDemoObjIndex; - } else if ((this->animIndex >= ENGO_ANIM_ATHLETICS_MIN) && (this->taisouObjIndex >= 0)) { - extraObjIndex = this->taisouObjIndex; + if ((this->animIndex >= ENGO_ANIM_SPRING_MIN) && (this->hakuginDemoObjectSlot > OBJECT_SLOT_NONE)) { + extraObjIndex = this->hakuginDemoObjectSlot; + } else if ((this->animIndex >= ENGO_ANIM_ATHLETICS_MIN) && (this->taisouObjectSlot > OBJECT_SLOT_NONE)) { + extraObjIndex = this->taisouObjectSlot; } else if (this->animIndex < ENGO_ANIM_ATHLETICS_MIN) { - extraObjIndex = this->actor.objBankIndex; + extraObjIndex = this->actor.objectSlot; } if (extraObjIndex >= 0) { gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[extraObjIndex].segment); this->skelAnime.playSpeed = this->animPlaySpeed; isAnimFinished = SkelAnime_Update(&this->skelAnime); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); } return isAnimFinished; @@ -1038,16 +1038,16 @@ s32 EnGo_UpdateSfx(EnGo* this, PlayState* play) { * @return True if animation was changed */ s32 EnGo_ChangeAnim(EnGo* this, PlayState* play, EnGoAnimation animIndex) { - s8 objIndex = this->actor.objBankIndex; + s8 objectSlot = this->actor.objectSlot; s8 extraObjIndex = -1; s32 didAnimChange = false; - if ((animIndex >= ENGO_ANIM_SPRING_MIN) && (this->hakuginDemoObjIndex >= 0)) { - extraObjIndex = this->hakuginDemoObjIndex; - } else if ((animIndex >= ENGO_ANIM_ATHLETICS_MIN) && (this->taisouObjIndex >= 0)) { - extraObjIndex = this->taisouObjIndex; + if ((animIndex >= ENGO_ANIM_SPRING_MIN) && (this->hakuginDemoObjectSlot > OBJECT_SLOT_NONE)) { + extraObjIndex = this->hakuginDemoObjectSlot; + } else if ((animIndex >= ENGO_ANIM_ATHLETICS_MIN) && (this->taisouObjectSlot > OBJECT_SLOT_NONE)) { + extraObjIndex = this->taisouObjectSlot; } else if (animIndex < ENGO_ANIM_ATHLETICS_MIN) { - extraObjIndex = this->actor.objBankIndex; + extraObjIndex = this->actor.objectSlot; } if (extraObjIndex >= 0) { @@ -1055,7 +1055,7 @@ s32 EnGo_ChangeAnim(EnGo* this, PlayState* play, EnGoAnimation animIndex) { this->animIndex = animIndex; didAnimChange = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, animIndex); this->animPlaySpeed = this->skelAnime.playSpeed; - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); } return didAnimChange; @@ -1893,8 +1893,8 @@ void EnGo_SetupMedigoron(EnGo* this, PlayState* play) { void EnGo_SetupInitialAction(EnGo* this, PlayState* play) { EffectTireMarkInit tireMarkInit = { 0, 62, { 0, 0, 15, 100 } }; - if (((this->taisouObjIndex < 0) || SubS_IsObjectLoaded(this->taisouObjIndex, play)) || - ((this->hakuginDemoObjIndex < 0) || SubS_IsObjectLoaded(this->hakuginDemoObjIndex, play))) { + if (((this->taisouObjectSlot <= OBJECT_SLOT_NONE) || SubS_IsObjectLoaded(this->taisouObjectSlot, play)) || + ((this->hakuginDemoObjectSlot <= OBJECT_SLOT_NONE) || SubS_IsObjectLoaded(this->hakuginDemoObjectSlot, play))) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f); SkelAnime_InitFlex(play, &this->skelAnime, &gGoronSkel, NULL, this->jointTable, this->morphTable, GORON_LIMB_MAX); @@ -2412,8 +2412,8 @@ void EnGo_Talk(EnGo* this, PlayState* play) { void EnGo_Init(Actor* thisx, PlayState* play) { EnGo* this = THIS; - this->taisouObjIndex = SubS_GetObjectIndex(OBJECT_TAISOU, play); - this->hakuginDemoObjIndex = SubS_GetObjectIndex(OBJECT_HAKUGIN_DEMO, play); + this->taisouObjectSlot = SubS_GetObjectSlot(OBJECT_TAISOU, play); + this->hakuginDemoObjectSlot = SubS_GetObjectSlot(OBJECT_HAKUGIN_DEMO, play); this->actionFunc = EnGo_SetupInitialAction; } diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.h b/src/overlays/actors/ovl_En_Go/z_en_go.h index 97959a03e..d6173d6b2 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.h +++ b/src/overlays/actors/ovl_En_Go/z_en_go.h @@ -93,8 +93,8 @@ typedef struct EnGo { /* 0x1E0 */ ColliderCylinder unusedCylinder; /* 0x22C */ ColliderSphere colliderSphere; /* 0x284 */ Path* gatekeeperPath; - /* 0x288 */ s8 taisouObjIndex; - /* 0x289 */ s8 hakuginDemoObjIndex; + /* 0x288 */ s8 taisouObjectSlot; + /* 0x289 */ s8 hakuginDemoObjectSlot; /* 0x28C */ s32 msgScriptResumePos; /* 0x290 */ Vec3f headPos; /* 0x29C */ Vec3f bodyPos; diff --git a/src/overlays/actors/ovl_En_Guard_Nuts/z_en_guard_nuts.c b/src/overlays/actors/ovl_En_Guard_Nuts/z_en_guard_nuts.c index e00f3b523..92e3bf306 100644 --- a/src/overlays/actors/ovl_En_Guard_Nuts/z_en_guard_nuts.c +++ b/src/overlays/actors/ovl_En_Guard_Nuts/z_en_guard_nuts.c @@ -389,7 +389,7 @@ void EnGuardNuts_Draw(Actor* thisx, PlayState* play) { gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, gDekuPalaceGuardFlower); + gSPDisplayList(POLY_OPA_DISP++, gDekuPalaceGuardFlowerDL); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_En_Heishi/z_en_heishi.c b/src/overlays/actors/ovl_En_Heishi/z_en_heishi.c index 19c2a34a8..650d4c69d 100644 --- a/src/overlays/actors/ovl_En_Heishi/z_en_heishi.c +++ b/src/overlays/actors/ovl_En_Heishi/z_en_heishi.c @@ -56,7 +56,7 @@ void EnHeishi_Init(Actor* thisx, PlayState* play) { EnHeishi* this = THIS; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierWave, this->jointTable, this->morphTable, + SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierWaveAnim, this->jointTable, this->morphTable, SOLDIER_LIMB_MAX); this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->paramsCopy = this->actor.params; @@ -99,11 +99,11 @@ typedef enum EnHeishiAnimation { } EnHeishiAnimation; static AnimationHeader* sAnimations[HEISHI_ANIM_MAX] = { - &gSoldierStandHandOnHip, // HEISHI_ANIM_STAND_HAND_ON_HIP - &gSoldierCheerWithSpear, // HEISHI_ANIM_CHEER_WITH_SPEAR - &gSoldierWave, // HEISHI_ANIM_WAVE - &gSoldierSitAndReach, // HEISHI_ANIM_SIT_AND_REACH - &gSoldierStandUp, // HEISHI_ANIM_STAND_UP + &gSoldierStandHandOnHipAnim, // HEISHI_ANIM_STAND_HAND_ON_HIP + &gSoldierCheerWithSpearAnim, // HEISHI_ANIM_CHEER_WITH_SPEAR + &gSoldierWaveAnim, // HEISHI_ANIM_WAVE + &gSoldierSitAndReachAnim, // HEISHI_ANIM_SIT_AND_REACH + &gSoldierStandUpAnim, // HEISHI_ANIM_STAND_UP }; static u8 sAnimationModes[HEISHI_ANIM_MAX] = { diff --git a/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.c b/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.c index b0ea746d9..86cb7235d 100644 --- a/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.c +++ b/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.c @@ -125,37 +125,37 @@ static DamageTable sDamageTable = { /* Powder Keg */ DMG_ENTRY(1, 0xF), }; -typedef enum EnHinkSkbAnimation { - /* 0 */ ENHINTSKB_ANIM_0, - /* 1 */ ENHINTSKB_ANIM_1, - /* 2 */ ENHINTSKB_ANIM_2, - /* 3 */ ENHINTSKB_ANIM_3, - /* 4 */ ENHINTSKB_ANIM_4, - /* 5 */ ENHINTSKB_ANIM_5, - /* 6 */ ENHINTSKB_ANIM_6, - /* 7 */ ENHINTSKB_ANIM_7, - /* 8 */ ENHINTSKB_ANIM_8, - /* 9 */ ENHINTSKB_ANIM_9, - /* 10 */ ENHINTSKB_ANIM_10, - /* 11 */ ENHINTSKB_ANIM_11, - /* 12 */ ENHINTSKB_ANIM_12, - /* 13 */ ENHINTSKB_ANIM_MAX -} EnHinkSkbAnimation; +typedef enum StalchildHintAnimation { + /* 0 */ STALCHILD_HINT_ANIM_WALK, + /* 1 */ STALCHILD_HINT_ANIM_STAND_UP_MORPH_1, + /* 2 */ STALCHILD_HINT_ANIM_ATTACK, + /* 3 */ STALCHILD_HINT_ANIM_STAGGER_MORPH_4, + /* 4 */ STALCHILD_HINT_ANIM_COLLAPSE, + /* 5 */ STALCHILD_HINT_ANIM_SIT_LAUGH, + /* 6 */ STALCHILD_HINT_ANIM_SIT_TAP_TOES, + /* 7 */ STALCHILD_HINT_ANIM_SWING_ON_BRANCH, + /* 8 */ STALCHILD_HINT_ANIM_STAND_UP_MORPH_8, + /* 9 */ STALCHILD_HINT_ANIM_STAND_UP_MORPH_16, + /* 10 */ STALCHILD_HINT_ANIM_STAGGER_MORPH_8, + /* 11 */ STALCHILD_HINT_ANIM_SALUTE, + /* 12 */ STALCHILD_HINT_ANIM_IDLE, + /* 13 */ STALCHILD_HINT_ANIM_MAX +} StalchildHintAnimation; -static AnimationInfo sAnimationInfo[ENHINTSKB_ANIM_MAX] = { - { &object_skb_Anim_0064E0, 0.96f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENHINTSKB_ANIM_0 - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, // ENHINTSKB_ANIM_1 - { &object_skb_Anim_002190, 0.6f, 0.0f, 0.0f, ANIMMODE_ONCE_INTERP, 4.0f }, // ENHINTSKB_ANIM_2 - { &object_skb_Anim_002AC8, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENHINTSKB_ANIM_3 - { &object_skb_Anim_00270C, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENHINTSKB_ANIM_4 - { &object_skb_Anim_00697C, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENHINTSKB_ANIM_5 - { &object_skb_Anim_006D90, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENHINTSKB_ANIM_6 - { &object_skb_Anim_001D1C, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENHINTSKB_ANIM_7 - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, // ENHINTSKB_ANIM_8 - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -16.0f }, // ENHINTSKB_ANIM_9 - { &object_skb_Anim_002AC8, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, // ENHINTSKB_ANIM_10 - { &object_skb_Anim_0015EC, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, // ENHINTSKB_ANIM_11 - { &object_skb_Anim_0009E4, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f }, // ENHINTSKB_ANIM_12 +static AnimationInfo sAnimationInfo[STALCHILD_HINT_ANIM_MAX] = { + { &gStalchildWalkAnim, 0.96f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // STALCHILD_HINT_ANIM_WALK + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, // STALCHILD_HINT_ANIM_STAND_UP_MORPH_1 + { &gStalchildAttackAnim, 0.6f, 0.0f, 0.0f, ANIMMODE_ONCE_INTERP, 4.0f }, // STALCHILD_HINT_ANIM_ATTACK + { &gStalchildStaggerAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // STALCHILD_HINT_ANIM_STAGGER_MORPH_4 + { &gStalchildCollapseAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // STALCHILD_HINT_ANIM_COLLAPSE + { &gStalchildSitLaughAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // STALCHILD_HINT_ANIM_SIT_LAUGH + { &gStalchildSitTapToesAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // STALCHILD_HINT_ANIM_SIT_TAP_TOES + { &gStalchildSwingOnBranchAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // STALCHILD_HINT_ANIM_SWING_ON_BRANCH + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, // STALCHILD_HINT_ANIM_STAND_UP_MORPH_8 + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -16.0f }, // STALCHILD_HINT_ANIM_STAND_UP_MORPH_16 + { &gStalchildStaggerAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, // STALCHILD_HINT_ANIM_STAGGER_MORPH_8 + { &gStalchildSaluteAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, // STALCHILD_HINT_ANIM_SALUTE + { &gStalchildIdleAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f }, // STALCHILD_HINT_ANIM_IDLE }; static InitChainEntry sInitChain[] = { @@ -168,8 +168,8 @@ void EnHintSkb_Init(Actor* thisx, PlayState* play) { EnHintSkb* this = THIS; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f); - SkelAnime_Init(play, &this->skelAnime, &object_skb_Skel_005EF8, &object_skb_Anim_00697C, this->jointTable, - this->morphTable, OBJECT_SKB_LIMB_MAX); + SkelAnime_Init(play, &this->skelAnime, &gStalchildSkel, &gStalchildSitLaughAnim, this->jointTable, this->morphTable, + STALCHILD_LIMB_MAX); Collider_InitJntSph(play, &this->collider); Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, this->colliderElement); CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); @@ -197,7 +197,7 @@ void func_80C1FE20(EnHintSkb* this, PlayState* play) { } void func_80C1FE30(EnHintSkb* this) { - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_0); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_WALK); this->actor.speed = 1.6f; this->actionFunc = func_80C1FE80; } @@ -216,7 +216,7 @@ void func_80C1FE80(EnHintSkb* this, PlayState* play) { void func_80C1FF30(EnHintSkb* this) { this->collider.base.atFlags &= ~AT_BOUNCED; this->actor.speed = 0.0f; - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_2); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_ATTACK); this->actionFunc = func_80C1FF88; } @@ -240,7 +240,7 @@ void func_80C1FF88(EnHintSkb* this, PlayState* play) { } void func_80C2003C(EnHintSkb* this) { - Animation_Change(&this->skelAnime, &object_skb_Anim_002190, -0.4f, this->skelAnime.curFrame - 1.0f, 0.0f, + Animation_Change(&this->skelAnime, &gStalchildAttackAnim, -0.4f, this->skelAnime.curFrame - 1.0f, 0.0f, ANIMMODE_ONCE_INTERP, 0.0f); this->collider.base.atFlags &= ~AT_BOUNCED; this->actionFunc = func_80C200B8; @@ -277,7 +277,7 @@ void func_80C2016C(EnHintSkb* this, PlayState* play) { if (this->actor.colChkInfo.health == 0) { SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 40, NA_SE_EN_STALKID_DEAD); func_80C20484(this); - } else if (this->skelAnime.animation == &object_skb_Anim_00697C) { + } else if (this->skelAnime.animation == &gStalchildSitLaughAnim) { func_80C1FE0C(this); } else if (func_80C21414(this)) { func_80C1FF30(this); @@ -288,14 +288,14 @@ void func_80C2016C(EnHintSkb* this, PlayState* play) { } void func_80C20274(EnHintSkb* this) { - if (this->skelAnime.animation == &object_skb_Anim_00697C) { + if (this->skelAnime.animation == &gStalchildSitLaughAnim) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_8); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_STAND_UP_MORPH_8); this->actor.gravity = -1.0f; this->actor.speed = 1.0f; } else { this->actor.world.rot.y = this->actor.yawTowardsPlayer; - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_3); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_STAGGER_MORPH_4); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->actor.speed = -4.0f; } @@ -333,7 +333,7 @@ void func_80C20334(EnHintSkb* this, PlayState* play) { } void func_80C20484(EnHintSkb* this) { - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_4); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_COLLAPSE); this->unk_3E8 |= 4; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->actor.speed = -6.0f; @@ -365,7 +365,7 @@ void func_80C20590(EnHintSkb* this, PlayState* play) { this->drawDmgEffAlpha = 0.0f; if (this->actor.colChkInfo.health != 0) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_3); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_STAGGER_MORPH_4); Actor_PlaySfx(&this->actor, NA_SE_EN_STALKID_DAMAGE); this->unk_3E8 |= 1; func_80C20274(this); @@ -392,7 +392,7 @@ void func_80C2069C(EnHintSkb* this, PlayState* play) { this->drawDmgEffAlpha = 0.0f; if (this->actor.colChkInfo.health != 0) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_3); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_STAGGER_MORPH_4); Actor_PlaySfx(&this->actor, NA_SE_EN_STALKID_DAMAGE); this->unk_3E8 |= 1; func_80C20274(this); @@ -416,15 +416,15 @@ void func_80C2077C(EnHintSkb* this, PlayState* play) { this->unk_3DC = 1; Message_StartTextbox(play, 0x1147, &this->actor); this->unk_3E6 = 0x1147; - if (this->skelAnime.animation == &object_skb_Anim_00697C) { + if (this->skelAnime.animation == &gStalchildSitLaughAnim) { play->msgCtx.msgMode = MSGMODE_PAUSED; this->actor.speed = 2.4f; this->actor.gravity = -1.0f; this->actor.velocity.y = 3.0f; - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_8); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_STAND_UP_MORPH_8); } } else { - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_11); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_SALUTE); Message_StartTextbox(play, 0x1148, &this->actor); this->unk_3E6 = 0x1148; } @@ -480,11 +480,11 @@ void func_80C208D0(EnHintSkb* this, PlayState* play) { } } - if ((this->skelAnime.animation == &object_skb_Anim_003584) && + if ((this->skelAnime.animation == &gStalchildStandUpAnim) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { Message_StartTextbox(play, 0x1147, &this->actor); this->unk_3E6 = 0x1147; - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_0); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_WALK); } } @@ -559,7 +559,7 @@ void func_80C20C24(EnHintSkb* this, PlayState* play) { case 0x1147: Message_StartTextbox(play, 0x1148, &this->actor); this->unk_3E6 = 0x1148; - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_11); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_SALUTE); break; case 0x1148: @@ -611,7 +611,7 @@ void func_80C20D64(EnHintSkb* this, PlayState* play) { this->actor.hintId = TATL_HINT_ID_NONE; this->actor.textId = 0; if (this->actionFunc == func_80C1FE80) { - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_12); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_IDLE); } func_80C2075C(this); } @@ -620,7 +620,7 @@ void func_80C20D64(EnHintSkb* this, PlayState* play) { this->actor.flags |= (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_UNFRIENDLY); this->actor.hintId = TATL_HINT_ID_STALCHILD; this->actor.textId = 0; - if (this->skelAnime.animation == &object_skb_Anim_00697C) { + if (this->skelAnime.animation == &gStalchildSitLaughAnim) { func_80C1FE0C(this); } else { func_80C1FE30(this); @@ -724,7 +724,7 @@ void func_80C20E90(EnHintSkb* this, PlayState* play) { this->drawDmgEffScale = 0.5f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); Actor_PlaySfx(&this->actor, NA_SE_EN_STALKID_DAMAGE); - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_3); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_STAGGER_MORPH_4); func_80C2066C(this); break; @@ -743,7 +743,7 @@ void func_80C20E90(EnHintSkb* this, PlayState* play) { case 13: Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); Actor_PlaySfx(&this->actor, NA_SE_EN_STALKID_DAMAGE); - Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENHINTSKB_ANIM_3); + Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, STALCHILD_HINT_ANIM_STAGGER_MORPH_4); func_80C20274(this); break; @@ -873,7 +873,7 @@ s32 EnHintSkb_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3 EnHintSkb* this = THIS; f32 temp_f10; - if (limbIndex == OBJECT_SKB_LIMB_0B) { + if (limbIndex == STALCHILD_LIMB_HEAD) { OPEN_DISPS(play->state.gfxCtx); temp_f10 = fabsf(Math_SinS(play->state.frames * 6000) * 95.0f) + 160.0f; @@ -882,13 +882,13 @@ s32 EnHintSkb_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3 gDPSetEnvColor(POLY_OPA_DISP++, (s16)temp_f10, (s16)temp_f10, (s16)temp_f10, 255); CLOSE_DISPS(play->state.gfxCtx); - } else if (limbIndex == OBJECT_SKB_LIMB_0A) { + } else if (limbIndex == STALCHILD_LIMB_RIBCAGE) { Matrix_MultZero(&this->actor.focus.pos); - } else if ((limbIndex == OBJECT_SKB_LIMB_0C) && (this->unk_3DE == 1)) { + } else if ((limbIndex == STALCHILD_LIMB_LOWER_JAW) && (this->unk_3DE == 1)) { Matrix_RotateZS(0x71C, MTXMODE_APPLY); } - if (((limbIndex == OBJECT_SKB_LIMB_0B) || (limbIndex == OBJECT_SKB_LIMB_0C)) && (this->unk_3E8 & 2)) { + if (((limbIndex == STALCHILD_LIMB_HEAD) || (limbIndex == STALCHILD_LIMB_LOWER_JAW)) && (this->unk_3E8 & 2)) { *dList = NULL; } @@ -902,25 +902,26 @@ void EnHintSkb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* if (!(this->unk_3E8 & 8)) { Collider_UpdateSpheres(limbIndex, &this->collider); - if ((limbIndex == OBJECT_SKB_LIMB_0B) && (this->unk_3E8 & 1) && !(this->unk_3E8 & 2)) { + if ((limbIndex == STALCHILD_LIMB_HEAD) && (this->unk_3E8 & 1) && !(this->unk_3E8 & 2)) { Actor_SpawnBodyParts(&this->actor, play, 1, dList); this->unk_3E8 |= 2; } else if ((this->unk_3E8 & 4) && !(this->unk_3E8 & 8) && - ((limbIndex != OBJECT_SKB_LIMB_0B) || !(this->unk_3E8 & 1)) && (limbIndex != OBJECT_SKB_LIMB_0C)) { + ((limbIndex != STALCHILD_LIMB_HEAD) || !(this->unk_3E8 & 1)) && + (limbIndex != STALCHILD_LIMB_LOWER_JAW)) { Actor_SpawnBodyParts(&this->actor, play, 1, dList); } if (this->drawDmgEffTimer != 0) { - if ((limbIndex == OBJECT_SKB_LIMB_02) || (limbIndex == OBJECT_SKB_LIMB_04) || - (limbIndex == OBJECT_SKB_LIMB_05) || (limbIndex == OBJECT_SKB_LIMB_06) || - (limbIndex == OBJECT_SKB_LIMB_07) || (limbIndex == OBJECT_SKB_LIMB_08) || - (limbIndex == OBJECT_SKB_LIMB_09) || (limbIndex == OBJECT_SKB_LIMB_0D) || - (limbIndex == OBJECT_SKB_LIMB_0E) || (limbIndex == OBJECT_SKB_LIMB_0F) || - (limbIndex == OBJECT_SKB_LIMB_10) || (limbIndex == OBJECT_SKB_LIMB_11) || - (limbIndex == OBJECT_SKB_LIMB_12)) { + if ((limbIndex == STALCHILD_LIMB_PELVIS) || (limbIndex == STALCHILD_LIMB_RIGHT_THIGH) || + (limbIndex == STALCHILD_LIMB_RIGHT_SHIN) || (limbIndex == STALCHILD_LIMB_RIGHT_FOOT) || + (limbIndex == STALCHILD_LIMB_LEFT_THIGH) || (limbIndex == STALCHILD_LIMB_LEFT_SHIN) || + (limbIndex == STALCHILD_LIMB_LEFT_FOOT) || (limbIndex == STALCHILD_LIMB_RIGHT_UPPER_ARM) || + (limbIndex == STALCHILD_LIMB_RIGHT_LOWER_ARM) || (limbIndex == STALCHILD_LIMB_RIGHT_HAND) || + (limbIndex == STALCHILD_LIMB_LEFT_UPPER_ARM) || (limbIndex == STALCHILD_LIMB_LEFT_LOWER_ARM) || + (limbIndex == STALCHILD_LIMB_LEFT_HAND)) { Matrix_MultZero(&this->bodyPartsPos[this->bodyPartsCount]); this->bodyPartsCount++; - } else if ((limbIndex == OBJECT_SKB_LIMB_0B) && !(this->unk_3E8 & 2)) { + } else if ((limbIndex == STALCHILD_LIMB_HEAD) && !(this->unk_3E8 & 2)) { Matrix_MultVec3f(&D_80C21E70, &this->bodyPartsPos[this->bodyPartsCount]); this->bodyPartsCount++; } diff --git a/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.h b/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.h index 95576210d..d29dd7fbf 100644 --- a/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.h +++ b/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.h @@ -38,8 +38,8 @@ typedef struct EnHintSkb { /* 0x2D4 */ f32 drawDmgEffAlpha; /* 0x2D8 */ f32 drawDmgEffScale; /* 0x2DC */ s32 bodyPartsCount; - /* 0x2E0 */ Vec3s jointTable[OBJECT_SKB_LIMB_MAX]; - /* 0x358 */ Vec3s morphTable[OBJECT_SKB_LIMB_MAX]; + /* 0x2E0 */ Vec3s jointTable[STALCHILD_LIMB_MAX]; + /* 0x358 */ Vec3s morphTable[STALCHILD_LIMB_MAX]; /* 0x3D0 */ UNK_TYPE1 unk3D0[0xC]; /* 0x3DC */ s16 unk_3DC; /* 0x3DE */ s16 unk_3DE; diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c index df5718605..eaf49d673 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -738,7 +738,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) { this->type = HORSE_TYPE_DONKEY; this->unk_528 = 80.0f; this->boostSpeed = 12; - if ((this->bankIndex = Object_GetSlot(&play->objectCtx, OBJECT_HA)) < 0) { + if ((this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_HA)) <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -748,8 +748,8 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) { this->type = HORSE_TYPE_2; this->unk_528 = 64.8f; this->boostSpeed = 15; - if ((this->bankIndex = Object_GetSlot(&play->objectCtx, OBJECT_HORSE_LINK_CHILD)) < 0) { - thisx->objBankIndex = Object_SpawnPersistent(&play->objectCtx, OBJECT_HORSE_LINK_CHILD); + if ((this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_HORSE_LINK_CHILD)) <= OBJECT_SLOT_NONE) { + thisx->objectSlot = Object_SpawnPersistent(&play->objectCtx, OBJECT_HORSE_LINK_CHILD); Actor_SetObjectDependency(play, &this->actor); Skin_Init(&play->state, &this->skin, sSkeletonHeaders[this->type], sAnimationHeaders[this->type][0]); Animation_PlayOnce(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animIndex]); @@ -760,7 +760,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) { } else if (ENHORSE_IS_BANDIT_TYPE(&this->actor)) { this->type = HORSE_TYPE_BANDIT; this->boostSpeed = 12; - if ((this->bankIndex = Object_GetSlot(&play->objectCtx, OBJECT_HA)) < 0) { + if ((this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_HA)) <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -948,8 +948,8 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) { void func_8087D540(Actor* thisx, PlayState* play) { EnHorse* this = THIS; - if (Object_IsLoaded(&play->objectCtx, this->bankIndex)) { - this->actor.objBankIndex = this->bankIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->actor); this->actor.update = EnHorse_Update; if (this->unk_1EC & 1) { diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.h b/src/overlays/actors/ovl_En_Horse/z_en_horse.h index f3c868c85..8213bed6a 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.h +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.h @@ -150,7 +150,7 @@ typedef struct EnHorse { /* 0x148 */ s32 noInputTimer; /* 0x14C */ s32 noInputTimerMax; /* 0x150 */ s32 type; - /* 0x154 */ s8 bankIndex; + /* 0x154 */ s8 objectSlot; /* 0x158 */ Skin skin; /* 0x1E8 */ s32 stateFlags; /* 0x1EC */ s32 unk_1EC; diff --git a/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.c b/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.c index 77b4ce909..8efc69c14 100644 --- a/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.c +++ b/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.c @@ -209,8 +209,8 @@ void EnInvadepohDemo_DoNothing(EnInvadepohDemo* this, PlayState* play) { void EnInvadepohDemo_Alien_Init(EnInvadepohDemo* this, PlayState* play) { Actor_ProcessInitChain(&this->actor, sAlienInitChain); this->actor.flags = ACTOR_FLAG_10 | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_80000000; - this->objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_UCH); - if (this->objectIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_UCH); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -220,8 +220,8 @@ void EnInvadepohDemo_Alien_Init(EnInvadepohDemo* this, PlayState* play) { void EnInvadepohDemo_Romani_Init(EnInvadepohDemo* this, PlayState* play) { Actor_ProcessInitChain(&this->actor, sRomaniInitChain); - this->objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_MA1); - if (this->objectIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_MA1); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -233,8 +233,8 @@ void EnInvadepohDemo_Cow_Init(EnInvadepohDemo* this, PlayState* play) { Actor_ProcessInitChain(&this->actor, sCowInitChain); Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_INVADEPOH_DEMO, 0.0f, 0.0f, 0.0f, 0, 0, 0, EN_INVADEPOH_DEMO_TYPE_COW_TAIL); - this->objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_COW); - if (this->objectIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_COW); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -250,8 +250,8 @@ void EnInvadepohDemo_Ufo_Init(EnInvadepohDemo* this, PlayState* play) { void EnInvadepohDemo_CowTail_Init(EnInvadepohDemo* this, PlayState* play) { Actor_ProcessInitChain(&this->actor, sCowTailInitChain); - this->objectIndex = Object_GetSlot(&play->objectCtx, OBJECT_COW); - if (this->objectIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_COW); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -503,8 +503,8 @@ void EnInvadepohDemo_CowTail_Idle(EnInvadepohDemo* this, PlayState* play) { void EnInvadepohDemo_Alien_WaitForObject(EnInvadepohDemo* this, PlayState* play) { s32 pad[2]; - if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) { - this->actor.objBankIndex = this->objectIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->actor); this->drawFlags |= DRAW_FLAG_SHOULD_DRAW; this->actionFunc = EnInvadepohDemo_SelectCueAction; @@ -517,8 +517,8 @@ void EnInvadepohDemo_Alien_WaitForObject(EnInvadepohDemo* this, PlayState* play) void EnInvadepohDemo_Romani_WaitForObject(EnInvadepohDemo* this, PlayState* play) { s32 pad[2]; - if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) { - this->actor.objBankIndex = this->objectIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->actor); this->drawFlags |= DRAW_FLAG_SHOULD_DRAW; this->actionFunc = EnInvadepohDemo_SelectCueAction; @@ -531,8 +531,8 @@ void EnInvadepohDemo_Romani_WaitForObject(EnInvadepohDemo* this, PlayState* play void EnInvadepohDemo_Cow_WaitForObject(EnInvadepohDemo* this, PlayState* play) { s32 pad[2]; - if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) { - this->actor.objBankIndex = this->objectIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->actor); this->drawFlags |= DRAW_FLAG_SHOULD_DRAW; this->actionFunc = EnInvadepohDemo_SelectCueAction; @@ -545,8 +545,8 @@ void EnInvadepohDemo_Cow_WaitForObject(EnInvadepohDemo* this, PlayState* play) { void EnInvadepohDemo_CowTail_WaitForObject(EnInvadepohDemo* this, PlayState* play) { s32 pad[2]; - if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) { - this->actor.objBankIndex = this->objectIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->actor); this->drawFlags |= DRAW_FLAG_SHOULD_DRAW; this->actionFunc = EnInvadepohDemo_CowTail_Idle; @@ -786,7 +786,7 @@ void EnInvadepohDemo_Init(Actor* thisx, PlayState* play) { this->ufoRotZ = 0; this->pathIndex = EN_INVADEPOH_DEMO_GET_PATH_INDEX(&this->actor); this->pointIndex = 0; - this->objectIndex = -1; + this->objectSlot = OBJECT_SLOT_NONE; sInitFuncs[this->type](this, play); } diff --git a/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.h b/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.h index ac93078ec..92e35b39f 100644 --- a/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.h +++ b/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.h @@ -43,7 +43,7 @@ typedef struct EnInvadepohDemo { /* 0x154 */ s32 cueId; // "demo_mode" /* 0x158 */ s32 pathIndex; /* 0x15C */ s32 pointIndex; - /* 0x160 */ s32 objectIndex; + /* 0x160 */ s32 objectSlot; /* 0x164 */ s32 drawFlags; // Only has one flag to control whether or not to draw /* 0x168 */ s32 cueIdOffset; /* 0x16C */ s16 ufoRotZ; diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c index 2e3e2fc39..44967e4bd 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -71,7 +71,7 @@ static EnIshiUnkFunc2 D_8095F6D8[] = { func_8095D804, func_8095DABC }; static EnIshiUnkFunc D_8095F6E0[] = { func_8095DDA8, func_8095DE9C }; -static s16 D_8095F6E8[] = { GAMEPLAY_FIELD_KEEP, OBJECT_ISHI }; +static s16 sObjectIds[] = { GAMEPLAY_FIELD_KEEP, OBJECT_ISHI }; static ColliderCylinderInit sCylinderInit[] = { { @@ -173,7 +173,7 @@ s32 func_8095D758(EnIshi* this, PlayState* play, f32 arg2) { void func_8095D804(Actor* thisx, PlayState* play) { EnIshi* this = THIS; s32 i; - s16 temp; + s16 objectId; Gfx* phi_s4; Vec3f spC4; Vec3f spB8; @@ -184,7 +184,7 @@ void func_8095D804(Actor* thisx, PlayState* play) { phi_s4 = gSmallRockDL; } - temp = D_8095F6E8[ENISHI_GET_8(&this->actor)]; + objectId = sObjectIds[ENISHI_GET_8(&this->actor)]; for (i = 0; i < ARRAY_COUNT(D_8095F74C); i++) { spB8.x = ((Rand_ZeroOne() - 0.5f) * 8.0f) + this->actor.world.pos.x; @@ -207,7 +207,7 @@ void func_8095D804(Actor* thisx, PlayState* play) { spC4.z += (Rand_ZeroOne() - 0.5f) * 11.0f; EffectSsKakera_Spawn(play, &spB8, &spC4, &spB8, -420, ((s32)Rand_Next() > 0) ? 65 : 33, 30, 5, 0, D_8095F74C[i], - 3, 10, 40, -1, temp, phi_s4); + 3, 10, 40, -1, objectId, phi_s4); } } @@ -425,8 +425,8 @@ void EnIshi_Init(Actor* thisx, PlayState* play) { this->unk_197 |= 1; } - this->unk_196 = Object_GetSlot(&play->objectCtx, D_8095F6E8[ENISHI_GET_8(&this->actor)]); - if (this->unk_196 < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[ENISHI_GET_8(&this->actor)]); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -446,8 +446,8 @@ void func_8095E5AC(EnIshi* this) { } void func_8095E5C0(EnIshi* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->unk_196)) { - this->actor.objBankIndex = this->unk_196; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; this->actor.flags &= ~ACTOR_FLAG_10; if (!ENISHI_GET_8(&this->actor)) { this->actor.draw = func_8095F61C; diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.h b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.h index 81fc78368..fe1898c13 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.h +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.h @@ -24,7 +24,7 @@ typedef struct EnIshi { /* 0x190 */ EnIshiActionFunc actionFunc; /* 0x194 */ s8 unk_194; /* 0x195 */ s8 unk_195; - /* 0x196 */ s8 unk_196; + /* 0x196 */ s8 objectSlot; /* 0x197 */ u8 unk_197; } EnIshi; // size = 0x198 diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c index 0b246b4df..dafd131ee 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -70,7 +70,7 @@ ActorInit En_Kusa_InitVars = { (ActorFunc)NULL, }; -static s16 objectIds[] = { GAMEPLAY_FIELD_KEEP, OBJECT_KUSA, OBJECT_KUSA, OBJECT_KUSA }; +static s16 sObjectIds[] = { GAMEPLAY_FIELD_KEEP, OBJECT_KUSA, OBJECT_KUSA, OBJECT_KUSA }; static ColliderCylinderInit sCylinderInit = { { @@ -307,7 +307,7 @@ void EnKusa_SpawnFragments(EnKusa* this, PlayState* play) { scaleIndex = (s32)(Rand_ZeroOne() * 111.1f) & 7; EffectSsKakera_Spawn(play, &pos, &velocity, &pos, -100, 64, 40, 3, 0, sFragmentScales[scaleIndex], 0, 0, 0x50, - -1, 1, gKakeraLeafMiddle); + -1, 1, gKakeraLeafMiddleDL); pos.x = this->actor.world.pos.x + (directon->x * this->actor.scale.x * 40.0f); pos.y = this->actor.world.pos.y + (directon->y * this->actor.scale.y * 40.0f) + 10.0f; @@ -319,7 +319,7 @@ void EnKusa_SpawnFragments(EnKusa* this, PlayState* play) { scaleIndex = (s32)(Rand_ZeroOne() * 111.1f) % 7; EffectSsKakera_Spawn(play, &pos, &velocity, &pos, -100, 64, 40, 3, 0, sFragmentScales[scaleIndex], 0, 0, 0x50, - -1, 1, gKakeraLeafTip); + -1, 1, gKakeraLeafTipDL); } } @@ -393,8 +393,8 @@ void EnKusa_Init(Actor* thisx, PlayState* play) { this->isInWater |= 1; } - this->objIndex = Object_GetSlot(&play->objectCtx, objectIds[(KUSA_GET_TYPE(&this->actor))]); - if (this->objIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[(KUSA_GET_TYPE(&this->actor))]); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -428,7 +428,7 @@ void EnKusa_SetupWaitObject(EnKusa* this) { void EnKusa_WaitObject(EnKusa* this, PlayState* play) { s32 pad; - if (Object_IsLoaded(&play->objectCtx, this->objIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { s32 kusaType = KUSA_GET_TYPE(&this->actor); if (this->isCut) { @@ -441,7 +441,7 @@ void EnKusa_WaitObject(EnKusa* this, PlayState* play) { } else { this->actor.draw = EnKusa_DrawGrass; } - this->actor.objBankIndex = this->objIndex; + this->actor.objectSlot = this->objectSlot; this->actor.flags &= ~ACTOR_FLAG_10; } } @@ -736,7 +736,7 @@ void EnKusa_DrawGrass(Actor* thisx, PlayState* play) { EnKusa* this = THIS; if (this->isCut) { - Gfx_DrawDListOpa(play, gKusaStump); + Gfx_DrawDListOpa(play, gKusaStumpDL); } else { if ((play->roomCtx.curRoom.behaviorType1 == ROOM_BEHAVIOR_TYPE1_0) && (this->actionFunc == EnKusa_WaitForInteract)) { @@ -744,6 +744,6 @@ void EnKusa_DrawGrass(Actor* thisx, PlayState* play) { EnKusa_ApplySway(&D_80936AD8[this->kusaMtxIdx]); } } - Gfx_DrawDListOpa(play, gKusaSprout); + Gfx_DrawDListOpa(play, gKusaSproutDL); } } diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.h b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.h index 1871b1dbe..9e46f8b22 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.h +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.h @@ -45,7 +45,7 @@ typedef struct EnKusa { /* 0x144 */ EnKusaActionFunc actionFunc; /* 0x148 */ ColliderCylinder collider; /* 0x194 */ u8 timer; - /* 0x195 */ s8 objIndex; + /* 0x195 */ s8 objectSlot; /* 0x196 */ s8 kusaMtxIdx; /* 0x197 */ u8 isCut; /* 0x198 */ u8 isInWater; diff --git a/src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c b/src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c index 53e203330..e471eb8f7 100644 --- a/src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c +++ b/src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c @@ -1315,8 +1315,8 @@ void EnKusa2_Update(Actor* thisx, PlayState* play) { void func_80A5E6F0(Actor* thisx, PlayState* play) { static Gfx* D_80A5EB68[] = { - gKakeraLeafTip, - gKakeraLeafMiddle, + gKakeraLeafTipDL, + gKakeraLeafMiddleDL, }; EnKusa2* this = THIS; s32 i; diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c index 856c13c0d..f9ad697ce 100644 --- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c +++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c @@ -707,7 +707,7 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxp) { s16 step; // Set segment 6 to the object, since this will be read by OVERLAY_DISP where it is not set by default. - gSPSegment(gfx++, 0x06, play->objectCtx.slots[this->actor.objBankIndex].segment); + gSPSegment(gfx++, 0x06, play->objectCtx.slots[this->actor.objectSlot].segment); Gfx_SetupDL39_Ptr(&gfx); diff --git a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c index ed8edb377..83a8be394 100644 --- a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c +++ b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c @@ -58,11 +58,11 @@ Color_RGBA8 sPrimColor = { 255, 255, 255, 255 }; Color_RGBA8 sEnvColor = { 80, 80, 80, 255 }; void EnNwc_Init(Actor* thisx, PlayState* play) { - s32 niwObjectIndex; + s32 niwObjectSlot; EnNwc* this = THIS; - niwObjectIndex = Object_GetSlot(&play->objectCtx, OBJECT_NIW); - if (niwObjectIndex < 0) { + niwObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_NIW); + if (niwObjectSlot <= OBJECT_SLOT_NONE) { // niw object does not exist, we need it for tranformation, despawn Actor_Kill(&this->actor); return; @@ -75,8 +75,8 @@ void EnNwc_Init(Actor* thisx, PlayState* play) { return; } - this->niwObjectIndex = niwObjectIndex; - this->nwcObjectIndex = this->actor.objBankIndex; + this->niwObjectSlot = niwObjectSlot; + this->nwcObjectIndex = this->actor.objectSlot; this->grog = EnNwc_FindGrog(play); this->footRotY = this->footRotZ = 0; @@ -247,8 +247,8 @@ void EnNwc_CheckFound(EnNwc* this, PlayState* play) { } void EnNwc_LoadNiwSkeleton(EnNwc* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->niwObjectIndex)) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->niwObjectIndex].segment); + if (Object_IsLoaded(&play->objectCtx, this->niwObjectSlot)) { + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->niwObjectSlot].segment); SkelAnime_InitFlex(play, &this->niwSkeleton, &gNiwSkel, &gNiwIdleAnim, this->jointTable, this->morphTable, NIW_LIMB_MAX); @@ -468,11 +468,11 @@ void EnNwc_Update(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 10.0f, 10.0f, 10.0f, UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_4); this->actionFunc(this, play); if (this->hasGrownUp & 1) { - this->actor.objBankIndex = this->niwObjectIndex; + this->actor.objectSlot = this->niwObjectSlot; this->actor.draw = EnNwc_DrawAdultBody; this->actor.shape.shadowScale = 15.0f; } else { - this->actor.objBankIndex = this->nwcObjectIndex; + this->actor.objectSlot = this->nwcObjectIndex; this->actor.draw = EnNwc_Draw; this->actor.shape.shadowScale = 6.0f; } diff --git a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.h b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.h index 51c017dff..9ce3ab60e 100644 --- a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.h +++ b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.h @@ -15,7 +15,7 @@ typedef struct EnNwc { /* 0x144 */ SkelAnime niwSkeleton; // this skeleton is for when the chicks grow up into adults during the breman march /* 0x188 */ Vec3s jointTable[NIW_LIMB_MAX]; /* 0x1E8 */ Vec3s morphTable[NIW_LIMB_MAX]; - /* 0x248 */ s8 niwObjectIndex; + /* 0x248 */ s8 niwObjectSlot; /* 0x249 */ s8 nwcObjectIndex; /* 0x24A */ s16 blinkState; /* 0x24C */ s16 blinkTimer; diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 368052dfc..bcdd2934e 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -267,16 +267,16 @@ void EnOssan_SpawnShopItems(EnOssan* this, PlayState* play, ShopItem* shop) { void EnOssan_Init(Actor* thisx, PlayState* play) { EnOssan* this = THIS; - s16 id; + s16 objectId; if ((this->actor.params > ENOSSAN_PART_TIME_WORKER) && (this->actor.params < ENOSSAN_CURIOSITY_SHOP_MAN)) { //! @bug: Impossible to reach, && should be an || Actor_Kill(&this->actor); return; } - id = sObjectIds[this->actor.params]; - this->objIndex = Object_GetSlot(&play->objectCtx, id); - if (this->objIndex < 0) { + objectId = sObjectIds[this->actor.params]; + this->objectSlot = Object_GetSlot(&play->objectCtx, objectId); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -1506,9 +1506,9 @@ void EnOssan_InitShop(EnOssan* this, PlayState* play) { static EnOssanActionFunc sInitFuncs[] = { EnOssan_CuriosityShopMan_Init, EnOssan_PartTimer_Init }; ShopItem* shopItems; - if (Object_IsLoaded(&play->objectCtx, this->objIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { this->actor.flags &= ~ACTOR_FLAG_10; - this->actor.objBankIndex = this->objIndex; + this->actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->actor); shopItems = sShops[this->actor.params]; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f); diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.h b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.h index da256322a..02c44818f 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.h +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.h @@ -21,7 +21,7 @@ typedef struct EnOssan { /* 0x18C */ EnOssanActionFunc prevActionFunc; // Used to restore back to correct browsing function /* 0x190 */ ColliderCylinder collider; /* 0x1DC */ s16 delayTimer; - /* 0x1DE */ s8 objIndex; + /* 0x1DE */ s8 objectSlot; /* 0x1E0 */ s16 eyeTexIndex; /* 0x1E2 */ s16 blinkTimer; /* 0x1E4 */ EnOssanBlinkFunc blinkFunc; diff --git a/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c b/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c index b6bd9a2d2..226aec92b 100644 --- a/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c +++ b/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c @@ -63,19 +63,19 @@ ActorInit En_Rail_Skb_InitVars = { }; static AnimationInfo sAnimationInfo[] = { - { &object_skb_Anim_0064E0, 0.96f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, - { &object_skb_Anim_002190, 0.6f, 0.0f, 0.0f, ANIMMODE_ONCE_INTERP, 4.0f }, - { &object_skb_Anim_002AC8, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, - { &object_skb_Anim_00270C, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, - { &object_skb_Anim_00697C, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, - { &object_skb_Anim_006D90, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, - { &object_skb_Anim_001D1C, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -16.0f }, - { &object_skb_Anim_002AC8, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, - { &object_skb_Anim_0015EC, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, - { &object_skb_Anim_0009E4, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f }, + { &gStalchildWalkAnim, 0.96f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, + { &gStalchildAttackAnim, 0.6f, 0.0f, 0.0f, ANIMMODE_ONCE_INTERP, 4.0f }, + { &gStalchildStaggerAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, + { &gStalchildCollapseAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, + { &gStalchildSitLaughAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, + { &gStalchildSitTapToesAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, + { &gStalchildSwingOnBranchAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -16.0f }, + { &gStalchildStaggerAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, + { &gStalchildSaluteAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, + { &gStalchildIdleAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f }, }; static ColliderJntSphElementInit sJntSphElementsInit[2] = { @@ -270,8 +270,8 @@ void EnRailSkb_Init(Actor* thisx, PlayState* play) { func_80B708C0(this, play); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f); - SkelAnime_Init(play, &this->skelAnime, &object_skb_Skel_005EF8, &object_skb_Anim_0064E0, this->jointTable, - this->morphTable, 20); + SkelAnime_Init(play, &this->skelAnime, &gStalchildSkel, &gStalchildWalkAnim, this->jointTable, this->morphTable, + STALCHILD_LIMB_MAX); Collider_InitJntSph(play, &this->collider); Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, this->colliderElements); CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); diff --git a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c index 2f429b975..f7ec8f509 100644 --- a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c +++ b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c @@ -786,18 +786,18 @@ void EnSGoro_UpdateSleeping(EnSGoro* this, PlayState* play) { s32 EnSGoro_UpdateCheerAnimation(EnSGoro* this, PlayState* play) { if (this->animInfoIndex == EN_S_GORO_ANIM_IDLE_STAND) { if (((EnJg*)this->otherGoron)->flags & 1) { - this->loadedObjIndex = Object_GetSlot(&play->objectCtx, OBJECT_TAISOU); - if (this->loadedObjIndex >= 0) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->loadedObjIndex].segment); + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_TAISOU); + if (this->objectSlot > OBJECT_SLOT_NONE) { + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectSlot].segment); this->animInfoIndex = EN_S_GORO_ANIM_TAISOU_CHEER; SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, this->animInfoIndex); return true; } } } else if ((this->animInfoIndex == EN_S_GORO_ANIM_TAISOU_CHEER) && !(((EnJg*)this->otherGoron)->flags & 1)) { - this->loadedObjIndex = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); - if (this->loadedObjIndex >= 0) { - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->loadedObjIndex].segment); + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); + if (this->objectSlot > OBJECT_SLOT_NONE) { + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectSlot].segment); this->animInfoIndex = EN_S_GORO_ANIM_IDLE_STAND; SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, this->animInfoIndex); this->skelAnime.curFrame = this->skelAnime.endFrame; @@ -1023,7 +1023,7 @@ s32 EnSGoro_UpdateAttentionTarget(EnSGoro* this, PlayState* play) { } void EnSGoro_SetupAction(EnSGoro* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->loadedObjIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { this->actionFlags = 0; if (EN_S_GORO_OFTYPE_WSHRINE) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) { @@ -1307,10 +1307,10 @@ void EnSGoro_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); if (this->actor.update != NULL) { - s32 objIndex = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); + s32 objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_OF1D_MAP); - this->loadedObjIndex = objIndex; - if (objIndex < 0) { + this->objectSlot = objectSlot; + if (objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); } } @@ -1329,7 +1329,7 @@ void EnSGoro_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_4); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->loadedObjIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectSlot].segment); SkelAnime_Update(&this->skelAnime); if (this->animInfoIndex != EN_S_GORO_ANIM_SLEEPY) { EnSGoro_UpdateAttentionTarget(this, play); diff --git a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.h b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.h index 9e0cd7792..35b71bfdd 100644 --- a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.h +++ b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.h @@ -23,7 +23,7 @@ typedef struct EnSGoro { /* 0x1EC */ s16 eyeTexIndex; /* 0x1EE */ s16 eyeTimer; /* 0x1F0 */ s16 loseAttentionTimer; - /* 0x1F4 */ s32 loadedObjIndex; + /* 0x1F4 */ s32 objectSlot; /* 0x1F8 */ Vec3s jointTable[GORON_LIMB_MAX]; /* 0x264 */ Vec3s morphTable[GORON_LIMB_MAX]; /* 0x2D0 */ f32 scaleFactor; diff --git a/src/overlays/actors/ovl_En_Scopenuts/z_en_scopenuts.c b/src/overlays/actors/ovl_En_Scopenuts/z_en_scopenuts.c index a280a94c6..80fbff4b1 100644 --- a/src/overlays/actors/ovl_En_Scopenuts/z_en_scopenuts.c +++ b/src/overlays/actors/ovl_En_Scopenuts/z_en_scopenuts.c @@ -90,7 +90,7 @@ static AnimationInfoS sAnimationInfo[] = { { &gBusinessScrubFlyEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, }; -Gfx* D_80BCCCDC[] = { gKakeraLeafMiddle, gKakeraLeafTip }; +Gfx* D_80BCCCDC[] = { gKakeraLeafMiddleDL, gKakeraLeafTipDL }; Vec3f D_80BCCCE4 = { 0.0f, -0.5f, 0.0f }; diff --git a/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.c b/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.c index 92b88e462..0b22f3d9c 100644 --- a/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.c +++ b/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.c @@ -55,7 +55,7 @@ static u16 sTextIds[] = { 0, 0, 0, 0, 0x1018 }; void EnSekihi_Init(Actor* thisx, PlayState* play) { EnSekihi* this = THIS; s32 type = ENSIKIHI_GET_TYPE(thisx); - s32 objectIndex; + s32 objectSlot; s32 pad; if (((type < SEKIHI_TYPE_0) || (type >= SEKIHI_TYPE_MAX)) || (sOpaDLists[type] == NULL)) { @@ -69,9 +69,9 @@ void EnSekihi_Init(Actor* thisx, PlayState* play) { SET_WEEKEVENTREG(WEEKEVENTREG_OCEANSIDE_SPIDER_HOUSE_BUYER_MOVED_IN); } - objectIndex = Object_GetSlot(&play->objectCtx, sObjectIds[type]); - if (objectIndex >= 0) { - this->objectIndex = objectIndex; + objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[type]); + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; } this->actionFunc = func_80A44DE8; this->opaDList = sOpaDLists[type]; @@ -96,8 +96,8 @@ void func_80A44DE8(EnSekihi* this, PlayState* play) { }; type = ENSIKIHI_GET_TYPE(&this->dyna.actor); - if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) { - this->dyna.actor.objBankIndex = this->objectIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->dyna.actor.objectSlot = this->objectSlot; this->dyna.actor.draw = EnSekihi_Draw; if (type == SEKIHI_TYPE_4) { this->actionFunc = func_80A450B0; diff --git a/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.h b/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.h index 0c26dab71..60e7c47ba 100644 --- a/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.h +++ b/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.h @@ -15,7 +15,7 @@ typedef struct EnSekihi { /* 0x000 */ DynaPolyActor dyna; /* 0x15C */ Gfx* opaDList; /* 0x160 */ Gfx* xluDList; - /* 0x164 */ s8 objectIndex; + /* 0x164 */ s8 objectSlot; /* 0x168 */ EnSekihiActionFunc actionFunc; } EnSekihi; // size = 0x16C diff --git a/src/overlays/actors/ovl_En_Skb/z_en_skb.c b/src/overlays/actors/ovl_En_Skb/z_en_skb.c index 9d57b9638..98223faea 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -50,19 +50,19 @@ s32 func_80996594(EnSkb* this, PlayState* play); void func_80996BEC(EnSkb* this, PlayState* play); static AnimationInfo sAnimationInfo[] = { - { &object_skb_Anim_0064E0, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, - { &object_skb_Anim_002190, 0.6f, 0.0f, 0.0f, ANIMMODE_ONCE_INTERP, 4.0f }, - { &object_skb_Anim_002AC8, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0 }, - { &object_skb_Anim_00270C, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0 }, - { &object_skb_Anim_00697C, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, - { &object_skb_Anim_006D90, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, - { &object_skb_Anim_001D1C, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, - { &object_skb_Anim_003584, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -16.0f }, - { &object_skb_Anim_002AC8, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, - { &object_skb_Anim_0015EC, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0 }, - { &object_skb_Anim_0009E4, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, + { &gStalchildWalkAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, + { &gStalchildAttackAnim, 0.6f, 0.0f, 0.0f, ANIMMODE_ONCE_INTERP, 4.0f }, + { &gStalchildStaggerAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0 }, + { &gStalchildCollapseAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0 }, + { &gStalchildSitLaughAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, + { &gStalchildSitTapToesAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, + { &gStalchildSwingOnBranchAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, + { &gStalchildStandUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -16.0f }, + { &gStalchildStaggerAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -8.0f }, + { &gStalchildSaluteAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0 }, + { &gStalchildIdleAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0 }, }; static Vec3f D_80997468[] = { @@ -176,29 +176,29 @@ void func_809947B0(PlayState* play, EnSkb* this, Vec3f* inPos) { } void func_8099495C(EnSkb* this, PlayState* play) { - SkelAnime_Init(play, &this->skelAnime, &object_skb_Skel_005EF8, &object_skb_Anim_003584, this->jointTable, - this->morphTable, 20); + SkelAnime_Init(play, &this->skelAnime, &gStalchildSkel, &gStalchildStandUpAnim, this->jointTable, this->morphTable, + STALCHILD_LIMB_MAX); this->unk_3DC = 0; func_80994E2C(this); } void func_809949C4(EnSkb* this, PlayState* play) { - SkelAnime_Init(play, &this->skelAnime, &object_skb_Skel_005EF8, &object_skb_Anim_00697C, this->jointTable, - this->morphTable, 20); + SkelAnime_Init(play, &this->skelAnime, &gStalchildSkel, &gStalchildSitLaughAnim, this->jointTable, this->morphTable, + STALCHILD_LIMB_MAX); this->unk_3DC = 1; func_809952D8(this); } void func_80994A30(EnSkb* this, PlayState* play) { - SkelAnime_Init(play, &this->skelAnime, &object_skb_Skel_005EF8, &object_skb_Anim_006D90, this->jointTable, - this->morphTable, 20); + SkelAnime_Init(play, &this->skelAnime, &gStalchildSkel, &gStalchildSitTapToesAnim, this->jointTable, + this->morphTable, STALCHILD_LIMB_MAX); this->unk_3DC = 1; func_809953E8(this); } void func_80994A9C(EnSkb* this, PlayState* play) { - SkelAnime_Init(play, &this->skelAnime, &object_skb_Skel_005EF8, &object_skb_Anim_001D1C, this->jointTable, - this->morphTable, 20); + SkelAnime_Init(play, &this->skelAnime, &gStalchildSkel, &gStalchildSwingOnBranchAnim, this->jointTable, + this->morphTable, STALCHILD_LIMB_MAX); this->unk_3DC = 1; func_809954F8(this); } @@ -535,7 +535,7 @@ void func_80995818(EnSkb* this, PlayState* play) { } void func_809958F4(EnSkb* this) { - Animation_Change(&this->skelAnime, &object_skb_Anim_003584, -1.0f, Animation_GetLastFrame(&object_skb_Anim_003584), + Animation_Change(&this->skelAnime, &gStalchildStandUpAnim, -1.0f, Animation_GetLastFrame(&gStalchildStandUpAnim), 0.0f, ANIMMODE_ONCE, -4.0f); this->unk_3E4 = 0; this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; @@ -620,7 +620,7 @@ void func_80995C84(EnSkb* this, PlayState* play) { } void func_80995D3C(EnSkb* this) { - Animation_Change(&this->skelAnime, &object_skb_Anim_002190, -0.4f, this->skelAnime.curFrame - 1.0f, 0.0f, + Animation_Change(&this->skelAnime, &gStalchildAttackAnim, -0.4f, this->skelAnime.curFrame - 1.0f, 0.0f, ANIMMODE_ONCE_INTERP, 0.0f); this->collider.base.atFlags &= ~AT_BOUNCED; this->unk_3DE = 4; diff --git a/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c b/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c index 8a8be15c4..901e49126 100644 --- a/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c +++ b/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c @@ -379,22 +379,22 @@ void EnSob1_SpawnShopItems(EnSob1* this, PlayState* play, ShopItem* shopItem) { } } -s32 EnSob1_GetObjIndices(EnSob1* this, PlayState* play, s16* objIds) { - if (objIds[1] != OBJECT_ID_MAX) { - this->unusedObjIndex = Object_GetSlot(&play->objectCtx, objIds[1]); - if (this->unusedObjIndex < 0) { +s32 EnSob1_GetObjectIndices(EnSob1* this, PlayState* play, s16* objectIds) { + if (objectIds[1] != OBJECT_ID_MAX) { + this->unusedObjectSlot = Object_GetSlot(&play->objectCtx, objectIds[1]); + if (this->unusedObjectSlot <= OBJECT_SLOT_NONE) { return false; } } else { - this->unusedObjIndex = -1; + this->unusedObjectSlot = OBJECT_SLOT_NONE; } - if (objIds[2] != OBJECT_ID_MAX) { - this->shopkeeperAnimObjIndex = Object_GetSlot(&play->objectCtx, objIds[2]); - if (this->shopkeeperAnimObjIndex < 0) { + if (objectIds[2] != OBJECT_ID_MAX) { + this->shopkeeperAnimObjectSlot = Object_GetSlot(&play->objectCtx, objectIds[2]); + if (this->shopkeeperAnimObjectSlot <= OBJECT_SLOT_NONE) { return false; } } else { - this->shopkeeperAnimObjIndex = -1; + this->shopkeeperAnimObjectSlot = OBJECT_SLOT_NONE; } return true; } @@ -402,7 +402,7 @@ s32 EnSob1_GetObjIndices(EnSob1* this, PlayState* play, s16* objIds) { void EnSob1_Init(Actor* thisx, PlayState* play) { EnSob1* this = THIS; s32 pad; - s16* objIds; + s16* objectIds; switch (ENSOB1_GET_SHOPTYPE(thisx)) { case ZORA_SHOP: @@ -426,13 +426,13 @@ void EnSob1_Init(Actor* thisx, PlayState* play) { return; } - objIds = sObjectIds[this->shopType]; - this->mainObjIndex = Object_GetSlot(&play->objectCtx, objIds[0]); - if (this->mainObjIndex < 0) { + objectIds = sObjectIds[this->shopType]; + this->mainObjectSlot = Object_GetSlot(&play->objectCtx, objectIds[0]); + if (this->mainObjectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } - if (!EnSob1_GetObjIndices(this, play, objIds)) { + if (!EnSob1_GetObjectIndices(this, play, objectIds)) { Actor_Kill(&this->actor); return; } @@ -1345,15 +1345,16 @@ void EnSob1_Blink(EnSob1* this) { } void EnSob1_ChangeObject(EnSob1* this, PlayState* play) { - gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->shopkeeperAnimObjIndex].segment); + gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->shopkeeperAnimObjectSlot].segment); } s32 EnSob1_AreObjectsLoaded(EnSob1* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->mainObjIndex)) { - if ((this->unusedObjIndex >= 0) && !Object_IsLoaded(&play->objectCtx, this->unusedObjIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->mainObjectSlot)) { + if ((this->unusedObjectSlot > OBJECT_SLOT_NONE) && !Object_IsLoaded(&play->objectCtx, this->unusedObjectSlot)) { return false; } - if ((this->shopkeeperAnimObjIndex >= 0) && !Object_IsLoaded(&play->objectCtx, this->shopkeeperAnimObjIndex)) { + if ((this->shopkeeperAnimObjectSlot > OBJECT_SLOT_NONE) && + !Object_IsLoaded(&play->objectCtx, this->shopkeeperAnimObjectSlot)) { return false; } return true; @@ -1363,7 +1364,7 @@ s32 EnSob1_AreObjectsLoaded(EnSob1* this, PlayState* play) { void EnSob1_ZoraShopkeeper_Init(EnSob1* this, PlayState* play) { SkelAnime_InitFlex(play, &this->skelAnime, &gZoraSkel, NULL, this->jointTable, this->morphTable, ZORA_LIMB_MAX); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->shopkeeperAnimObjIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->shopkeeperAnimObjectSlot].segment); Animation_Change(&this->skelAnime, &gZoraShopkeeperAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gZoraShopkeeperAnim), ANIMMODE_LOOP, 0.0f); this->actor.draw = EnSob1_ZoraShopkeeper_Draw; @@ -1372,7 +1373,7 @@ void EnSob1_ZoraShopkeeper_Init(EnSob1* this, PlayState* play) { void EnSob1_GoronShopkeeper_Init(EnSob1* this, PlayState* play) { SkelAnime_InitFlex(play, &this->skelAnime, &gGoronSkel, NULL, this->jointTable, this->morphTable, GORON_LIMB_MAX); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->shopkeeperAnimObjIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->shopkeeperAnimObjectSlot].segment); Animation_Change(&this->skelAnime, &gGoronShopkeeperAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gGoronShopkeeperAnim), ANIMMODE_LOOP, 0.0f); this->actor.draw = EnSob1_GoronShopkeeper_Draw; @@ -1394,7 +1395,7 @@ void EnSob1_InitShop(EnSob1* this, PlayState* play) { if (EnSob1_AreObjectsLoaded(this, play)) { this->actor.flags &= ~ACTOR_FLAG_10; - this->actor.objBankIndex = this->mainObjIndex; + this->actor.objectSlot = this->mainObjectSlot; Actor_SetObjectDependency(play, &this->actor); posOffset = &sPosOffset[this->shopType]; this->actor.world.pos.x += posOffset->x; diff --git a/src/overlays/actors/ovl_En_Sob1/z_en_sob1.h b/src/overlays/actors/ovl_En_Sob1/z_en_sob1.h index 12c14301b..2ae018ce4 100644 --- a/src/overlays/actors/ovl_En_Sob1/z_en_sob1.h +++ b/src/overlays/actors/ovl_En_Sob1/z_en_sob1.h @@ -36,9 +36,9 @@ typedef struct EnSob1 { /* 0x1E0 */ Path* path; /* 0x1E4 */ s32 waypoint; /* 0x1E8 */ s16 delayTimer; - /* 0x1EA */ s8 mainObjIndex; - /* 0x1EB */ s8 unusedObjIndex; - /* 0x1EC */ s8 shopkeeperAnimObjIndex; + /* 0x1EA */ s8 mainObjectSlot; + /* 0x1EB */ s8 unusedObjectSlot; + /* 0x1EC */ s8 shopkeeperAnimObjectSlot; /* 0x1EE */ s16 headRot; /* 0x1F0 */ s16 headRotTarget; /* 0x1F2 */ Vec3s jointTable[ENSOB1_LIMB_MAX]; diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c index 2c2e20e6a..ba1828067 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.c +++ b/src/overlays/actors/ovl_En_St/z_en_st.c @@ -245,9 +245,9 @@ void func_808A54B0(EnSt* this, PlayState* play) { if ((this->unk_18C & 1) && (this->actor.colChkInfo.health != 0)) { OPEN_DISPS(play->state.gfxCtx); - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->unk_2C0].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->objectSlot].segment); - gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[this->unk_2C0].segment); + gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[this->objectSlot].segment); Gfx_SetupDL25_Xlu(play->state.gfxCtx); Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, MTXMODE_NEW); @@ -693,7 +693,7 @@ s32 func_808A6A3C(EnSt* this) { void func_808A6A78(EnSt* this, PlayState* play) { s32 pad[2]; - if (Object_IsLoaded(&play->objectCtx, this->unk_2C0)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 8.0f); SkelAnime_Init(play, &this->skelAnime, &object_st_Skel_005298, NULL, this->jointTable, this->morphTable, 30); SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, 0); @@ -842,9 +842,9 @@ void func_808A701C(EnSt* this, PlayState* play) { void EnSt_Init(Actor* thisx, PlayState* play) { EnSt* this = THIS; - this->unk_2C0 = Object_GetSlot(&play->objectCtx, GAMEPLAY_KEEP); + this->objectSlot = Object_GetSlot(&play->objectCtx, GAMEPLAY_KEEP); if (((ENST_GET_SWITCH_FLAG(&this->actor) != 0x3F) && Flags_GetSwitch(play, ENST_GET_SWITCH_FLAG(&this->actor))) || - (this->unk_2C0 < 0)) { + (this->objectSlot <= OBJECT_SLOT_NONE)) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/actors/ovl_En_St/z_en_st.h b/src/overlays/actors/ovl_En_St/z_en_st.h index aab1204aa..dd40a3450 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.h +++ b/src/overlays/actors/ovl_En_St/z_en_st.h @@ -38,7 +38,7 @@ typedef struct EnSt { /* 0x1DC */ ColliderCylinder collider2; /* 0x228 */ ColliderCylinder collider3; /* 0x274 */ ColliderCylinder collider4; - /* 0x2C0 */ s8 unk_2C0; + /* 0x2C0 */ s8 objectSlot; /* 0x2C4 */ f32 unk_2C4; /* 0x2C8 */ f32 unk_2C8; /* 0x2CC */ f32 unk_2CC; diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index daf58065f..c80aaed0b 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -108,16 +108,16 @@ static Color_RGB8 sShirtColors[] = { void EnSth_Init(Actor* thisx, PlayState* play) { s32 pad; EnSth* this = THIS; - s32 objectId; + s32 objectSlot; // this actor can draw two separate bodies that use different objects if (STH_GET_SWAMP_BODY(&this->actor)) { - objectId = Object_GetSlot(&play->objectCtx, OBJECT_AHG); + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_AHG); } else { - objectId = Object_GetSlot(&play->objectCtx, OBJECT_STH); + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_STH); } - this->mainObjectId = objectId; - this->maskOfTruthObjectId = Object_GetSlot(&play->objectCtx, OBJECT_MASK_TRUTH); + this->mainObjectSlot = objectSlot; + this->maskOfTruthObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_MASK_TRUTH); Actor_SetScale(&this->actor, 0.01f); Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); @@ -619,8 +619,8 @@ void EnSth_UpdateWaitForObject(Actor* thisx, PlayState* play) { s32 pad; EnSth* this = THIS; - if (Object_IsLoaded(&play->objectCtx, this->mainObjectId)) { - this->actor.objBankIndex = this->mainObjectId; + if (Object_IsLoaded(&play->objectCtx, this->mainObjectSlot)) { + this->actor.objectSlot = this->mainObjectSlot; Actor_SetObjectDependency(play, &this->actor); if (STH_GET_SWAMP_BODY(&this->actor)) { @@ -733,14 +733,14 @@ void EnSth_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, OPEN_DISPS(play->state.gfxCtx); if (this->sthFlags & STH_FLAG_DRAW_MASK_OF_TRUTH) { - if (Object_IsLoaded(&play->objectCtx, this->maskOfTruthObjectId)) { + if (Object_IsLoaded(&play->objectCtx, this->maskOfTruthObjectSlot)) { Matrix_Push(); Matrix_RotateZS(0x3A98, MTXMODE_APPLY); Matrix_Translate(0.0f, 190.0f, 0.0f, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[this->maskOfTruthObjectId].segment); + gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[this->maskOfTruthObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_mask_truth_DL_0001A0); Matrix_Pop(); diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.h b/src/overlays/actors/ovl_En_Sth/z_en_sth.h index dbc459ce1..059ae8c76 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.h +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.h @@ -42,8 +42,8 @@ typedef struct EnSth { /* 0x294 */ Vec3s headRot; /* 0x29A */ s16 animIndex; /* 0x29C */ u16 sthFlags; - /* 0x29E */ u8 mainObjectId; - /* 0x29F */ u8 maskOfTruthObjectId; + /* 0x29E */ u8 mainObjectSlot; + /* 0x29F */ u8 maskOfTruthObjectSlot; /* 0x2A0 */ EnSthActionFunc actionFunc; } EnSth; // size = 0x2A4 diff --git a/src/overlays/actors/ovl_En_Sth2/z_en_sth2.c b/src/overlays/actors/ovl_En_Sth2/z_en_sth2.c index be0821580..e45dd1394 100644 --- a/src/overlays/actors/ovl_En_Sth2/z_en_sth2.c +++ b/src/overlays/actors/ovl_En_Sth2/z_en_sth2.c @@ -35,7 +35,7 @@ ActorInit En_Sth2_InitVars = { void EnSth2_Init(Actor* thisx, PlayState* play) { EnSth2* this = THIS; - this->objIndex = Object_GetSlot(&play->objectCtx, OBJECT_STH); + this->objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_STH); Actor_SetScale(&this->actor, 0.01f); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f); this->unused = 0; @@ -60,8 +60,8 @@ void EnSth2_Update(Actor* thisx, PlayState* play) { s32 pad; EnSth2* this = THIS; - if (Object_IsLoaded(&play->objectCtx, this->objIndex)) { - this->actor.objBankIndex = this->objIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->actor); SkelAnime_InitFlex(play, &this->skelAnime, &gSthSkel, &gEnSth2WavingHandAnim, this->jointTable, this->morphTable, STH_LIMB_MAX); diff --git a/src/overlays/actors/ovl_En_Sth2/z_en_sth2.h b/src/overlays/actors/ovl_En_Sth2/z_en_sth2.h index d8ecc9cdb..9375532b4 100644 --- a/src/overlays/actors/ovl_En_Sth2/z_en_sth2.h +++ b/src/overlays/actors/ovl_En_Sth2/z_en_sth2.h @@ -14,7 +14,7 @@ typedef struct EnSth2 { /* 0x188 */ Vec3s jointTable[STH_LIMB_MAX]; /* 0x1E8 */ Vec3s morphTable[STH_LIMB_MAX]; /* 0x248 */ s16 unused; - /* 0x24A */ u8 objIndex; + /* 0x24A */ u8 objectSlot; /* 0x24C */ EnSth2ActionFunc actionFunc; } EnSth2; // size = 0x250 diff --git a/src/overlays/actors/ovl_En_Stone_heishi/z_en_stone_heishi.c b/src/overlays/actors/ovl_En_Stone_heishi/z_en_stone_heishi.c index c0d9e1197..581962d60 100644 --- a/src/overlays/actors/ovl_En_Stone_heishi/z_en_stone_heishi.c +++ b/src/overlays/actors/ovl_En_Stone_heishi/z_en_stone_heishi.c @@ -62,8 +62,8 @@ static ColliderCylinderInit sCylinderInit = { static u16 sEnStoneHeishiTextIds[] = { 0x1473, 0x1474, 0x1475, 0x1476, 0x1477, 0x1478, 0x1479, 0x147A, 0x1472 }; static AnimationHeader* sAnimations[] = { - &gSoldierStandHandOnHip, &gSoldierDrink, &gSoldierCheerWithSpear, &gSoldierWave, - &gSoldierSitAndReach, &gSoldierDrink, &gSoldierStandUp, + &gSoldierStandHandOnHipAnim, &gSoldierDrinkAnim, &gSoldierCheerWithSpearAnim, &gSoldierWaveAnim, + &gSoldierSitAndReachAnim, &gSoldierDrinkAnim, &gSoldierStandUpAnim, }; static u8 sAnimationModes[] = { @@ -107,7 +107,7 @@ void EnStoneheishi_Init(Actor* thisx, PlayState* play) { EnStoneheishi* this = THIS; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierWave, this->jointTable, this->morphTable, + SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierWaveAnim, this->jointTable, this->morphTable, SOLDIER_LIMB_MAX); this->actor.colChkInfo.mass = MASS_IMMOVABLE; diff --git a/src/overlays/actors/ovl_En_Stop_heishi/z_en_stop_heishi.c b/src/overlays/actors/ovl_En_Stop_heishi/z_en_stop_heishi.c index 8be9f715a..6a1b68bbc 100644 --- a/src/overlays/actors/ovl_En_Stop_heishi/z_en_stop_heishi.c +++ b/src/overlays/actors/ovl_En_Stop_heishi/z_en_stop_heishi.c @@ -85,21 +85,21 @@ static u16 sThirdDayLeaveMessages[] = { }; static AnimationHeader* sAnimations[SOLDIER_ANIM_MAX] = { - &gSoldierLookDown, // SOLDIER_ANIM_LOOK_DOWN - &gSoldierComeUpHere, // SOLDIER_ANIM_COME_UP_HERE - &gSoldierStandHandOnHip, // SOLDIER_ANIM_STAND_HAND_ON_HIP - &gSoldierStandAndLookDown, // SOLDIER_ANIM_STAND_LOOK_DOWN - &object_sdn_Anim_0057BC, // SOLDIER_ANIM_4 - &object_sdn_Anim_005D28, // SOLDIER_ANIM_5 - &object_sdn_Anim_0064C0, // SOLDIER_ANIM_6 - &gSoldierStandWithHandOnChest, // SOLDIER_ANIM_STAND_HAND_ON_CHEST + &gSoldierLookDownAnim, // SOLDIER_ANIM_LOOK_DOWN + &gSoldierComeUpHereAnim, // SOLDIER_ANIM_COME_UP_HERE + &gSoldierStandHandOnHipAnim, // SOLDIER_ANIM_STAND_HAND_ON_HIP + &gSoldierStandAndLookDownAnim, // SOLDIER_ANIM_STAND_LOOK_DOWN + &object_sdn_Anim_0057BC, // SOLDIER_ANIM_4 + &object_sdn_Anim_005D28, // SOLDIER_ANIM_5 + &object_sdn_Anim_0064C0, // SOLDIER_ANIM_6 + &gSoldierStandWithHandOnChestAnim, // SOLDIER_ANIM_STAND_HAND_ON_CHEST }; void EnStopheishi_Init(Actor* thisx, PlayState* play) { EnStopheishi* this = THIS; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierStandHandOnHip, this->jointTable, + SkelAnime_InitFlex(play, &this->skelAnime, &gSoldierSkel, &gSoldierStandHandOnHipAnim, this->jointTable, this->morphTable, SOLDIER_LIMB_MAX); this->actor.colChkInfo.mass = MASS_IMMOVABLE; diff --git a/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.c b/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.c index a2c39f16b..692651860 100644 --- a/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.c +++ b/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.c @@ -15,7 +15,25 @@ void EnTakaraya_Destroy(Actor* thisx, PlayState* play); void EnTakaraya_Update(Actor* thisx, PlayState* play); void EnTakaraya_Draw(Actor* thisx, PlayState* play); -#if 0 +void EnTakaraya_Blink(EnTakaraya* this); +void EnTakaraya_SetupWait(EnTakaraya* this); +void EnTakaraya_Wait(EnTakaraya* this, PlayState* play); +void EnTakaraya_SpawnWalls(EnTakaraya* this, PlayState* play); +void EnTakaraya_SetupTalk(EnTakaraya* this); +void EnTakaraya_Talk(EnTakaraya* this, PlayState* play); +void func_80ADF2D4(EnTakaraya* this); +void func_80ADF338(EnTakaraya* this, PlayState* play); +void func_80ADF4E0(EnTakaraya* this); +void func_80ADF520(EnTakaraya* this, PlayState* play); +void func_80ADF608(EnTakaraya* this, PlayState* play); +void func_80ADF654(EnTakaraya* this, PlayState* play); +void func_80ADF6DC(EnTakaraya* this); +void func_80ADF730(EnTakaraya* this, PlayState* play); +void func_80ADF7B8(EnTakaraya* this); +void func_80ADF7CC(EnTakaraya* this, PlayState* play); +s32 EnTakaraya_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx); +void EnTakaraya_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx); + ActorInit En_Takaraya_InitVars = { ACTOR_EN_TAKARAYA, ACTORCAT_NPC, @@ -28,61 +46,391 @@ ActorInit En_Takaraya_InitVars = { (ActorFunc)EnTakaraya_Draw, }; -// static InitChainEntry sInitChain[] = { -static InitChainEntry D_80ADFB20[] = { +TexturePtr sEyesUpTextures[] = { + gTreasureChestShopGalEyeOpenUpTex, + gTreasureChestShopGalEyeHalfUpTex, + gTreasureChestShopGalEyeClosedTex, + gTreasureChestShopGalEyeHalfUpTex, +}; + +TexturePtr sEyesDownTextures[] = { + gTreasureChestShopGalEyeOpenDownTex, + gTreasureChestShopGalEyeHalfDownTex, + gTreasureChestShopGalEyeClosedTex, + gTreasureChestShopGalEyeHalfDownTex, +}; + +static InitChainEntry sInitChain[] = { ICHAIN_U8(targetMode, TARGET_MODE_6, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 1000, ICHAIN_STOP), }; -#endif +u32 sTexturesDesegmented = false; -extern InitChainEntry D_80ADFB20[]; +u16 D_80ADFB2C[PLAYER_FORM_MAX] = { + 0x76D, // PLAYER_FORM_FIERCE_DEITY + 0x76E, // PLAYER_FORM_GORON + 0x76F, // PLAYER_FORM_ZORA + 0x76C, // PLAYER_FORM_DEKU + 0x76D, // PLAYER_FORM_HUMAN +}; -extern UNK_TYPE D_06001384; -extern UNK_TYPE D_06009890; -extern UNK_TYPE D_0600A280; -extern UNK_TYPE D_0600AD98; +u8 D_80ADFB38[PLAYER_FORM_MAX][2] = { + { 5, 5 }, // PLAYER_FORM_FIERCE_DEITY + { 12, 5 }, // PLAYER_FORM_GORON + { 4, 4 }, // PLAYER_FORM_ZORA + { 42, 41 }, // PLAYER_FORM_DEKU + { 5, 5 }, // PLAYER_FORM_HUMAN +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/EnTakaraya_Init.s") +u16 D_80ADFB44[PLAYER_FORM_MAX] = { + 0x775, // PLAYER_FORM_FIERCE_DEITY + 0x776, // PLAYER_FORM_GORON + 0x777, // PLAYER_FORM_ZORA + 0x774, // PLAYER_FORM_DEKU + 0x775, // PLAYER_FORM_HUMAN +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/EnTakaraya_Destroy.s") +u16 D_80ADFB50[PLAYER_FORM_MAX] = { + 0x771, // PLAYER_FORM_FIERCE_DEITY + 0x772, // PLAYER_FORM_GORON + 0x773, // PLAYER_FORM_ZORA + 0x770, // PLAYER_FORM_DEKU + 0x771, // PLAYER_FORM_HUMAN +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADED8C.s") +void EnTakaraya_Init(Actor* thisx, PlayState* play) { + EnTakaraya* this = THIS; + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADEDF8.s") + Actor_ProcessInitChain(&this->actor, sInitChain); + ActorShape_Init(&this->actor.shape, -60.0f, NULL, 0.0f); + SkelAnime_InitFlex(play, &this->skelAnime, &gTreasureChestShopGalSkel, &object_bg_Anim_009890, this->jointTable, + this->morphTable, TREASURE_CHEST_SHOP_GAL_LIMB_MAX); + this->switchFlag = EN_TAKARAYA_GET_SWITCH_FLAG(thisx); + thisx->params &= 0xFF; + if (!sTexturesDesegmented) { + for (i = 0; i < ARRAY_COUNT(sEyesDownTextures); i++) { + sEyesUpTextures[i] = Lib_SegmentedToVirtual(sEyesUpTextures[i]); + sEyesDownTextures[i] = Lib_SegmentedToVirtual(sEyesDownTextures[i]); + } + sTexturesDesegmented = true; + } + this->eyeTexIndex = 2; + if (gSaveContext.save.entrance == ENTRANCE(TREASURE_CHEST_SHOP, 1)) { + Audio_StopSubBgm(); + if (gSaveContext.timerStates[TIMER_ID_MINIGAME_2] == TIMER_STATE_6) { + this->actor.textId = 0x77A; + gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP; + func_80ADF6DC(this); + } else { + this->actor.textId = 0x77C; + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_TIME_PASSED)) { + CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_WAIT); + CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_TIME_PASSED); + EnTakaraya_SetupWait(this); + } else { + func_80ADF6DC(this); + } + } + } else { + EnTakaraya_SetupWait(this); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADEE4C.s") +void EnTakaraya_Destroy(Actor* thisx, PlayState* play) { + EnTakaraya* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADEF74.s") + Flags_UnsetSwitch(play, 5); + if (!this->unk2AD) { + CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_WAIT); + gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF03C.s") +void EnTakaraya_Blink(EnTakaraya* this) { + if (this->eyeTexIndex != 0) { + this->eyeTexIndex++; + if (this->eyeTexIndex == 4) { + this->eyeTexIndex = 0; + } + } else if (Rand_ZeroOne() < 0.02f) { + this->eyeTexIndex++; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF050.s") +void EnTakaraya_SetupWait(EnTakaraya* this) { + if (this->skelAnime.animation == &object_bg_Anim_001384) { + Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 5.0f); + } + this->actionFunc = EnTakaraya_Wait; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF2D4.s") +void EnTakaraya_Wait(EnTakaraya* this, PlayState* play) { + if (SkelAnime_Update(&this->skelAnime)) { + if (this->skelAnime.animation == &object_bg_Anim_00A280) { + Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 5.0f); + } else { + Animation_MorphToLoop(&this->skelAnime, &object_bg_Anim_009890, -4.0f); + } + } + if (Actor_ProcessTalkRequest(&this->actor, &play->state)) { + if (Text_GetFaceReaction(play, FACE_REACTION_SET_TREASURE_CHEST_SHOP_GAL) == 0) { + Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00A280, -4.0f); + } + EnTakaraya_SetupTalk(this); + } else if (Actor_IsFacingPlayer(&this->actor, 0x2000)) { + this->actor.textId = Text_GetFaceReaction(play, FACE_REACTION_SET_TREASURE_CHEST_SHOP_GAL); + if (this->actor.textId == 0) { + this->actor.textId = D_80ADFB2C[GET_PLAYER_FORM]; + } + this->formSwitchFlag = GET_PLAYER_FORM + this->switchFlag; + Actor_OfferTalk(&this->actor, play, 120.0f); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF338.s") +void EnTakaraya_SpawnWalls(EnTakaraya* this, PlayState* play) { + u8 var_v1; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF4E0.s") + if (Flags_GetSwitch(play, this->formSwitchFlag)) { + var_v1 = D_80ADFB38[GET_PLAYER_FORM][1]; + } else { + var_v1 = D_80ADFB38[GET_PLAYER_FORM][0]; + } + Actor_SpawnAsChildAndCutscene(&play->actorCtx, play, ACTOR_OBJ_TAKARAYA_WALL, 0.0f, 0.0f, 0.0f, 0, 0, 5, + ((var_v1 << 5) + this->actor.params) + 0xB000, this->actor.csId, HALFDAYBIT_ALL, + NULL); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF520.s") +void EnTakaraya_SetupTalk(EnTakaraya* this) { + this->actionFunc = EnTakaraya_Talk; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF608.s") +void EnTakaraya_Talk(EnTakaraya* this, PlayState* play) { + u8 talkState; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF654.s") + if (SkelAnime_Update(&this->skelAnime)) { + if (this->skelAnime.animation == &object_bg_Anim_00AD98) { + Animation_PlayOnce(&this->skelAnime, &object_bg_Anim_000968); + } else if (this->skelAnime.animation == &object_bg_Anim_00A280) { + Animation_PlayLoop(&this->skelAnime, &object_bg_Anim_001384); + } else { + Animation_PlayLoop(&this->skelAnime, &object_bg_Anim_009890); + } + } + talkState = Message_GetState(&play->msgCtx); + if ((talkState == TEXT_STATE_CLOSING) || (talkState == TEXT_STATE_DONE)) { + if (this->actor.textId == 0x778) { + func_80ADF2D4(this); + } else { + CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_WAIT); + CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_TIME_PASSED); + EnTakaraya_SetupWait(this); + } + } else if ((talkState == TEXT_STATE_1) && (this->actor.textId != 0x778)) { + if (Message_ShouldAdvance(play)) { + Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 5.0f); + } + } else if ((talkState == TEXT_STATE_CHOICE) && Message_ShouldAdvance(play)) { + if (play->msgCtx.choiceIndex == 0) { + if (gSaveContext.save.saveInfo.playerData.rupees < play->msgCtx.unk1206C) { + this->actor.textId = 0x77B; + if (this->skelAnime.animation == &object_bg_Anim_009890) { + Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_000968, 5.0f); + } + Audio_PlaySfx(NA_SE_SY_ERROR); + } else { + Audio_PlaySfx_MessageDecide(); + Rupees_ChangeBy(-play->msgCtx.unk1206C); + EnTakaraya_SpawnWalls(this, play); + this->actor.textId = 0x778; + if (this->skelAnime.animation != &object_bg_Anim_009890) { + Animation_MorphToLoop(&this->skelAnime, &object_bg_Anim_009890, 5.0f); + } + } + } else { + Audio_PlaySfx_MessageCancel(); + this->actor.textId = D_80ADFB44[GET_PLAYER_FORM]; + if (this->skelAnime.animation == &object_bg_Anim_009890) { + Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_000968, 5.0f); + } + } + Message_ContinueTextbox(play, this->actor.textId); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF6DC.s") +void func_80ADF2D4(EnTakaraya* this) { + Actor_PlaySfx_FlaggedCentered2(&this->actor, NA_SE_SY_FOUND); + Audio_PlaySubBgm(NA_BGM_TIMED_MINI_GAME); + this->timer = 145; + SET_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_WAIT); + CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_TIME_PASSED); + this->actionFunc = func_80ADF338; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF730.s") +void func_80ADF338(EnTakaraya* this, PlayState* play) { + Actor* chest = play->actorCtx.actorLists[ACTORCAT_CHEST].first; + Player* player = GET_PLAYER(play); + Vec3f subCamEye; + Vec3f subCamAt; + f32 sp2C; + s16 subCamId; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF7B8.s") + SkelAnime_Update(&this->skelAnime); + if ((CutsceneManager_GetCurrentCsId() == this->actor.csId) && (chest != NULL)) { + this->timer--; + subCamId = CutsceneManager_GetCurrentSubCamId(this->actor.csId); + if (this->timer >= 26) { + sp2C = 250.0f; + } else { + sp2C = ((chest->xzDistToPlayer - 250.0f) * (25 - this->timer) * 0.04f) + 250.0f; + } + subCamEye.x = (Math_SinS(chest->yawTowardsPlayer) * sp2C) + chest->world.pos.x; + subCamEye.y = player->actor.world.pos.y + 120.0f; + subCamEye.z = (Math_CosS(chest->yawTowardsPlayer) * sp2C) + chest->world.pos.z; + subCamAt.x = subCamEye.x - (Math_SinS(chest->yawTowardsPlayer) * 250.0f); + subCamAt.y = subCamEye.y - 90.0f; + subCamAt.z = subCamEye.z - (Math_CosS(chest->yawTowardsPlayer) * 250.0f); + Play_SetCameraAtEye(play, subCamId, &subCamAt, &subCamEye); + } else if (this->timer < 145) { + func_80ADF4E0(this); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF7CC.s") +void func_80ADF4E0(EnTakaraya* this) { + Interface_StartTimer(TIMER_ID_MINIGAME_2, 45); + this->timer = 1; + this->actionFunc = func_80ADF520; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/EnTakaraya_Update.s") +void func_80ADF520(EnTakaraya* this, PlayState* play) { + SkelAnime_Update(&this->skelAnime); + if (!Play_InCsMode(play)) { + if (Flags_GetTreasure(play, this->actor.params)) { + Flags_SetSwitch(play, this->formSwitchFlag); + play->actorCtx.sceneFlags.chest &= ~TAKARAYA_GET_TREASURE_FLAG(&this->actor); + this->timer = 0; + gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_6; + func_80ADF608(this, play); + } else if (gSaveContext.timerCurTimes[TIMER_ID_MINIGAME_2] == TIMER_STATE_OFF) { + this->timer = 50; + Message_StartTextbox(play, 0x77D, &this->actor); + gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP; + func_80ADF608(this, play); + } + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF94C.s") +void func_80ADF608(EnTakaraya* this, PlayState* play) { + func_800B7298(play, &this->actor, PLAYER_CSMODE_WAIT); + this->unk2AD = true; + this->actionFunc = func_80ADF654; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/func_80ADF984.s") +void func_80ADF654(EnTakaraya* this, PlayState* play) { + if (this->timer > 0) { + this->timer--; + } else { + if (gSaveContext.timerStates[TIMER_ID_MINIGAME_2] == TIMER_STATE_6) { + play->transitionType = TRANS_TYPE_80; + gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; + } else { + play->transitionType = TRANS_TYPE_64; + gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; + } + gSaveContext.nextCutsceneIndex = 0; + play->nextEntrance = ENTRANCE(TREASURE_CHEST_SHOP, 1); + play->transitionTrigger = TRANS_TRIGGER_START; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Takaraya/EnTakaraya_Draw.s") +void func_80ADF6DC(EnTakaraya* this) { + Animation_PlayLoop(&this->skelAnime, &object_bg_Anim_001384); + this->eyeTexIndex = 0; + this->actor.flags |= ACTOR_FLAG_10000; + this->actionFunc = func_80ADF730; +} + +void func_80ADF730(EnTakaraya* this, PlayState* play) { + SkelAnime_Update(&this->skelAnime); + if (Actor_ProcessTalkRequest(&this->actor, &play->state)) { + this->actor.flags &= ~ACTOR_FLAG_10000; + func_80ADF7B8(this); + } else { + this->formSwitchFlag = GET_PLAYER_FORM + this->switchFlag; + Actor_OfferTalk(&this->actor, play, 120.0f); + } +} + +void func_80ADF7B8(EnTakaraya* this) { + this->actionFunc = func_80ADF7CC; +} + +void func_80ADF7CC(EnTakaraya* this, PlayState* play) { + SkelAnime_Update(&this->skelAnime); + + if ((Message_GetState(&play->msgCtx) == TEXT_STATE_5) && Message_ShouldAdvance(play)) { + if (this->actor.textId == 0x77A) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_TIME_PASSED)) { + Message_CloseTextbox(play); + CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_WAIT); + CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_TIME_PASSED); + EnTakaraya_SetupWait(this); + } else { + this->actor.textId = 0x77C; + Message_ContinueTextbox(play, this->actor.textId); + } + } else { + this->actor.textId = D_80ADFB50[GET_PLAYER_FORM]; + Message_ContinueTextbox(play, this->actor.textId); + Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 5.0f); + EnTakaraya_SetupTalk(this); + } + } +} + +void EnTakaraya_Update(Actor* thisx, PlayState* play) { + EnTakaraya* this = THIS; + s32 pad; + Vec3s torsoRot; + + this->actionFunc(this, play); + Actor_TrackPlayer(play, &this->actor, &this->headRot, &torsoRot, this->actor.focus.pos); + EnTakaraya_Blink(this); +} + +s32 EnTakaraya_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { + EnTakaraya* this = THIS; + + if (limbIndex == TREASURE_CHEST_SHOP_GAL_LIMB_HEAD) { + rot->x += this->headRot.y; + } + return false; +} + +void EnTakaraya_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { + EnTakaraya* this = THIS; + + if (limbIndex == TREASURE_CHEST_SHOP_GAL_LIMB_HEAD) { + Matrix_RotateYS(0x400 - this->headRot.x, MTXMODE_APPLY); + Matrix_MultVecX(500.0f, &thisx->focus.pos); + } +} + +void EnTakaraya_Draw(Actor* thisx, PlayState* play) { + EnTakaraya* this = THIS; + + OPEN_DISPS(play->state.gfxCtx); + Gfx_SetupDL25_Opa(play->state.gfxCtx); + + if ((GET_PLAYER_FORM == PLAYER_FORM_DEKU) || (GET_PLAYER_FORM == PLAYER_FORM_HUMAN)) { + gSPSegment(POLY_OPA_DISP++, 0x08, sEyesDownTextures[this->eyeTexIndex]); + } else { + gSPSegment(POLY_OPA_DISP++, 0x08, sEyesUpTextures[this->eyeTexIndex]); + } + SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, + this->skelAnime.dListCount, EnTakaraya_OverrideLimbDraw, NULL, + EnTakaraya_TransformLimbDraw, &this->actor); + + CLOSE_DISPS(play->state.gfxCtx); +} diff --git a/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.h b/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.h index cfa37125e..3124097de 100644 --- a/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.h +++ b/src/overlays/actors/ovl_En_Takaraya/z_en_takaraya.h @@ -2,16 +2,27 @@ #define Z_EN_TAKARAYA_H #include "global.h" +#include "objects/object_bg/object_bg.h" struct EnTakaraya; typedef void (*EnTakarayaActionFunc)(struct EnTakaraya*, PlayState*); +#define EN_TAKARAYA_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 0x8) & 0xFF) +#define TAKARAYA_GET_TREASURE_FLAG(thisx) (1 << (thisx)->params) + typedef struct EnTakaraya { /* 0x000 */ Actor actor; - /* 0x144 */ char unk_144[0x164]; + /* 0x144 */ SkelAnime skelAnime; + /* 0x188 */ Vec3s jointTable[TREASURE_CHEST_SHOP_GAL_LIMB_MAX]; + /* 0x218 */ Vec3s morphTable[TREASURE_CHEST_SHOP_GAL_LIMB_MAX]; /* 0x2A8 */ EnTakarayaActionFunc actionFunc; - /* 0x2AC */ char unk_2AC[0x10]; + /* 0x2AC */ u8 eyeTexIndex; + /* 0x2AD */ u8 unk2AD; + /* 0x2AE */ s16 timer; + /* 0x2B0 */ s16 formSwitchFlag; + /* 0x2B2 */ s16 switchFlag; + /* 0x2B4 */ Vec3s headRot; } EnTakaraya; // size = 0x2BC #endif // Z_EN_TAKARAYA_H diff --git a/src/overlays/actors/ovl_En_Test2/z_en_test2.c b/src/overlays/actors/ovl_En_Test2/z_en_test2.c index d909826bb..7a9e45bc2 100644 --- a/src/overlays/actors/ovl_En_Test2/z_en_test2.c +++ b/src/overlays/actors/ovl_En_Test2/z_en_test2.c @@ -79,18 +79,18 @@ void EnTest2_Init(Actor* thisx, PlayState* play) { void EnTest2_Update(Actor* thisx, PlayState* play) { s32 pad; - s32 objectIndex; + s32 objectSlot; EnTest2ModelInfo* modelInfo; EnTest2* this = THIS; - objectIndex = Object_GetSlot(&play->objectCtx, sObjectIds[this->actor.params]); - if (objectIndex < 0) { + objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[this->actor.params]); + if (objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } - if (Object_IsLoaded(&play->objectCtx, objectIndex)) { + if (Object_IsLoaded(&play->objectCtx, objectSlot)) { modelInfo = &sModelInfo[this->actor.params]; - this->actor.objBankIndex = objectIndex; + this->actor.objectSlot = objectSlot; this->actor.draw = EnTest2_Draw; if (modelInfo->animMat != NULL) { Actor_SetObjectDependency(play, &this->actor); diff --git a/src/overlays/actors/ovl_En_Warp_tag/z_en_warp_tag.c b/src/overlays/actors/ovl_En_Warp_tag/z_en_warp_tag.c index 4ae591302..fcac1e837 100644 --- a/src/overlays/actors/ovl_En_Warp_tag/z_en_warp_tag.c +++ b/src/overlays/actors/ovl_En_Warp_tag/z_en_warp_tag.c @@ -60,7 +60,8 @@ void EnWarptag_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnWarpTag_WaitForPlayer; } else { - if ((this->dangeonKeepObject = Object_GetSlot(&play->objectCtx, GAMEPLAY_DANGEON_KEEP)) < 0) { + if ((this->dangeonKeepObjectSlot = Object_GetSlot(&play->objectCtx, GAMEPLAY_DANGEON_KEEP)) <= + OBJECT_SLOT_NONE) { Actor_Kill(&this->dyna.actor); } @@ -83,11 +84,11 @@ void EnWarptag_Destroy(Actor* thisx, PlayState* play) { * Loads DynaPoly from GAMEPLAY_DANGEON_KEEP. */ void EnWarpTag_CheckDungeonKeepObject(EnWarptag* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->dangeonKeepObject)) { + if (Object_IsLoaded(&play->objectCtx, this->dangeonKeepObjectSlot)) { this->actionFunc = EnWarpTag_WaitForPlayer; DynaPolyActor_Init(&this->dyna, 0x1); DynaPolyActor_LoadMesh(play, &this->dyna, &gWarpTagGoronTrialBaseCol); - this->dyna.actor.objBankIndex = this->dangeonKeepObject; + this->dyna.actor.objectSlot = this->dangeonKeepObjectSlot; this->dyna.actor.draw = EnWarpTag_Draw; } } diff --git a/src/overlays/actors/ovl_En_Warp_tag/z_en_warp_tag.h b/src/overlays/actors/ovl_En_Warp_tag/z_en_warp_tag.h index ac76ccb67..840cf8a0f 100644 --- a/src/overlays/actors/ovl_En_Warp_tag/z_en_warp_tag.h +++ b/src/overlays/actors/ovl_En_Warp_tag/z_en_warp_tag.h @@ -9,7 +9,7 @@ typedef void (*EnWarptagActionFunc)(struct EnWarptag*, PlayState*); typedef struct EnWarptag { /* 0x000 */ DynaPolyActor dyna; - /* 0x15C */ s8 dangeonKeepObject; + /* 0x15C */ s8 dangeonKeepObjectSlot; /* 0x15E */ union { s16 reusedValue; // default name s16 unkValue15E; // passed to unk play func, mods player rotation, stepped to 0x2710 diff --git a/src/overlays/actors/ovl_En_Zod/z_en_zod.c b/src/overlays/actors/ovl_En_Zod/z_en_zod.c index 5d352e734..ab1f940ce 100644 --- a/src/overlays/actors/ovl_En_Zod/z_en_zod.c +++ b/src/overlays/actors/ovl_En_Zod/z_en_zod.c @@ -622,7 +622,7 @@ void EnZod_DrawDrums(EnZod* this, PlayState* play) { } void EnZod_Draw(Actor* thisx, PlayState* play) { - static TexturePtr sTijoEyesTextures[] = { &gTijoEyesOpen, &gTijoEyesHalfOpen, &gTijoEyesClosed }; + static TexturePtr sTijoEyesTextures[] = { &gTijoEyesOpenTex, &gTijoEyesHalfOpenTex, &gTijoEyesClosedTex }; EnZod* this = THIS; Gfx* gfx; diff --git a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c index ba4507b71..e7308c10d 100644 --- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c +++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c @@ -55,12 +55,12 @@ void ItemEtcetera_Init(Actor* thisx, PlayState* play) { s32 pad; ItemEtcetera* this = THIS; s32 type = ITEMETCETERA_GET_FF(&this->actor); - s32 objBankIndex = Object_GetSlot(&play->objectCtx, sObjectIds[type]); + s32 objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[type]); - if (objBankIndex < 0) { + if (objectSlot <= OBJECT_SLOT_NONE) { // assert on debug } else { - this->objIndex = objBankIndex; + this->objectSlot = objectSlot; } this->getItemDrawId = sGetItemDrawIds[type]; this->getItemId = sGetItemIds[type]; @@ -93,8 +93,8 @@ void ItemEtcetera_Destroy(Actor* thisx, PlayState* play) { } void ItemEtcetera_WaitForObject(ItemEtcetera* this, PlayState* play) { - if (Object_IsLoaded(&play->objectCtx, this->objIndex)) { - this->actor.objBankIndex = this->objIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; this->actor.draw = this->drawFunc; this->actionFunc = this->futureActionFunc; } diff --git a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h index 4ac893ba5..92cda8710 100644 --- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h +++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h @@ -32,7 +32,7 @@ typedef struct ItemEtcetera { /* 0x144 */ ItemEtceteraActionFunc futureActionFunc; /* 0x148 */ s16 getItemDrawId; /* 0x14A */ s16 getItemId; - /* 0x14C */ u8 objIndex; + /* 0x14C */ u8 objectSlot; /* 0x150 */ ActorFunc drawFunc; /* 0x154 */ ItemEtceteraActionFunc actionFunc; } ItemEtcetera; // size = 0x158 diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index 9e6531ef1..d5ec2917a 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -303,8 +303,8 @@ void func_809375C8(ObjBean* this, PlayState* play) { void func_809375F4(ObjBean* this, PlayState* play) { static Gfx* D_80939024[] = { - gKakeraLeafMiddle, - gKakeraLeafTip, + gKakeraLeafMiddleDL, + gKakeraLeafTipDL, }; Vec3f spC4; Vec3f spB8; diff --git a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c index be3d243e0..4227178e2 100644 --- a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c +++ b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c @@ -127,7 +127,7 @@ void func_8098CEAC(ObjComb* this, PlayState* play) { phi_v0 = 0x20; } EffectSsKakera_Spawn(play, &spD0, &spC4, &spD0, phi_s0, phi_v0, phi_s1, 4, 0, temp_f10, 0, 0, 60, -1, - OBJECT_COMB, object_comb_DL_001040); + OBJECT_COMB, gBeehiveFragmentDL); } spD0.x = this->actor.world.pos.x; @@ -185,7 +185,7 @@ void func_8098D19C(ObjComb* this, PlayState* play) { } EffectSsKakera_Spawn(play, &spD0, &spC4, &spD0, phi_s0, phi_v0, phi_s1, 4, 0, temp_f8, 0, 0, 60, -1, - OBJECT_COMB, object_comb_DL_001040); + OBJECT_COMB, gBeehiveFragmentDL); } spD0.x = this->actor.world.pos.x; @@ -236,7 +236,7 @@ void func_8098D47C(ObjComb* this, PlayState* play) { } EffectSsKakera_Spawn(play, &spC8, &spBC, &spC8, phi_s0, phi_v0, 40, 0, 0, temp_f10, 0, 0, 80, -1, OBJECT_COMB, - object_comb_DL_001040); + gBeehiveFragmentDL); } } @@ -566,7 +566,7 @@ void ObjComb_Draw(Actor* thisx, PlayState* play) { Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, object_comb_DL_000CB0); + gSPDisplayList(POLY_OPA_DISP++, gBeehiveDL); Collider_UpdateSpheres(0, &this->collider); diff --git a/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.c b/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.c index 069c4b89b..57bfa823c 100644 --- a/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.c +++ b/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.c @@ -52,7 +52,7 @@ static ColliderCylinderInit sCylinderInit = { { 20, 14, 0, { 0, 0, 0 } }, }; -static s16 objectIds[] = { +static s16 sObjectIds[] = { GAMEPLAY_KEEP, GAMEPLAY_KEEP, GAMEPLAY_KEEP, @@ -71,7 +71,7 @@ static f32 oscillationTable[] = { void ObjEtcetera_Init(Actor* thisx, PlayState* play) { s32 pad; ObjEtcetera* this = THIS; - s32 objectIndex; + s32 objectSlot; s32 type = DEKU_FLOWER_TYPE(&this->dyna.actor); s32 floorBgId; Vec3f pos; @@ -80,9 +80,9 @@ void ObjEtcetera_Init(Actor* thisx, PlayState* play) { type = DEKU_FLOWER_TYPE_PINK; } - objectIndex = Object_GetSlot(&play->objectCtx, objectIds[type]); - if (objectIndex >= 0) { - this->objIndex = objectIndex; + objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[type]); + if (objectSlot > OBJECT_SLOT_NONE) { + this->objectSlot = objectSlot; } pos.x = this->dyna.actor.world.pos.x; @@ -257,8 +257,8 @@ void ObjEtcetera_Setup(ObjEtcetera* this, PlayState* play) { type = DEKU_FLOWER_TYPE_PINK; } - if (Object_IsLoaded(&play->objectCtx, this->objIndex)) { - this->dyna.actor.objBankIndex = this->objIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->dyna.actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->dyna.actor); DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); thisCollisionHeader = collisionHeaders[type]; diff --git a/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.h b/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.h index 454e3f674..6c8734c85 100644 --- a/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.h +++ b/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.h @@ -28,7 +28,7 @@ typedef struct ObjEtcetera { /* 0x270 */ f32 bounceOscillationScale; /* 0x274 */ s16 oscillationTimer; /* 0x276 */ u16 burrowFlag; - /* 0x278 */ s8 objIndex; + /* 0x278 */ s8 objectSlot; /* 0x27C */ Gfx* dList; /* 0x280 */ ObjEtceteraActionFunc actionFunc; } ObjEtcetera; // size = 0x284 diff --git a/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c b/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c index a17f853df..a1ce45b82 100644 --- a/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c +++ b/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c @@ -1,7 +1,9 @@ /* * File: z_obj_grass.c * Overlay: ovl_Obj_Grass - * Description: "Master" instance of grass for unit spawned by Obj_Grass_Unit + * Description: Optimized manager for processing grass "spawned" by ObjGrassUnit + * + * Instances of ObjGrass must be spawned by ObjGrassUnit to function correctly. */ #include "prevent_bss_reordering.h" @@ -18,10 +20,10 @@ void ObjGrass_Destroy(Actor* thisx, PlayState* play); void ObjGrass_Update(Actor* thisx, PlayState* play); void ObjGrass_Draw(Actor* thisx, PlayState* play); -ObjGrassStruct1* D_809AADA0[4]; -f32 D_809AADB0[4]; -ObjGrassStruct1_1* D_809AADC0[20]; -f32 D_809AAE10[20]; +ObjGrassGroup* sNearestGrassGroups[OBJ_GRASS_NEAREST_GROUP_MAX]; +f32 sNearestGrassGroupsDist[OBJ_GRASS_NEAREST_GROUP_MAX]; +ObjGrassElement* sNearestGrassElements[OBJ_GRASS_NEAREST_ELEM_MAX]; +f32 sNearestGrassElementsDistSq[OBJ_GRASS_NEAREST_ELEM_MAX]; #include "overlays/ovl_Obj_Grass/ovl_Obj_Grass.c" @@ -57,35 +59,35 @@ static ColliderCylinderInit sCylinderInit = { { 6, 44, 0, { 0, 0, 0 } }, }; -Vec3f D_809AAB4C[] = { - { 0.0f, 0.707099974155f, 0.707099974155f }, - { 0.707099974155f, 0.707099974155f, 0.0f }, - { 0.0f, 0.707099974155f, -0.707099974155f }, - { -0.707099974155f, 0.707099974155f, 0.0f }, +static Vec3f sUnitDirections[] = { + { 0.0f, 0.7071f, 0.7071f }, + { 0.7071f, 0.7071f, 0.0f }, + { 0.0f, 0.7071f, -0.7071f }, + { -0.7071f, 0.7071f, 0.0f }, }; -s16 D_809AAB7C[] = { 0x6C, 0x66, 0x60, 0x54, 0x42, 0x37, 0x2A, 0x26 }; +static s16 sFragmentScales[] = { 108, 102, 96, 84, 66, 55, 42, 38 }; -s32 func_809A9110(PlayState* play, Vec3f* arg1) { - f32 sp2C; - Vec3f sp20; +s32 func_809A9110(PlayState* play, Vec3f* pos) { + f32 w; + Vec3f projectedPos; - SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, arg1, &sp20, &sp2C); + SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, pos, &projectedPos, &w); - if ((play->projectionMtxFDiagonal.z * -130.13191f) < sp20.z) { - if (sp2C < 1.0f) { - sp2C = 1.0f; + if ((play->projectionMtxFDiagonal.z * -130.13191f) < projectedPos.z) { + if (w < 1.0f) { + w = 1.0f; } - if (((fabsf(sp20.x) - (130.13191f * play->projectionMtxFDiagonal.x)) < sp2C) && - ((fabsf(sp20.y) - (130.13191f * play->projectionMtxFDiagonal.y)) < sp2C)) { + if (((fabsf(projectedPos.x) - (130.13191f * play->projectionMtxFDiagonal.x)) < w) && + ((fabsf(projectedPos.y) - (130.13191f * play->projectionMtxFDiagonal.y)) < w)) { return true; } } return false; } -void func_809A91FC(MtxF* matrix) { +void ObjGrass_OverrideMatrixCurrent(MtxF* matrix) { s32 i; MtxF* temp = Matrix_GetCurrent(); f32* tmp = &temp->xx; @@ -96,42 +98,44 @@ void func_809A91FC(MtxF* matrix) { } } -void func_809A92D0(ObjGrassStruct1_1* ptr, PlayState* play) { - if (!(ptr->unk_0E & 0x10)) { - Item_DropCollectibleRandom(play, NULL, &ptr->unk_00, ptr->unk_0E * 0x10); +void ObjGrass_DropCollectible(ObjGrassElement* grassElem, PlayState* play) { + if (!(grassElem->dropTable & 0x10)) { + Item_DropCollectibleRandom(play, NULL, &grassElem->pos, grassElem->dropTable * 0x10); } } -void func_809A9314(ObjGrassStruct1_1* ptr, PlayState* play) { - Vec3f spBC; - Vec3f spB0; +void ObjGrass_SpawnFragments(Vec3f* basePos, PlayState* play) { + Vec3f velocity; + Vec3f pos; s32 i; - Vec3f* ptr2; + Vec3f* dir; - for (i = 0; i < ARRAY_COUNT(D_809AAB4C); i++) { - ptr2 = &D_809AAB4C[i]; + for (i = 0; i < ARRAY_COUNT(sUnitDirections); i++) { + dir = &sUnitDirections[i]; - spB0.x = ptr->unk_00.x + (ptr2->x * 8.0f); - spB0.y = (ptr->unk_00.y + (ptr2->y * 8.0f)) + 10.0f; - spB0.z = ptr->unk_00.z + (ptr2->z * 8.0f); + pos.x = basePos->x + (dir->x * 8.0f); + pos.y = basePos->y + (dir->y * 8.0f) + 10.0f; + pos.z = basePos->z + (dir->z * 8.0f); - spBC.x = (Rand_ZeroOne() - 0.5f) * 8.0f; - spBC.y = Rand_ZeroOne() * 10.0f; - spBC.z = (Rand_ZeroOne() - 0.5f) * 8.0f; + velocity.x = (Rand_ZeroOne() - 0.5f) * 8.0f; + velocity.y = Rand_ZeroOne() * 10.0f; + velocity.z = (Rand_ZeroOne() - 0.5f) * 8.0f; - EffectSsKakera_Spawn(play, &spB0, &spBC, &spB0, -100, 64, 40, 3, 0, - D_809AAB7C[(s32)(Rand_ZeroOne() * 111.1f) & 7], 0, 0, 80, -1, 1, gKakeraLeafMiddle); + EffectSsKakera_Spawn(play, &pos, &velocity, &pos, -100, 64, 40, 3, 0, + sFragmentScales[(s32)(Rand_ZeroOne() * 111.1f) & 7], 0, 0, 80, -1, GAMEPLAY_KEEP, + gKakeraLeafMiddleDL); - spB0.x = ptr->unk_00.x + (ptr2->x * 16.0f); - spB0.y = (ptr->unk_00.y + (ptr2->y * 16.0f)) + 10.0f; - spB0.z = ptr->unk_00.z + (ptr2->z * 16.0f); + pos.x = basePos->x + (dir->x * 16.0f); + pos.y = basePos->y + (dir->y * 16.0f) + 10.0f; + pos.z = basePos->z + (dir->z * 16.0f); - spBC.x = (Rand_ZeroOne() - 0.5f) * 6.0f; - spBC.y = Rand_ZeroOne() * 10.0f; - spBC.z = (Rand_ZeroOne() - 0.5f) * 6.0f; + velocity.x = (Rand_ZeroOne() - 0.5f) * 6.0f; + velocity.y = Rand_ZeroOne() * 10.0f; + velocity.z = (Rand_ZeroOne() - 0.5f) * 6.0f; - EffectSsKakera_Spawn(play, &spB0, &spBC, &spB0, -100, 64, 40, 3, 0, - D_809AAB7C[(s32)(Rand_ZeroOne() * 111.1f) % 7], 0, 0, 80, -1, 1, gKakeraLeafTip); + EffectSsKakera_Spawn(play, &pos, &velocity, &pos, -100, 64, 40, 3, 0, + sFragmentScales[(s32)(Rand_ZeroOne() * 111.1f) % 7], 0, 0, 80, -1, GAMEPLAY_KEEP, + gKakeraLeafTipDL); } } @@ -141,9 +145,9 @@ void ObjGrass_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.4f); - for (i = 0; i < ARRAY_COUNT(this->unk_2948); i++) { - Collider_InitCylinder(play, &this->unk_2948[i].collider); - Collider_SetCylinder(play, &this->unk_2948[i].collider, &this->actor, &sCylinderInit); + for (i = 0; i < ARRAY_COUNT(this->grassElemColliders); i++) { + Collider_InitCylinder(play, &this->grassElemColliders[i].collider); + Collider_SetCylinder(play, &this->grassElemColliders[i].collider, &this->actor, &sCylinderInit); } this->actor.colChkInfo.mass = MASS_IMMOVABLE; @@ -158,117 +162,121 @@ void ObjGrass_Destroy(Actor* thisx, PlayState* play) { ObjGrass* this = THIS; s32 i; - for (i = 0; i < ARRAY_COUNT(this->unk_2948); i++) { - Collider_DestroyCylinder(play, &this->unk_2948[i].collider); + for (i = 0; i < ARRAY_COUNT(this->grassElemColliders); i++) { + Collider_DestroyCylinder(play, &this->grassElemColliders[i].collider); } - for (i = 0; i < ARRAY_COUNT(this->unk_3298); i++) { - ObjGrassCarry** ptr = &this->unk_3298[i]; + for (i = 0; i < ARRAY_COUNT(this->grassCarry); i++) { + ObjGrassCarry** grassCarry = &this->grassCarry[i]; - if (*ptr != NULL) { - (*ptr)->unk_190 = 0; - *ptr = NULL; + if (*grassCarry != NULL) { + (*grassCarry)->grassManager = NULL; + *grassCarry = NULL; } } } -void func_809A9790(ObjGrass* this, PlayState* play) { +void ObjGrass_ProcessColliders(ObjGrass* this, PlayState* play) { s32 i; - for (i = 0; i < ARRAY_COUNT(this->unk_2948); i++) { - ObjGrassStruct1_1* ptr = this->unk_2948[i].unk_4C; + for (i = 0; i < ARRAY_COUNT(this->grassElemColliders); i++) { + ObjGrassElement* grassElem = this->grassElemColliders[i].entity; - if ((ptr != NULL) && (this->unk_2948[i].collider.base.acFlags & AC_HIT)) { - func_809A9314(ptr, play); - func_809A92D0(ptr, play); - ptr->unk_0F |= 4; - SoundSource_PlaySfxAtFixedWorldPos(play, &ptr->unk_00, 20, NA_SE_EV_PLANT_BROKEN); + if ((grassElem != NULL) && (this->grassElemColliders[i].collider.base.acFlags & AC_HIT)) { + ObjGrass_SpawnFragments(&grassElem->pos, play); + ObjGrass_DropCollectible(grassElem, play); + grassElem->flags |= OBJ_GRASS_ELEM_REMOVED; + SoundSource_PlaySfxAtFixedWorldPos(play, &grassElem->pos, 20, NA_SE_EV_PLANT_BROKEN); } } } -void func_809A983C(ObjGrass* this, PlayState* play) { +void ObjGrass_UpdateGrass(ObjGrass* this, PlayState* play) { Player* player = GET_PLAYER(play); s32 i; s32 j; s32 x; s32 y; - f32 temp_f0; - ObjGrassStruct1* ptr; - ObjGrassStruct1_1* ptr2; - ObjGrassStruct2* ptr3; + f32 distSq; + ObjGrassGroup* grassGroup; s16 yaw; - for (i = 0; i < ARRAY_COUNT(D_809AADC0); i++) { - D_809AADC0[i] = NULL; - D_809AAE10[i] = 422500.0f; + for (i = 0; i < OBJ_GRASS_NEAREST_ELEM_MAX; i++) { + sNearestGrassElements[i] = NULL; + sNearestGrassElementsDistSq[i] = SQ(650.0f); } - for (i = 0; i < ARRAY_COUNT(D_809AADA0); i++) { - D_809AADA0[i] = NULL; - D_809AADB0[i] = 422500.0f; + for (i = 0; i < OBJ_GRASS_NEAREST_GROUP_MAX; i++) { + sNearestGrassGroups[i] = NULL; + sNearestGrassGroupsDist[i] = SQ(650.0f); } - for (i = 0; i < this->unk_2944; i++) { - ptr = &this->unk_144[i]; + for (i = 0; i < this->activeGrassGroups; i++) { + grassGroup = &this->grassGroups[i]; - for (j = 0; j < ptr->unk_FC; j++) { - ptr->unk_0C[j].unk_0F &= (u16)~2; + for (j = 0; j < grassGroup->count; j++) { + grassGroup->elements[j].flags &= (u16)~OBJ_GRASS_ELEM_ANIM; } } - for (i = 0; i < this->unk_2944; i++) { - ptr = &this->unk_144[i]; - temp_f0 = Math3D_Vec3fDistSq(&ptr->unk_00, &player->actor.world.pos); + for (i = 0; i < this->activeGrassGroups; i++) { + grassGroup = &this->grassGroups[i]; + distSq = Math3D_Vec3fDistSq(&grassGroup->homePos, &player->actor.world.pos); - for (j = 0; j < ARRAY_COUNT(D_809AADB0); j++) { - if (temp_f0 < D_809AADB0[j]) { + for (j = 0; j < OBJ_GRASS_NEAREST_GROUP_MAX; j++) { + if (distSq < sNearestGrassGroupsDist[j]) { break; } } - if (j < ARRAY_COUNT(D_809AADB0)) { - for (x = 2; x >= j; x--) { - D_809AADB0[x + 1] = D_809AADB0[x]; - D_809AADA0[x + 1] = D_809AADA0[x]; + if (j < OBJ_GRASS_NEAREST_GROUP_MAX) { + // Insert the grassGroup into the list + + // Shift each element under j that remains in the list down 1 + for (x = OBJ_GRASS_NEAREST_GROUP_MAX - 2; x >= j; x--) { + sNearestGrassGroupsDist[x + 1] = sNearestGrassGroupsDist[x]; + sNearestGrassGroups[x + 1] = sNearestGrassGroups[x]; } - D_809AADB0[j] = temp_f0; - D_809AADA0[j] = ptr; + sNearestGrassGroupsDist[j] = distSq; + sNearestGrassGroups[j] = grassGroup; } } - this->unk_3294 = NULL; + this->carryGrassElem = NULL; - for (i = 0; i < ARRAY_COUNT(D_809AADA0); i++) { - ptr = D_809AADA0[i]; + for (i = 0; i < OBJ_GRASS_NEAREST_GROUP_MAX; i++) { + grassGroup = sNearestGrassGroups[i]; - if (ptr != NULL) { - for (j = 0; j < ptr->unk_FC; j++) { - if (!(ptr->unk_0C[j].unk_0F & 4)) { - temp_f0 = Math3D_Vec3fDistSq(&ptr->unk_0C[j].unk_00, &player->actor.world.pos); + if (grassGroup != NULL) { + for (j = 0; j < grassGroup->count; j++) { + if (!(grassGroup->elements[j].flags & OBJ_GRASS_ELEM_REMOVED)) { + distSq = Math3D_Vec3fDistSq(&grassGroup->elements[j].pos, &player->actor.world.pos); - for (x = 0; x < ARRAY_COUNT(D_809AAE10); x++) { - if (temp_f0 < D_809AAE10[x]) { + for (x = 0; x < OBJ_GRASS_NEAREST_ELEM_MAX; x++) { + if (distSq < sNearestGrassElementsDistSq[x]) { break; } } - if (x < ARRAY_COUNT(D_809AAE10)) { - for (y = 18; y >= x; y--) { - D_809AAE10[y + 1] = D_809AAE10[y]; - D_809AADC0[y + 1] = D_809AADC0[y]; + if (x < OBJ_GRASS_NEAREST_ELEM_MAX) { + // Insert the GrassElement into the list + + // Shift each element under j that remains in the list down 1 + for (y = OBJ_GRASS_NEAREST_ELEM_MAX - 2; y >= x; y--) { + sNearestGrassElementsDistSq[y + 1] = sNearestGrassElementsDistSq[y]; + sNearestGrassElements[y + 1] = sNearestGrassElements[y]; } - D_809AAE10[x] = temp_f0; - D_809AADC0[x] = &ptr->unk_0C[j]; + sNearestGrassElementsDistSq[x] = distSq; + sNearestGrassElements[x] = &grassGroup->elements[j]; - if (temp_f0 < 2500.0f) { + if (distSq < SQ(50.0f)) { yaw = player->actor.shape.rot.y - - Math_Vec3f_Yaw(&player->actor.world.pos, &ptr->unk_0C[j].unk_00); + Math_Vec3f_Yaw(&player->actor.world.pos, &grassGroup->elements[j].pos); if (ABS_ALT(yaw) < 0x2000) { - this->unk_3294 = &ptr->unk_0C[j]; + this->carryGrassElem = &grassGroup->elements[j]; } } } @@ -277,28 +285,29 @@ void func_809A983C(ObjGrass* this, PlayState* play) { } } - for (i = 0; i < ARRAY_COUNT(this->unk_2948); i++) { - ptr3 = &this->unk_2948[i]; + for (i = 0; i < ARRAY_COUNT(this->grassElemColliders); i++) { + ObjGrassCollider* grassCol = &this->grassElemColliders[i]; + ObjGrassElement* grassElem; - ptr3->collider.base.acFlags &= (u16)~AC_HIT; - ptr3->collider.base.ocFlags1 &= (u16)~OC1_HIT; + grassCol->collider.base.acFlags &= (u16)~AC_HIT; + grassCol->collider.base.ocFlags1 &= (u16)~OC1_HIT; - ptr2 = D_809AADC0[i]; - if (ptr2 != NULL) { - ptr3->collider.dim.pos.x = ptr2->unk_00.x; - ptr3->collider.dim.pos.y = ptr2->unk_00.y; - ptr3->collider.dim.pos.z = ptr2->unk_00.z; - CollisionCheck_SetAC(play, &play->colChkCtx, &ptr3->collider.base); - CollisionCheck_SetOC(play, &play->colChkCtx, &ptr3->collider.base); - ptr2->unk_0F |= 2; - ptr3->unk_4C = ptr2; + grassElem = sNearestGrassElements[i]; + if (grassElem != NULL) { + grassCol->collider.dim.pos.x = grassElem->pos.x; + grassCol->collider.dim.pos.y = grassElem->pos.y; + grassCol->collider.dim.pos.z = grassElem->pos.z; + CollisionCheck_SetAC(play, &play->colChkCtx, &grassCol->collider.base); + CollisionCheck_SetOC(play, &play->colChkCtx, &grassCol->collider.base); + grassElem->flags |= OBJ_GRASS_ELEM_ANIM; + grassCol->entity = grassElem; } else { - ptr3->unk_4C = NULL; + grassCol->entity = NULL; } } } -void func_809A9DB8(ObjGrass* this) { +void ObjGrass_CalcAnimationMatrices(ObjGrass* this) { s32 i; s32 pad; f32* ptr; @@ -345,8 +354,8 @@ void func_809A9DB8(ObjGrass* this) { sp6C[6] = (temp_f26 - temp_f22) * temp_f22 * temp_f20 * temp_f16 * 0.0015f; sp6C[7] = (spA4 - temp_f20) * sp94 * sp90 * temp_f16 * 0.0015f; - for (i = 0; i < ARRAY_COUNT(this->unk_2F88); i++) { - ptr = &this->unk_2F88[i].mf[0][0]; + for (i = 0; i < ARRAY_COUNT(this->distortionMtx); i++) { + ptr = &this->distortionMtx[i].mf[0][0]; tempf1 = sp6C[(i + 0) & 7]; tempf2 = sp6C[(i + 1) & 7]; @@ -379,64 +388,65 @@ void func_809A9DB8(ObjGrass* this) { void ObjGrass_Update(Actor* thisx, PlayState* play) { ObjGrass* this = THIS; - func_809A9790(this, play); - func_809A983C(this, play); - func_809A9DB8(this); + ObjGrass_ProcessColliders(this, play); + ObjGrass_UpdateGrass(this, play); + ObjGrass_CalcAnimationMatrices(this); } -void func_809AA278(ObjGrass* this, PlayState* play) { - ObjGrassStruct1* ptr; - ObjGrassStruct1_1* ptr2; +void ObjGrass_InitDraw(ObjGrass* this, PlayState* play) { + ObjGrassGroup* grassGroup; + ObjGrassElement* grassElem; s32 i; s32 j; f32 distSq; - f32 temp_f22; + f32 eyeDist; - for (i = 0; i < this->unk_2944; i++) { - ptr = &this->unk_144[i]; + for (i = 0; i < this->activeGrassGroups; i++) { + grassGroup = &this->grassGroups[i]; - temp_f22 = Math3D_Vec3fDistSq(&ptr->unk_00, &GET_ACTIVE_CAM(play)->eye); + eyeDist = Math3D_Vec3fDistSq(&grassGroup->homePos, &GET_ACTIVE_CAM(play)->eye); - if ((temp_f22 < SQ(1280.0f)) && func_809A9110(play, &ptr->unk_00)) { - ptr->unk_FE |= 1; + if ((eyeDist < SQ(1280.0f)) && func_809A9110(play, &grassGroup->homePos)) { + grassGroup->flags |= OBJ_GRASS_GROUP_DRAW; - for (j = 0; j < ptr->unk_FC; j++) { - ptr2 = &ptr->unk_0C[j]; + for (j = 0; j < grassGroup->count; j++) { + grassElem = &grassGroup->elements[j]; - if (ptr2->unk_0F & 4) { - ptr2->unk_10 = 255; - ptr2->unk_0F &= ~1; + if (grassElem->flags & OBJ_GRASS_ELEM_REMOVED) { + grassElem->alpha = 255; + grassElem->flags &= ~OBJ_GRASS_ELEM_DRAW; } else { - ptr2->unk_0F |= 1; - if (temp_f22 < SQ(980.0f)) { - ptr2->unk_10 = 255; + grassElem->flags |= OBJ_GRASS_ELEM_DRAW; + if (eyeDist < SQ(980.0f)) { + grassElem->alpha = 255; } else { - distSq = Math3D_Vec3fDistSq(&ptr2->unk_00, &GET_ACTIVE_CAM(play)->eye); - if ((distSq <= SQ(1080.0f)) || ((ptr2->unk_0F & 8) && (distSq < SQ(1180.0f)))) { - ptr2->unk_10 = 255; + distSq = Math3D_Vec3fDistSq(&grassElem->pos, &GET_ACTIVE_CAM(play)->eye); + if ((distSq <= SQ(1080.0f)) || + ((grassElem->flags & OBJ_GRASS_ELEM_UNDERWATER) && (distSq < SQ(1180.0f)))) { + grassElem->alpha = 255; } else if (distSq >= SQ(1180.0f)) { - ptr2->unk_10 = 0; + grassElem->alpha = 0; } else { - ptr2->unk_10 = (1180.0f - sqrtf(distSq)) * 2.55f; + grassElem->alpha = (1180.0f - sqrtf(distSq)) * 2.55f; } } } } } else { - ptr->unk_FE &= ~1; + grassGroup->flags &= ~OBJ_GRASS_GROUP_DRAW; } } } -void func_809AA54C(Actor* thisx, PlayState* play2) { +void ObjGrass_DrawOpa(Actor* thisx, PlayState* play2) { ObjGrass* this = THIS; PlayState* play = play2; - Lights* temp_s0; - ObjGrassStruct1* ptr; + Lights* lights; + ObjGrassGroup* grassGroup; s32 i; s32 j; - Vec3s sp70 = { 0, 0, 0 }; - ObjGrassStruct1_1* ptr2; + Vec3s rot = { 0, 0, 0 }; + ObjGrassElement* grassElem; OPEN_DISPS(play->state.gfxCtx); @@ -445,23 +455,23 @@ void func_809AA54C(Actor* thisx, PlayState* play2) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); gSPDisplayList(POLY_OPA_DISP++, gObjGrass_D_809AA9F0); - for (i = 0; i < this->unk_2944; i++) { - ptr = &this->unk_144[i]; + for (i = 0; i < this->activeGrassGroups; i++) { + grassGroup = &this->grassGroups[i]; - if (ptr->unk_FE & 1) { - temp_s0 = LightContext_NewLights(&play->lightCtx, play->state.gfxCtx); - Lights_BindAll(temp_s0, play->lightCtx.listHead, &ptr->unk_00, play); - Lights_Draw(temp_s0, play->state.gfxCtx); + if (grassGroup->flags & OBJ_GRASS_GROUP_DRAW) { + lights = LightContext_NewLights(&play->lightCtx, play->state.gfxCtx); + Lights_BindAll(lights, play->lightCtx.listHead, &grassGroup->homePos, play); + Lights_Draw(lights, play->state.gfxCtx); - for (j = 0; j < ptr->unk_FC; j++) { - ptr2 = &ptr->unk_0C[j]; + for (j = 0; j < grassGroup->count; j++) { + grassElem = &grassGroup->elements[j]; - if ((ptr2->unk_0F & 1) && (ptr2->unk_10 == 255)) { - sp70.y = ptr2->unk_0C; - Matrix_SetTranslateRotateYXZ(ptr2->unk_00.x, ptr2->unk_00.y, ptr2->unk_00.z, &sp70); + if ((grassElem->flags & OBJ_GRASS_ELEM_DRAW) && (grassElem->alpha == 255)) { + rot.y = grassElem->rotY; + Matrix_SetTranslateRotateYXZ(grassElem->pos.x, grassElem->pos.y, grassElem->pos.z, &rot); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); - if (ptr2->unk_0F & 2) { - func_809A91FC(&this->unk_2F88[j]); + if (grassElem->flags & OBJ_GRASS_ELEM_ANIM) { + ObjGrass_OverrideMatrixCurrent(&this->distortionMtx[j]); } gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), @@ -475,13 +485,13 @@ void func_809AA54C(Actor* thisx, PlayState* play2) { CLOSE_DISPS(play->state.gfxCtx); } -void func_809AA798(Actor* thisx, PlayState* play) { +void ObjGrass_DrawXlu(Actor* thisx, PlayState* play) { ObjGrass* this = THIS; - ObjGrassStruct1* ptr; - ObjGrassStruct1_1* ptr2; + ObjGrassGroup* grassGroup; + ObjGrassElement* grassElem; s32 i; s32 j; - Vec3s sp6C = { 0, 0, 0 }; + Vec3s rot = { 0, 0, 0 }; OPEN_DISPS(play->state.gfxCtx); @@ -489,21 +499,21 @@ void func_809AA798(Actor* thisx, PlayState* play) { gSPDisplayList(POLY_XLU_DISP++, gObjGrass_D_809AAA68); - for (i = 0; i < this->unk_2944; i++) { - ptr = &this->unk_144[i]; + for (i = 0; i < this->activeGrassGroups; i++) { + grassGroup = &this->grassGroups[i]; - if (ptr->unk_FE & 1) { - for (j = 0; j < ptr->unk_FC; j++) { - ptr2 = &ptr->unk_0C[j]; + if (grassGroup->flags & OBJ_GRASS_GROUP_DRAW) { + for (j = 0; j < grassGroup->count; j++) { + grassElem = &grassGroup->elements[j]; - if ((ptr2->unk_0F & 1) && (ptr2->unk_10 > 0) && (ptr2->unk_10 < 255)) { - sp6C.y = ptr2->unk_0C; - Matrix_SetTranslateRotateYXZ(ptr2->unk_00.x, ptr2->unk_00.y, ptr2->unk_00.z, &sp6C); + if ((grassElem->flags & OBJ_GRASS_ELEM_DRAW) && (grassElem->alpha > 0) && (grassElem->alpha < 255)) { + rot.y = grassElem->rotY; + Matrix_SetTranslateRotateYXZ(grassElem->pos.x, grassElem->pos.y, grassElem->pos.z, &rot); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, ptr2->unk_10); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, grassElem->alpha); gSPDisplayList(POLY_XLU_DISP++, gObjGrass_D_809AAAE0); } } @@ -516,7 +526,7 @@ void func_809AA798(Actor* thisx, PlayState* play) { void ObjGrass_Draw(Actor* thisx, PlayState* play) { ObjGrass* this = THIS; - func_809AA278(this, play); - func_809AA54C(thisx, play); - func_809AA798(thisx, play); + ObjGrass_InitDraw(this, play); + ObjGrass_DrawOpa(thisx, play); + ObjGrass_DrawXlu(thisx, play); } diff --git a/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.h b/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.h index fffcdad4e..f3fb8705d 100644 --- a/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.h +++ b/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.h @@ -7,40 +7,52 @@ struct ObjGrass; struct ObjGrassCarry; -typedef struct ObjGrassStruct1_1 { - /* 0x00 */ Vec3f unk_00; - /* 0x0C */ s16 unk_0C; - /* 0x0E */ s8 unk_0E; - /* 0x0F */ u8 unk_0F; - /* 0x10 */ u8 unk_10; -} ObjGrassStruct1_1; // size = 0x14 +#define OBJ_GRASS_NEAREST_GROUP_MAX 4 +#define OBJ_GRASS_NEAREST_ELEM_MAX 20 + +#define OBJ_GRASS_GROUP_ELEM_COUNT_MAX 12 + +#define OBJ_GRASS_GROUP_DRAW 1 + +#define OBJ_GRASS_ELEM_DRAW 1 +#define OBJ_GRASS_ELEM_ANIM 2 +#define OBJ_GRASS_ELEM_REMOVED 4 +#define OBJ_GRASS_ELEM_UNDERWATER 8 + +typedef struct ObjGrassElement { + /* 0x00 */ Vec3f pos; + /* 0x0C */ s16 rotY; + /* 0x0E */ s8 dropTable; + /* 0x0F */ u8 flags; + /* 0x10 */ u8 alpha; +} ObjGrassElement; // size = 0x14 typedef struct { - /* 0x00 */ Vec3f unk_00; - /* 0x0C */ ObjGrassStruct1_1 unk_0C[12]; - /* 0xFC */ s16 unk_FC; - /* 0xFE */ u8 unk_FE; -} ObjGrassStruct1; // size = 0x100 + /* 0x00 */ Vec3f homePos; + /* 0x0C */ ObjGrassElement elements[OBJ_GRASS_GROUP_ELEM_COUNT_MAX]; + /* 0xFC */ s16 count; + /* 0xFE */ u8 flags; +} ObjGrassGroup; // size = 0x100 typedef struct { /* 0x00 */ ColliderCylinder collider; - /* 0x4C */ ObjGrassStruct1_1* unk_4C; -} ObjGrassStruct2; // size = 0x50 + /* 0x4C */ ObjGrassElement* entity; +} ObjGrassCollider; // size = 0x50 typedef struct ObjGrass { /* 0x0000 */ Actor actor; - /* 0x0144 */ ObjGrassStruct1 unk_144[40]; - /* 0x2944 */ s16 unk_2944; - /* 0x2948 */ ObjGrassStruct2 unk_2948[20]; - /* 0x2F88 */ MtxF unk_2F88[12]; + /* 0x0144 */ ObjGrassGroup grassGroups[40]; + /* 0x2944 */ s16 activeGrassGroups; + /* 0x2948 */ ObjGrassCollider grassElemColliders[OBJ_GRASS_NEAREST_ELEM_MAX]; + /* 0x2F88 */ MtxF distortionMtx[OBJ_GRASS_GROUP_ELEM_COUNT_MAX]; /* 0x3288 */ s16 unk_3288; /* 0x328A */ s16 unk_328A; /* 0x328C */ s16 unk_328C; /* 0x328E */ s16 unk_328E; /* 0x3290 */ s16 unk_3290; - /* 0x3292 */ s16 unk_3292; - /* 0x3294 */ ObjGrassStruct1_1* unk_3294; - /* 0x3298 */ struct ObjGrassCarry* unk_3298[2]; + /* 0x3292 */ s16 activeGrassCarry; + /* 0x3294 */ ObjGrassElement* carryGrassElem; + /* 0x3298 */ struct ObjGrassCarry* grassCarry[2]; } ObjGrass; // size = 0x32A0 #endif // Z_OBJ_GRASS_H diff --git a/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.c b/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.c index 795d740f1..4b9c424f4 100644 --- a/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.c +++ b/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.c @@ -17,17 +17,17 @@ void ObjGrassCarry_Init(Actor* thisx, PlayState* play); void ObjGrassCarry_Destroy(Actor* thisx, PlayState* play); void ObjGrassCarry_Update(Actor* thisx, PlayState* play); -void func_809AB3C4(ObjGrassCarry* this); -void func_809AB3D8(ObjGrassCarry* this, PlayState* play); -void func_809AB428(ObjGrassCarry* this); -void func_809AB43C(ObjGrassCarry* this, PlayState* play); -void func_809AB474(ObjGrassCarry* this); -void func_809AB4A8(ObjGrassCarry* this, PlayState* play); -void func_809AB5FC(ObjGrassCarry* this); -void func_809AB610(ObjGrassCarry* this, PlayState* play); -void func_809AB6FC(ObjGrassCarry* this); -void func_809AB77C(ObjGrassCarry* this, PlayState* play); -void func_809ABB7C(Actor* this, PlayState* play); +void ObjGrassCarry_SetupAwaitSpawnManager(ObjGrassCarry* this); +void ObjGrassCarry_AwaitSpawnManager(ObjGrassCarry* this, PlayState* play); +void ObjGrassCarry_SetupIdle(ObjGrassCarry* this); +void ObjGrassCarry_Idle(ObjGrassCarry* this, PlayState* play); +void ObjGrassCarry_Reset(ObjGrassCarry* this); +void ObjGrassCarry_Main(ObjGrassCarry* this, PlayState* play); +void ObjGrassCarry_SetupLiftedUp(ObjGrassCarry* this); +void ObjGrassCarry_LiftedUp(ObjGrassCarry* this, PlayState* play); +void ObjGrassCarry_SetupFall(ObjGrassCarry* this); +void ObjGrassCarry_Fall(ObjGrassCarry* this, PlayState* play); +void ObjGrassCarry_Draw(Actor* this, PlayState* play); ActorInit Obj_Grass_Carry_InitVars = { ACTOR_OBJ_GRASS_CARRY, @@ -61,19 +61,19 @@ static ColliderCylinderInit sCylinderInit = { { 10, 44, 0, { 0, 0, 0 } }, }; -s16 D_809ABBFC = 0; -s16 D_809ABC00 = 0; -s16 D_809ABC04 = 0; -s16 D_809ABC08 = 0; +static s16 sRotSpeedXTarget = 0; +static s16 sRotSpeedX = 0; +static s16 sRotSpeedYTarget = 0; +static s16 sRotSpeedY = 0; -Vec3f D_809ABC0C[] = { +static Vec3f sUnitDirections[] = { { 0.0f, 0.7071f, 0.7071f }, { 0.7071f, 0.7071f, 0.0f }, { 0.0f, 0.7071f, -0.7071f }, { -0.7071f, 0.7071f, 0.0f }, }; -s16 D_809ABC3C[] = { 0x6C, 0x66, 0x60, 0x54, 0x42, 0x37, 0x2A, 0x26 }; +static s16 sFragmentScales[] = { 108, 102, 96, 84, 66, 55, 42, 38 }; static InitChainEntry sInitChain[] = { ICHAIN_F32_DIV1000(gravity, -3200, ICHAIN_CONTINUE), @@ -81,69 +81,71 @@ static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 400, ICHAIN_STOP), }; -void func_809AAE60(ObjGrassCarry* this) { +void ObjGrassCarry_UpdateVelY(ObjGrassCarry* this) { this->actor.velocity.y += this->actor.gravity; if (this->actor.velocity.y < this->actor.terminalVelocity) { this->actor.velocity.y = this->actor.terminalVelocity; } } -void func_809AAE94(Vec3f* arg0, f32 arg1) { - arg1 += ((Rand_ZeroOne() * 0.2f) - 0.1f) * arg1; +void ObjGrassCarry_RandScaleVecToZero(Vec3f* velocity, f32 scale) { + scale += ((Rand_ZeroOne() * 0.2f) - 0.1f) * scale; - arg0->x -= (arg0->x * arg1); - arg0->y -= (arg0->y * arg1); - arg0->z -= (arg0->z * arg1); + velocity->x -= velocity->x * scale; + velocity->y -= velocity->y * scale; + velocity->z -= velocity->z * scale; } -void func_809AAF18(ObjGrassCarry* this) { - func_809AAE60(this); - func_809AAE94(&this->actor.velocity, 0.05f); +void ObjGrassCarry_UpdatePos(ObjGrassCarry* this) { + ObjGrassCarry_UpdateVelY(this); + ObjGrassCarry_RandScaleVecToZero(&this->actor.velocity, 0.05f); Actor_UpdatePos(&this->actor); } -void func_809AAF58(ObjGrassCarry* this, PlayState* play) { +void ObjGrassCarry_UpdateBgCheckInfo(ObjGrassCarry* this, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 7.5f, 35.0f, 0.0f, UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_4 | UPDBGCHECKINFO_FLAG_40 | UPDBGCHECKINFO_FLAG_80); } -void func_809AAF9C(Vec3f* arg0, s16 arg1, PlayState* play) { - if (!(arg1 & 0x10)) { - Item_DropCollectibleRandom(play, NULL, arg0, arg1 * 0x10); +void ObjGrassCarry_DropCollectible(Vec3f* pos, s16 dropTable, PlayState* play) { + if ((dropTable & 0x10) == 0) { + Item_DropCollectibleRandom(play, NULL, pos, dropTable * 0x10); } } -void func_809AAFE8(Vec3f* arg0, PlayState* play) { - Vec3f spBC; - Vec3f spB0; +void ObjGrassCarry_SpawnFragments(Vec3f* basePos, PlayState* play) { + Vec3f velocity; + Vec3f pos; s32 i; - Vec3f* ptr; + Vec3f* dir; - for (i = 0; i < ARRAY_COUNT(D_809ABC0C); i++) { - ptr = &D_809ABC0C[i]; + for (i = 0; i < ARRAY_COUNT(sUnitDirections); i++) { + dir = &sUnitDirections[i]; - spB0.x = arg0->x + (ptr->x * 8.0f); - spB0.y = arg0->y + (ptr->y * 8.0f) + 10.0f; - spB0.z = arg0->z + (ptr->z * 8.0f); + pos.x = basePos->x + (dir->x * 8.0f); + pos.y = basePos->y + (dir->y * 8.0f) + 10.0f; + pos.z = basePos->z + (dir->z * 8.0f); - spBC.x = (Rand_ZeroOne() - 0.5f) * 8.0f; - spBC.y = Rand_ZeroOne() * 10.0f; - spBC.z = (Rand_ZeroOne() - 0.5f) * 8.0f; + velocity.x = (Rand_ZeroOne() - 0.5f) * 8.0f; + velocity.y = Rand_ZeroOne() * 10.0f; + velocity.z = (Rand_ZeroOne() - 0.5f) * 8.0f; - EffectSsKakera_Spawn(play, &spB0, &spBC, &spB0, -100, 64, 40, 3, 0, - D_809ABC3C[(s32)(Rand_ZeroOne() * 111.1f) & 7], 0, 0, 80, -1, 1, gKakeraLeafMiddle); + EffectSsKakera_Spawn(play, &pos, &velocity, &pos, -100, 64, 40, 3, 0, + sFragmentScales[(s32)(Rand_ZeroOne() * 111.1f) & 7], 0, 0, 80, -1, GAMEPLAY_KEEP, + gKakeraLeafMiddleDL); - spB0.x = arg0->x + (ptr->x * 16.0f); - spB0.y = arg0->y + (ptr->y * 16.0f) + 10.0f; - spB0.z = arg0->z + (ptr->z * 16.0f); + pos.x = basePos->x + (dir->x * 16.0f); + pos.y = basePos->y + (dir->y * 16.0f) + 10.0f; + pos.z = basePos->z + (dir->z * 16.0f); - spBC.x = (Rand_ZeroOne() - 0.5f) * 6.0f; - spBC.y = Rand_ZeroOne() * 10.0f; - spBC.z = (Rand_ZeroOne() - 0.5f) * 6.0f; + velocity.x = (Rand_ZeroOne() - 0.5f) * 6.0f; + velocity.y = Rand_ZeroOne() * 10.0f; + velocity.z = (Rand_ZeroOne() - 0.5f) * 6.0f; - EffectSsKakera_Spawn(play, &spB0, &spBC, &spB0, -100, 64, 40, 3, 0, - D_809ABC3C[(s32)(Rand_ZeroOne() * 111.1f) % 7], 0, 0, 80, -1, 1, gKakeraLeafTip); + EffectSsKakera_Spawn(play, &pos, &velocity, &pos, -100, 64, 40, 3, 0, + sFragmentScales[(s32)(Rand_ZeroOne() * 111.1f) % 7], 0, 0, 80, -1, GAMEPLAY_KEEP, + gKakeraLeafTipDL); } } @@ -154,7 +156,7 @@ void ObjGrassCarry_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->actor.colChkInfo.mass = 80; - func_809AB3C4(this); + ObjGrassCarry_SetupAwaitSpawnManager(this); } void ObjGrassCarry_Destroy(Actor* thisx, PlayState* play) { @@ -162,73 +164,69 @@ void ObjGrassCarry_Destroy(Actor* thisx, PlayState* play) { Collider_DestroyCylinder(play, &this->collider); - if (this->unk_190 != NULL) { - ObjGrassCarry** carry = &this->unk_190->unk_3298[this->actor.params]; + if (this->grassManager != NULL) { + ObjGrassCarry** carry = &this->grassManager->grassCarry[this->actor.params]; if (this == *carry) { *carry = NULL; - this->unk_190 = NULL; + this->grassManager = NULL; } } } -void func_809AB3C4(ObjGrassCarry* this) { - this->actionFunc = func_809AB3D8; +void ObjGrassCarry_SetupAwaitSpawnManager(ObjGrassCarry* this) { + this->actionFunc = ObjGrassCarry_AwaitSpawnManager; } -void func_809AB3D8(ObjGrassCarry* this, PlayState* play) { - if (this->unk_190 != NULL) { - if (this->actor.params != this->unk_190->unk_3292) { - func_809AB474(this); +void ObjGrassCarry_AwaitSpawnManager(ObjGrassCarry* this, PlayState* play) { + if (this->grassManager != NULL) { + if (this->actor.params != this->grassManager->activeGrassCarry) { + ObjGrassCarry_Reset(this); } else { - func_809AB428(this); + ObjGrassCarry_SetupIdle(this); } } } -void func_809AB428(ObjGrassCarry* this) { - this->actionFunc = func_809AB43C; +void ObjGrassCarry_SetupIdle(ObjGrassCarry* this) { + this->actionFunc = ObjGrassCarry_Idle; } -void func_809AB43C(ObjGrassCarry* this, PlayState* play) { - if (this->actor.params != this->unk_190->unk_3292) { - func_809AB474(this); +void ObjGrassCarry_Idle(ObjGrassCarry* this, PlayState* play) { + if (this->actor.params != this->grassManager->activeGrassCarry) { + ObjGrassCarry_Reset(this); } } -void func_809AB474(ObjGrassCarry* this) { - this->actor.shape.rot.z = 0; - this->actionFunc = func_809AB4A8; - this->unk_194 = NULL; - this->actor.shape.rot.y = this->actor.shape.rot.z; - this->actor.shape.rot.x = this->actor.shape.rot.z; - this->actor.world.rot.z = this->actor.shape.rot.z; - this->actor.world.rot.y = this->actor.shape.rot.z; - this->actor.world.rot.x = this->actor.shape.rot.z; +void ObjGrassCarry_Reset(ObjGrassCarry* this) { + this->actionFunc = ObjGrassCarry_Main; + this->grassElem = NULL; + this->actor.world.rot.x = this->actor.world.rot.y = this->actor.world.rot.z = this->actor.shape.rot.x = + this->actor.shape.rot.y = this->actor.shape.rot.z = 0; } -void func_809AB4A8(ObjGrassCarry* this, PlayState* play) { +void ObjGrassCarry_Main(ObjGrassCarry* this, PlayState* play) { Actor* thisx = &this->actor; if (Actor_HasParent(thisx, play)) { - func_809AB5FC(this); - if (this->unk_194 != NULL) { - this->unk_194->unk_0F |= 4; + ObjGrassCarry_SetupLiftedUp(this); + if (this->grassElem != NULL) { + this->grassElem->flags |= OBJ_GRASS_ELEM_REMOVED; } - thisx->draw = func_809ABB7C; + thisx->draw = ObjGrassCarry_Draw; thisx->shape.shadowDraw = ActorShadow_DrawCircle; thisx->shape.shadowAlpha = 60; thisx->shape.shadowScale = 1.0f; - this->unk_190->unk_3292 ^= 1; + this->grassManager->activeGrassCarry ^= 1; thisx->room = -1; SoundSource_PlaySfxAtFixedWorldPos(play, &thisx->world.pos, 20, NA_SE_PL_PULL_UP_PLANT); - } else if (this->unk_190->unk_3294 != NULL) { + } else if (this->grassManager->carryGrassElem != NULL) { Player* player = GET_PLAYER(play); - this->unk_194 = this->unk_190->unk_3294; - Math_Vec3f_Copy(&thisx->world.pos, &this->unk_194->unk_00); - thisx->shape.rot.y = thisx->world.rot.y = this->unk_194->unk_0C; - this->unk_198 = this->unk_194->unk_0E; + this->grassElem = this->grassManager->carryGrassElem; + Math_Vec3f_Copy(&thisx->world.pos, &this->grassElem->pos); + thisx->shape.rot.y = thisx->world.rot.y = this->grassElem->rotY; + this->dropTable = this->grassElem->dropTable; thisx->xzDistToPlayer = Actor_WorldDistXZToActor(&this->actor, &player->actor); thisx->playerHeightRel = Actor_HeightDiff(&this->actor, &player->actor); thisx->xyzDistToPlayerSq = SQ(thisx->xzDistToPlayer) + SQ(thisx->playerHeightRel); @@ -237,87 +235,88 @@ void func_809AB4A8(ObjGrassCarry* this, PlayState* play) { } } -void func_809AB5FC(ObjGrassCarry* this) { - this->actionFunc = func_809AB610; +void ObjGrassCarry_SetupLiftedUp(ObjGrassCarry* this) { + this->actionFunc = ObjGrassCarry_LiftedUp; } -void func_809AB610(ObjGrassCarry* this, PlayState* play) { +void ObjGrassCarry_LiftedUp(ObjGrassCarry* this, PlayState* play) { s32 pad; - Vec3f sp30; - s32 sp2C; if (Actor_HasNoParent(&this->actor, play)) { - func_809AB6FC(this); + ObjGrassCarry_SetupFall(this); this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speed; this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speed; this->actor.gravity = -0.1f; this->actor.terminalVelocity = -17.0f; - func_809AAF18(this); - func_809AAF58(this, play); + ObjGrassCarry_UpdatePos(this); + ObjGrassCarry_UpdateBgCheckInfo(this, play); this->actor.gravity = -3.2f; } else { - sp30.x = this->actor.world.pos.x; - sp30.y = this->actor.world.pos.y + 20.0f; - sp30.z = this->actor.world.pos.z; + Vec3f pos; + s32 bgId; + + pos.x = this->actor.world.pos.x; + pos.y = this->actor.world.pos.y + 20.0f; + pos.z = this->actor.world.pos.z; this->actor.floorHeight = - BgCheck_EntityRaycastFloor5(&play->colCtx, &this->actor.floorPoly, &sp2C, &this->actor, &sp30); + BgCheck_EntityRaycastFloor5(&play->colCtx, &this->actor.floorPoly, &bgId, &this->actor, &pos); } } -void func_809AB6FC(ObjGrassCarry* this) { - this->actionFunc = func_809AB77C; - D_809ABBFC = -0xBB8; - D_809ABC04 = (Rand_ZeroOne() - 0.5f) * 1600.0f; - D_809ABC00 = 0; - D_809ABC08 = 0; - this->unk_19A = 60; +void ObjGrassCarry_SetupFall(ObjGrassCarry* this) { + this->actionFunc = ObjGrassCarry_Fall; + sRotSpeedXTarget = -0xBB8; + sRotSpeedYTarget = (Rand_ZeroOne() - 0.5f) * 1600.0f; + sRotSpeedX = 0; + sRotSpeedY = 0; + this->fallTimer = 60; } -void func_809AB77C(ObjGrassCarry* this, PlayState* play) { - s16 phi_s0; - s32 temp_v0 = (this->collider.base.atFlags & AT_HIT) != 0; - Vec3f sp5C; +void ObjGrassCarry_Fall(ObjGrassCarry* this, PlayState* play) { + s16 angle; + s32 atHit = (this->collider.base.atFlags & AT_HIT) != 0; + Vec3f pos; s32 i; - if (temp_v0) { + if (atHit) { this->collider.base.atFlags &= ~AT_HIT; } - this->unk_19A--; + this->fallTimer--; - if ((this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH | BGCHECKFLAG_WALL)) || temp_v0 || - (this->unk_19A <= 0)) { - func_809AAFE8(&this->actor.world.pos, play); - func_809AAF9C(&this->actor.world.pos, this->unk_198, play); + if ((this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH | BGCHECKFLAG_WALL)) || atHit || + (this->fallTimer <= 0)) { + ObjGrassCarry_SpawnFragments(&this->actor.world.pos, play); + ObjGrassCarry_DropCollectible(&this->actor.world.pos, this->dropTable, play); this->actor.draw = NULL; this->actor.shape.shadowDraw = NULL; - if (this->unk_190 != NULL) { - this->actor.room = this->unk_190->actor.room; + if (this->grassManager != NULL) { + this->actor.room = this->grassManager->actor.room; } if (!(this->actor.bgCheckFlags & BGCHECKFLAG_WATER)) { SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EV_PLANT_BROKEN); } - func_809AB428(this); + ObjGrassCarry_SetupIdle(this); return; } if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER_TOUCH) { - sp5C.y = this->actor.world.pos.y + this->actor.depthInWater; + pos.y = this->actor.world.pos.y + this->actor.depthInWater; - for (phi_s0 = 0, i = 0; i < 4; i++, phi_s0 += 0x4000) { - sp5C.x = (Math_SinS((s32)(Rand_ZeroOne() * 7200.0f) + phi_s0) * 15.0f) + this->actor.world.pos.x; - sp5C.z = (Math_CosS((s32)(Rand_ZeroOne() * 7200.0f) + phi_s0) * 15.0f) + this->actor.world.pos.z; - EffectSsGSplash_Spawn(play, &sp5C, NULL, NULL, 0, 190); + for (angle = 0, i = 0; i < 4; i++, angle += 0x4000) { + pos.x = (Math_SinS((s32)(Rand_ZeroOne() * 7200.0f) + angle) * 15.0f) + this->actor.world.pos.x; + pos.z = (Math_CosS((s32)(Rand_ZeroOne() * 7200.0f) + angle) * 15.0f) + this->actor.world.pos.z; + EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 0, 190); } - sp5C.x = this->actor.world.pos.x; - sp5C.z = this->actor.world.pos.z; + pos.x = this->actor.world.pos.x; + pos.z = this->actor.world.pos.z; - EffectSsGSplash_Spawn(play, &sp5C, NULL, NULL, 0, 280); - EffectSsGRipple_Spawn(play, &sp5C, 300, 700, 0); + EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 0, 280); + EffectSsGRipple_Spawn(play, &pos, 300, 700, 0); this->actor.terminalVelocity = -3.0f; this->actor.velocity.x *= 0.1f; @@ -325,20 +324,20 @@ void func_809AB77C(ObjGrassCarry* this, PlayState* play) { this->actor.velocity.z *= 0.1f; this->actor.gravity *= 0.5f; - D_809ABC00 = D_809ABC00 >> 1; - D_809ABBFC = D_809ABBFC >> 1; - D_809ABC08 = D_809ABC08 >> 1; - D_809ABC04 = D_809ABC04 >> 1; + sRotSpeedX >>= 1; + sRotSpeedXTarget >>= 1; + sRotSpeedY >>= 1; + sRotSpeedYTarget >>= 1; this->actor.bgCheckFlags &= ~BGCHECKFLAG_WATER_TOUCH; SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 40, NA_SE_EV_DIVE_INTO_WATER_L); } - Math_StepToS(&D_809ABC00, D_809ABBFC, 0x1F4); - Math_StepToS(&D_809ABC08, D_809ABC04, 0xAA); - this->actor.shape.rot.x += D_809ABC00; - this->actor.shape.rot.y += D_809ABC08; - func_809AAF18(this); - func_809AAF58(this, play); + Math_StepToS(&sRotSpeedX, sRotSpeedXTarget, 0x1F4); + Math_StepToS(&sRotSpeedY, sRotSpeedYTarget, 0xAA); + this->actor.shape.rot.x += sRotSpeedX; + this->actor.shape.rot.y += sRotSpeedY; + ObjGrassCarry_UpdatePos(this); + ObjGrassCarry_UpdateBgCheckInfo(this, play); Collider_UpdateCylinder(&this->actor, &this->collider); CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); @@ -348,8 +347,8 @@ void func_809AB77C(ObjGrassCarry* this, PlayState* play) { void ObjGrassCarry_Update(Actor* thisx, PlayState* play) { ObjGrassCarry* this = THIS; - if (this->unk_190 == NULL) { - if ((this->actionFunc != func_809AB610) && (this->actionFunc != func_809AB77C)) { + if (this->grassManager == NULL) { + if ((this->actionFunc != ObjGrassCarry_LiftedUp) && (this->actionFunc != ObjGrassCarry_Fall)) { Actor_Kill(&this->actor); return; } @@ -358,6 +357,6 @@ void ObjGrassCarry_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); } -void func_809ABB7C(Actor* this, PlayState* play) { +void ObjGrassCarry_Draw(Actor* this, PlayState* play) { Gfx_DrawDListOpa(play, gKusaBushType1DL); } diff --git a/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.h b/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.h index fa870305e..3f20ea1c1 100644 --- a/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.h +++ b/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.h @@ -5,17 +5,17 @@ struct ObjGrassCarry; struct ObjGrass; -struct ObjGrassStruct1_1; +struct ObjGrassElement; typedef void (*ObjGrassCarryActionFunc)(struct ObjGrassCarry*, PlayState*); typedef struct ObjGrassCarry { /* 0x000 */ Actor actor; /* 0x144 */ ColliderCylinder collider; - /* 0x190 */ struct ObjGrass* unk_190; - /* 0x194 */ struct ObjGrassStruct1_1* unk_194; - /* 0x198 */ s16 unk_198; - /* 0x19A */ s16 unk_19A; + /* 0x190 */ struct ObjGrass* grassManager; + /* 0x194 */ struct ObjGrassElement* grassElem; + /* 0x198 */ s16 dropTable; + /* 0x19A */ s16 fallTimer; /* 0x19C */ ObjGrassCarryActionFunc actionFunc; } ObjGrassCarry; // size = 0x1A0 diff --git a/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.c b/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.c index c57ed608f..dfb5d0527 100644 --- a/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.c +++ b/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.c @@ -1,38 +1,168 @@ /* * File: z_obj_grass_unit.c * Overlay: ovl_Obj_Grass_Unit - * Description: Spawner for circular patch of grass + * Description: Initializes a pattern of grass to be passed to an ObjGrass instance. + * + * ObjGrassUnit instances are intended to be spawned from room data so that just one ObjGrass instance manages the grass + * for that room. When a room with ObjGrassUnit spawns loads, it allocates ovl_Obj_Grass_Unit and creates N instances of + * ObjGrassUnit. The first instance processed initializes sGrassManager, then all instances live on that cycle pass type + * and position data to that ObjGrass instance before calling Actor_Kill. Since ovl_Obj_Grass_Unit uses + * ALLOCTYPE_NORMAL, it is deleted and loses the reference to the newly created ObjGrass. This allows for ObjGrassUnit + * spawned in a different room to be associated to a new ObjGrass instance. */ #include "z_obj_grass_unit.h" +#include "overlays/actors/ovl_Obj_Grass/z_obj_grass.h" +#include "overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.h" #define FLAGS 0x00000000 #define THIS ((ObjGrassUnit*)thisx) -void ObjGrassUnit_Init(Actor* thisx, PlayState* play); +void ObjGrassUnit_Init(Actor* this, PlayState* play2); -#if 0 ActorInit Obj_Grass_Unit_InitVars = { - ACTOR_OBJ_GRASS_UNIT, - ACTORCAT_BG, - FLAGS, - GAMEPLAY_FIELD_KEEP, - sizeof(ObjGrassUnit), - (ActorFunc)ObjGrassUnit_Init, - (ActorFunc)Actor_Noop, - (ActorFunc)Actor_Noop, - (ActorFunc)NULL, + ACTOR_OBJ_GRASS_UNIT, ACTORCAT_BG, FLAGS, + GAMEPLAY_FIELD_KEEP, sizeof(ObjGrassUnit), (ActorFunc)ObjGrassUnit_Init, + (ActorFunc)Actor_Noop, (ActorFunc)Actor_Noop, (ActorFunc)NULL, }; -#endif +// Neat circular pattern with a single bush in the center +static VecPolar sGrassPatternCircle[] = { + { 0.0f, 0x0000 }, { 80.0f, 0x0000 }, { 80.0f, 0x2000 }, { 80.0f, 0x4000 }, { 80.0f, 0x6000 }, + { 80.0f, 0x8000 }, { 80.0f, 0xA000 }, { 80.0f, 0xC000 }, { 80.0f, 0xE000 }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Grass_Unit/func_809ABDE0.s") +// "Random" looking pattern +static VecPolar sGrassPatternMixed[] = { + { 40.0f, 0x0666 }, { 40.0f, 0x2CCC }, { 40.0f, 0x5999 }, { 40.0f, 0x8667 }, { 20.0f, 0xC000 }, { 80.0f, 0x1333 }, + { 80.0f, 0x4000 }, { 80.0f, 0x6CCC }, { 80.0f, 0x9334 }, { 80.0f, 0xACCD }, { 80.0f, 0xC667 }, { 60.0f, 0xE000 }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Grass_Unit/func_809ABE54.s") +typedef struct { + /* 0x0 */ s32 count; + /* 0x4 */ VecPolar* positions; +} ObjGrassUnitPattern; // size = 0x8 -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Grass_Unit/func_809ABEC4.s") +static ObjGrassUnitPattern sGrassPatterns[2] = { + { ARRAY_COUNT(sGrassPatternCircle), sGrassPatternCircle }, + { ARRAY_COUNT(sGrassPatternMixed), sGrassPatternMixed }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Grass_Unit/func_809ABF38.s") +ObjGrass* sGrassManager = NULL; +ObjGrassCarry* sGrassCarry0 = NULL; +ObjGrassCarry* sGrassCarry1 = NULL; +s32 sInitialized = false; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Grass_Unit/ObjGrassUnit_Init.s") +s32 ObjGrassUnit_SpawnObjGrass(Actor* this, PlayState* play) { + sGrassManager = (ObjGrass*)Actor_Spawn(&play->actorCtx, play, ACTOR_OBJ_GRASS, 0.0f, 0.0f, 0.0f, 0, 0, 0, -1); + if (sGrassManager != NULL) { + sGrassManager->actor.room = this->room; + return true; + } + return false; +} + +s32 ObjGrassUnit_SpawnObjGrassCarry0(Actor* this, PlayState* play) { + sGrassCarry0 = + (ObjGrassCarry*)Actor_Spawn(&play->actorCtx, play, ACTOR_OBJ_GRASS_CARRY, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0); + if (sGrassCarry0 != NULL) { + sGrassCarry0->actor.room = this->room; + return true; + } + return false; +} + +s32 ObjGrassUnit_SpawnObjGrassCarry1(Actor* this, PlayState* play) { + sGrassCarry1 = + (ObjGrassCarry*)Actor_Spawn(&play->actorCtx, play, ACTOR_OBJ_GRASS_CARRY, 0.0f, 0.0f, 0.0f, 0, 0, 0, 1); + if (sGrassCarry1 != NULL) { + sGrassCarry1->actor.room = this->room; + return true; + } + return false; +} + +s32 ObjGrassUnit_IsUnderwater(PlayState* play, Vec3f* pos) { + WaterBox* waterBox; + f32 ySurface; + s32 bgId; + + if (WaterBox_GetSurfaceImpl(play, &play->colCtx, pos->x, pos->z, &ySurface, &waterBox, &bgId) && + (pos->y < ySurface)) { + return true; + } + return false; +} + +void ObjGrassUnit_Init(Actor* this, PlayState* play2) { + PlayState* play = play2; + ObjGrassGroup* grassGroup; + ObjGrass* grassManager; + f32 homePosYSum; + f32 tmp; + s32 i; + VecPolar* grassPos; + CollisionPoly* poly; + s32 bgId; + ObjGrassElement* grassElem; + ObjGrassUnitPattern* grassPattern; + s8 dropTable = OBJGRASSUNIT_GET_DROPTABLE(this); + + if ((sGrassManager == NULL) && !ObjGrassUnit_SpawnObjGrass(this, play)) { + Actor_Kill(this); + return; + } + if ((sGrassCarry0 == NULL) && ObjGrassUnit_SpawnObjGrassCarry0(this, play)) { + sGrassCarry0->grassManager = sGrassManager; + } + if ((sGrassCarry1 == NULL) && ObjGrassUnit_SpawnObjGrassCarry1(this, play)) { + sGrassCarry1->grassManager = sGrassManager; + } + if (!sInitialized && (sGrassManager != NULL) && (sGrassCarry0 != NULL) && (sGrassCarry1 != NULL)) { + sInitialized = true; + sGrassManager->grassCarry[0] = sGrassCarry0; + sGrassManager->grassCarry[1] = sGrassCarry1; + sGrassCarry0->grassManager = sGrassManager; + sGrassCarry1->grassManager = sGrassManager; + } + + grassManager = sGrassManager; + if (sGrassManager->activeGrassGroups >= ARRAY_COUNT(sGrassManager->grassGroups)) { + Actor_Kill(this); + return; + } + + homePosYSum = 0.0f; + grassGroup = &grassManager->grassGroups[sGrassManager->activeGrassGroups]; + grassGroup->count = 0; + grassPattern = &sGrassPatterns[OBJGRASSUNIT_GET_PATTERN(this)]; + + for (i = 0; i < grassPattern->count; i++) { + grassElem = &grassGroup->elements[grassGroup->count]; + grassPos = &grassPattern->positions[i]; + + grassElem->pos.x = (Math_CosS((this->home.rot.y + grassPos->angle)) * grassPos->distance) + this->home.pos.x; + grassElem->pos.y = this->home.pos.y + 100.0f; + grassElem->pos.z = (Math_SinS((this->home.rot.y + grassPos->angle)) * grassPos->distance) + this->home.pos.z; + + grassElem->pos.y = BgCheck_EntityRaycastFloor5(&play->colCtx, &poly, &bgId, this, &grassElem->pos); + tmp = grassElem->pos.y - this->home.pos.y; + if ((fabsf(tmp) < 80.0f) && (grassElem->pos.y > BGCHECK_Y_MIN)) { + grassGroup->count++; + grassElem->rotY = (s16)(Rand_Next() >> 0x10); + grassElem->dropTable = dropTable; + if (ObjGrassUnit_IsUnderwater(play, &grassElem->pos)) { + grassElem->flags |= OBJ_GRASS_ELEM_UNDERWATER; + } + homePosYSum += grassElem->pos.y; + } + } + if (grassGroup->count > 0) { + grassManager->activeGrassGroups++; + grassGroup->homePos.x = this->home.pos.x; + grassGroup->homePos.y = (homePosYSum / grassGroup->count); + grassGroup->homePos.z = this->home.pos.z; + } + Actor_Kill(this); +} diff --git a/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.h b/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.h index 58a8a427a..7c24d1e58 100644 --- a/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.h +++ b/src/overlays/actors/ovl_Obj_Grass_Unit/z_obj_grass_unit.h @@ -3,6 +3,9 @@ #include "global.h" +#define OBJGRASSUNIT_GET_DROPTABLE(thisx) (((thisx)->params >> 8) & 0x1F) +#define OBJGRASSUNIT_GET_PATTERN(thisx) ((thisx)->params & 1) + struct ObjGrassUnit; typedef struct ObjGrassUnit { diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c index 93c79efa6..3885041fd 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c @@ -68,7 +68,7 @@ static ColliderCylinderInit sCylinderInit = { { 15, 30, 0, { 0, 0, 0 } }, }; -static s16 sObjectIdList[] = { GAMEPLAY_DANGEON_KEEP, OBJECT_KIBAKO }; +static s16 sObjectIds[] = { GAMEPLAY_DANGEON_KEEP, OBJECT_KIBAKO }; static Gfx* sKakeraDisplayLists[] = { gameplay_dangeon_keep_DL_007980, gSmallCrateFragmentDL }; @@ -135,12 +135,12 @@ void func_80926394(ObjKibako* this, PlayState* play) { void ObjKibako_Init(Actor* thisx, PlayState* play2) { PlayState* play = play2; ObjKibako* this = THIS; - s32 whichBankIndex; + s32 objectIndex; - whichBankIndex = KIBAKO_BANK_INDEX(thisx); + objectIndex = KIBAKO_BANK_INDEX(thisx); Actor_ProcessInitChain(&this->actor, sInitChain); Actor_SetScale(&this->actor, 0.15f); - if (whichBankIndex == 0) { + if (objectIndex == 0) { this->actor.uncullZoneForward = 4000.0f; } else { this->actor.uncullZoneForward = 800.0f; @@ -149,8 +149,8 @@ void ObjKibako_Init(Actor* thisx, PlayState* play2) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); Collider_UpdateCylinder(&this->actor, &this->collider); this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->bankIndex = Object_GetSlot(&play->objectCtx, sObjectIdList[whichBankIndex]); - if (this->bankIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[objectIndex]); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -197,7 +197,7 @@ void ObjKibako_AirBreak(ObjKibako* this, PlayState* play) { } EffectSsKakera_Spawn(play, &pos, &velocity, worldPos, -200, phi_s0, 20, 0, 0, (Rand_ZeroOne() * 38.0f) + 10.0f, - 0, 0, 60, -1, sObjectIdList[KIBAKO_BANK_INDEX(&this->actor)], + 0, 0, 60, -1, sObjectIds[KIBAKO_BANK_INDEX(&this->actor)], sKakeraDisplayLists[KIBAKO_BANK_INDEX(&this->actor)]); } @@ -241,7 +241,7 @@ void ObjKibako_WaterBreak(ObjKibako* this, PlayState* play) { phi_s0 = (temp_rand < 0.2f) ? 0x40 : 0x20; EffectSsKakera_Spawn(play, &pos, &velocity, worldPos, -180, phi_s0, 50, 5, 0, (Rand_ZeroOne() * 35.0f) + 10.0f, - 0, 0, 70, -1, sObjectIdList[KIBAKO_BANK_INDEX(&this->actor)], + 0, 0, 70, -1, sObjectIds[KIBAKO_BANK_INDEX(&this->actor)], sKakeraDisplayLists[KIBAKO_BANK_INDEX(&this->actor)]); } } @@ -254,9 +254,9 @@ void func_80926B54(ObjKibako* this, PlayState* play) { Actor_MoveWithGravity(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 18.0f, 15.0f, 0.0f, UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_4 | UPDBGCHECKINFO_FLAG_40); - if (Object_IsLoaded(&play->objectCtx, this->bankIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { this->actor.draw = ObjKibako_Draw; - this->actor.objBankIndex = this->bankIndex; + this->actor.objectSlot = this->objectSlot; ObjKibako_SetupIdle(this); } } diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h index 102dd1e1b..274a335d4 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.h @@ -17,7 +17,7 @@ typedef struct ObjKibako { /* 0x144 */ ObjKibakoActionFunc actionFunc; /* 0x148 */ ColliderCylinder collider; /* 0x194 */ s16 timer; - /* 0x196 */ s16 bankIndex; + /* 0x196 */ s16 objectSlot; /* 0x198 */ s8 isDropCollected; /* 0x199 */ s8 unk199; /* room? */ } ObjKibako; // size = 0x19C diff --git a/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c b/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c index 00f5e9957..94937b164 100644 --- a/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c +++ b/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c @@ -42,7 +42,7 @@ void ObjKzsaku_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->dyna.actor, 1.0f); DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); - CollisionHeader_GetVirtual(&object_kzsaku_Colheader_001118, &col); + CollisionHeader_GetVirtual(&gUnderwaterGrateCol, &col); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, col); @@ -124,7 +124,7 @@ void ObjKzsaku_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL25_Opa(play->state.gfxCtx); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, object_kzsaku_DL_000040); + gSPDisplayList(POLY_OPA_DISP++, gUnderwaterGrateDL); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c b/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c index 90feb9634..28ead0679 100644 --- a/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c +++ b/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c @@ -98,7 +98,7 @@ void ObjLightblock_Init(Actor* thisx, PlayState* play) { return; } - DynaPolyActor_LoadMesh(play, &this->dyna, &object_lightblock_Colheader_000B80); + DynaPolyActor_LoadMesh(play, &this->dyna, &gSunBlockCol); Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &sCylinderInit); Collider_UpdateCylinder(&this->dyna.actor, &this->collider); this->collider.dim.radius = typeVars->radius; @@ -200,13 +200,13 @@ void ObjLightblock_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_XLU_DISP++, 0x08, D_801AEF88); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, this->alpha); - gSPDisplayList(POLY_XLU_DISP++, object_lightblock_DL_000178); + gSPDisplayList(POLY_XLU_DISP++, gSunBlockDL); } else { Gfx_SetupDL25_Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, D_801AEFA0); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0x80, 255, 255, 255, 255); - gSPDisplayList(POLY_OPA_DISP++, object_lightblock_DL_000178); + gSPDisplayList(POLY_OPA_DISP++, gSunBlockDL); } CLOSE_DISPS(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c b/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c index fdedd55a1..a4259857a 100644 --- a/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c +++ b/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c @@ -49,7 +49,7 @@ static InitChainEntry sInitChain[] = { ICHAIN_U8(targetMode, TARGET_MODE_0, ICHAIN_STOP), }; -s16 D_80BA34B8[] = { OBJECT_SECOM_OBJ, OBJECT_GI_MSSA, OBJECT_SECOM_OBJ, OBJECT_SECOM_OBJ }; +static s16 sObjectIds[] = { OBJECT_SECOM_OBJ, OBJECT_GI_MSSA, OBJECT_SECOM_OBJ, OBJECT_SECOM_OBJ }; Vec3f D_80BA34C0 = { 0.0f, 0.0f, -1110.0f }; @@ -93,15 +93,15 @@ void ObjNozoki_Destroy(Actor* thisx, PlayState* play) { } void func_80BA2514(ObjNozoki* this, PlayState* play) { - s32 sp24 = Object_GetSlot(&play->objectCtx, D_80BA34B8[this->unk_15C]); + s32 objectSlot = Object_GetSlot(&play->objectCtx, sObjectIds[this->unk_15C]); - if (sp24 < 0) { + if (objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->dyna.actor); return; } - if (Object_IsLoaded(&play->objectCtx, sp24)) { - this->dyna.actor.objBankIndex = sp24; + if (Object_IsLoaded(&play->objectCtx, objectSlot)) { + this->dyna.actor.objectSlot = objectSlot; this->dyna.actor.draw = ObjNozoki_Draw; if (this->unk_15C == 0) { diff --git a/src/overlays/actors/ovl_Obj_Purify/z_obj_purify.c b/src/overlays/actors/ovl_Obj_Purify/z_obj_purify.c index d8b04684b..9be9106d6 100644 --- a/src/overlays/actors/ovl_Obj_Purify/z_obj_purify.c +++ b/src/overlays/actors/ovl_Obj_Purify/z_obj_purify.c @@ -130,8 +130,8 @@ void ObjPurify_Init(Actor* thisx, PlayState* play) { if (sp20 == 1) { DynaPolyActor_Init(&this->dyna, 0); } - this->objIndex = Object_GetSlot(&play->objectCtx, info->objectId); - if (this->objIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, info->objectId); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->dyna.actor); } else if (sp20 == 0) { func_80A84EAC(this); @@ -158,10 +158,10 @@ void func_80A84EC0(ObjPurify* this, PlayState* play) { s32 sp28; s32 index; - if (Object_IsLoaded(&play->objectCtx, this->objIndex)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { sp28 = OBJPURIFY_GET_UNK_FLAG(&this->dyna.actor); index = OBJPURIFY_GET_INFO_INDEX(&this->dyna.actor); - this->dyna.actor.objBankIndex = this->objIndex; + this->dyna.actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->dyna.actor); if (sp28 == 1) { DynaPolyActor_LoadMesh(play, &this->dyna, sObjPurifyInfo[index].colHeader); diff --git a/src/overlays/actors/ovl_Obj_Purify/z_obj_purify.h b/src/overlays/actors/ovl_Obj_Purify/z_obj_purify.h index 2651bf049..cea8c6e9a 100644 --- a/src/overlays/actors/ovl_Obj_Purify/z_obj_purify.h +++ b/src/overlays/actors/ovl_Obj_Purify/z_obj_purify.h @@ -12,7 +12,7 @@ typedef struct ObjPurify { /* 0x15C */ ObjPurifyActionFunc actionFunc; /* 0x160 */ s32 gfxIndex; /* 0x164 */ s16 timer; - /* 0x166 */ s16 objIndex; + /* 0x166 */ s16 objectSlot; /* 0x168 */ f32 unk168[2]; } ObjPurify; // size = 0x170 diff --git a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c index e89b6cd7f..478991a86 100644 --- a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c +++ b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c @@ -41,7 +41,7 @@ s16 D_809A4050[] = { 1, -1, 0, 0 }; s16 D_809A4058[] = { 0, 0, 1, -1 }; typedef struct { - /* 0x0 */ s16 unk_00; + /* 0x0 */ s16 objectId; /* 0x4 */ CollisionHeader* unk_04; /* 0x8 */ Gfx* unk_08; } ObjPzlblockStruct; // size = 0xC @@ -207,7 +207,7 @@ void ObjPzlblock_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); - this->unk_17A = Object_GetSlot(&play->objectCtx, sp24->unk_00); + this->objectSlot = Object_GetSlot(&play->objectCtx, sp24->objectId); if (sp28 == 0) { func_809A3D1C(this); @@ -330,10 +330,10 @@ void ObjPzlblock_Update(Actor* thisx, PlayState* play) { this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y; Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 15.0f, 30.0f, 0.0f, UPDBGCHECKINFO_FLAG_4); - if (Object_IsLoaded(&play->objectCtx, this->unk_17A)) { + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { ObjPzlblockStruct* sp2C = &D_809A4060[OBJPZLBLOCK_GET_1000(&this->dyna.actor)]; - this->dyna.actor.objBankIndex = this->unk_17A; + this->dyna.actor.objectSlot = this->objectSlot; Actor_SetObjectDependency(play, &this->dyna.actor); DynaPolyActor_LoadMesh(play, &this->dyna, sp2C->unk_04); this->dyna.actor.update = func_809A3E58; diff --git a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h index a6c205fb3..9f235ced1 100644 --- a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h +++ b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h @@ -22,7 +22,7 @@ typedef struct ObjPzlblock { /* 0x16E */ s16 unk_16E[4]; /* 0x176 */ s16 unk_176; /* 0x178 */ s16 unk_178; - /* 0x17A */ s8 unk_17A; + /* 0x17A */ s8 objectSlot; } ObjPzlblock; // size = 0x17C #endif // Z_OBJ_PZLBLOCK_H diff --git a/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c b/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c index 70a4e7022..7f8d87ca4 100644 --- a/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c +++ b/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c @@ -835,9 +835,9 @@ void ObjTokeidai_Clock_Draw(Actor* thisx, PlayState* play) { gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); if (OBJ_TOKEIDAI_TYPE(&this->actor) == OBJ_TOKEIDAI_TYPE_WALL_CLOCK || OBJ_TOKEIDAI_TYPE(&this->actor) == OBJ_TOKEIDAI_TYPE_SMALL_WALL_CLOCK) { - gSPDisplayList(POLY_OPA_DISP++, gWallClockClockFace); + gSPDisplayList(POLY_OPA_DISP++, gWallClockClockFaceDL); } else { - gSPDisplayList(POLY_OPA_DISP++, gClockTowerClockFace); + gSPDisplayList(POLY_OPA_DISP++, gClockTowerClockFaceDL); } Matrix_Translate(0.0f, -1112.0f, -19.6f, MTXMODE_APPLY); diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index 1a316dfab..bdfc48aa8 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -54,7 +54,7 @@ ActorInit Obj_Tsubo_InitVars = { }; typedef struct { - /* 0x00 */ s16 objId; + /* 0x00 */ s16 objectId; /* 0x04 */ f32 scale; /* 0x08 */ Gfx* modelDL; /* 0x0C */ Gfx* shardDL; @@ -186,8 +186,8 @@ void ObjTsubo_Init(Actor* thisx, PlayState* play) { this->cylinderCollider.dim.radius = sPotTypeData[type].radius; this->cylinderCollider.dim.height = sPotTypeData[type].height; this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->objBankIndex = Object_GetSlot(&play->objectCtx, sPotTypeData[type].objId); - if (this->objBankIndex < 0) { + this->objectSlot = Object_GetSlot(&play->objectCtx, sPotTypeData[type].objectId); + if (this->objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } @@ -246,7 +246,7 @@ void ObjTsubo_PotBreak1(ObjTsubo* this, PlayState* play) { } scale = Rand_ZeroOne() * 110.0f + 15.0f; EffectSsKakera_Spawn(play, &pos, &vel, &this->actor.world.pos, -260, phi_s0, 20, 0, 0, scale, 0, 0, 50, -1, - typeData->objId, typeData->shardDL); + typeData->objectId, typeData->shardDL); } func_800BBFB0(play, &this->actor.world.pos, 30.0f, 2, 20, 50, true); func_800BBFB0(play, &this->actor.world.pos, 30.0f, 2, 10, 80, true); @@ -285,7 +285,7 @@ void ObjTsubo_MagicPotBreak1(ObjTsubo* this, PlayState* play) { } scale = Rand_ZeroOne() * 160.0f + 15.0f; EffectSsKakera_Spawn(play, &pos, &vel, &this->actor.world.pos, -340, phi_s0, 20, 0, 0, scale, 0, 0, 50, -1, - typeData->objId, typeData->shardDL); + typeData->objectId, typeData->shardDL); } func_800BBFB0(play, &this->actor.world.pos, 50.0f, 2, 40, 50, true); func_800BBFB0(play, &this->actor.world.pos, 50.0f, 2, 20, 80, true); @@ -330,8 +330,8 @@ void ObjTsubo_PotBreak2(ObjTsubo* this, PlayState* play2) { phi_s0 = 0x20; } scale = Rand_ZeroOne() * 105.0f + 10.0f; - EffectSsKakera_Spawn(play, &pos, &vel, worldPos, -170, phi_s0, 50, 5, 0, scale, 0, 0, 70, -1, typeData->objId, - typeData->shardDL); + EffectSsKakera_Spawn(play, &pos, &vel, worldPos, -170, phi_s0, 50, 5, 0, scale, 0, 0, 70, -1, + typeData->objectId, typeData->shardDL); } } @@ -375,8 +375,8 @@ void ObjTsubo_MagicPotBreak2(ObjTsubo* this, PlayState* play2) { phi_s0 = 0xA0; } scale = (Rand_ZeroOne() * 150.0f) + 10.0f; - EffectSsKakera_Spawn(play, &pos, &vel, worldPos, -170, phi_s0, 50, 5, 0, scale, 0, 0, 70, -1, typeData->objId, - typeData->shardDL); + EffectSsKakera_Spawn(play, &pos, &vel, worldPos, -170, phi_s0, 50, 5, 0, scale, 0, 0, 70, -1, + typeData->objectId, typeData->shardDL); } } @@ -412,7 +412,7 @@ void ObjTsubo_PotBreak3(ObjTsubo* this, PlayState* play2) { phi_s0 = 0x20; } EffectSsKakera_Spawn(play, &pos, &vel, &this->actor.world.pos, -170, phi_s0, 50, 3, 0, - (Rand_ZeroOne() * 105.0f) + 10.0f, 0, 0, 70, -1, typeData->objId, typeData->shardDL); + (Rand_ZeroOne() * 105.0f) + 10.0f, 0, 0, 70, -1, typeData->objectId, typeData->shardDL); } for (i = 0; i < 7; i++) { EffectSsBubble_Spawn(play, &this->actor.world.pos, 20.0f, 30.0f, 40.0f, (Rand_ZeroOne() * 0.06f) + 0.09f); @@ -430,8 +430,8 @@ void func_80928914(ObjTsubo* this) { void func_80928928(ObjTsubo* this, PlayState* play) { Actor_MoveWithGravity(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 15.0f, 15.0f, 0.0f, UPDBGCHECKINFO_FLAG_4 | UPDBGCHECKINFO_FLAG_40); - if (Object_IsLoaded(&play->objectCtx, this->objBankIndex)) { - this->actor.objBankIndex = this->objBankIndex; + if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) { + this->actor.objectSlot = this->objectSlot; func_809289B4(this); } } diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h index 2b3d1537f..b78f5ec0f 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h @@ -26,7 +26,7 @@ typedef struct ObjTsubo { /* 0x196 */ s8 homeRoom; /* 0x197 */ s8 unk_197; /* 0x198 */ s8 unk_198; - /* 0x199 */ s8 objBankIndex; + /* 0x199 */ s8 objectSlot; /* 0x19A */ s8 unk_19A; /* 0x19B */ u8 unk_19B; } ObjTsubo; // size = 0x19C diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 7857441ed..eff3968da 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -3342,7 +3342,7 @@ void Player_InitItemAction_SpawnHookshot(PlayState* play, Player* this) { return; } armsHook = (ArmsHook*)this->heldActor; - armsHook->actor.objBankIndex = this->actor.objBankIndex; + armsHook->actor.objectSlot = this->actor.objectSlot; armsHook->unk_208 = this->transformation; } @@ -9917,7 +9917,7 @@ s32 func_8083F8A8(PlayState* play, Player* this, f32 radius, s32 countMax, f32 r velocity.y = Rand_ZeroFloat(2.0f); velocity.z = Rand_CenteredFloat(3.0f); D_8085D288.y = -0.1f; - EffectSsHahen_Spawn(play, &pos, &velocity, &D_8085D288, 0, 0x96, 1, 0x10, gKakeraLeafTip); + EffectSsHahen_Spawn(play, &pos, &velocity, &D_8085D288, 0, 0x96, 1, 0x10, gKakeraLeafTipDL); } } @@ -10634,7 +10634,7 @@ Vec3f D_8085D340 = { 0.0f, 50.0f, 0.0f }; void Player_Init(Actor* thisx, PlayState* play) { s32 pad; Player* this = THIS; - s8 objBankIndex; + s8 objectSlot; s32 respawnFlag; s32 var_a1; PlayerInitMode initMode; @@ -10661,9 +10661,9 @@ void Player_Init(Actor* thisx, PlayState* play) { if (this->actor.shape.rot.x != 0) { this->transformation = this->actor.shape.rot.x - 1; - objBankIndex = Object_GetSlot(&play->objectCtx, gPlayerFormObjectIndices[this->transformation]); - this->actor.objBankIndex = objBankIndex; - if (objBankIndex < 0) { + objectSlot = Object_GetSlot(&play->objectCtx, gPlayerFormObjectIds[this->transformation]); + this->actor.objectSlot = objectSlot; + if (objectSlot <= OBJECT_SLOT_NONE) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/effects/ovl_Effect_En_Ice_Block/z_eff_en_ice_block.c b/src/overlays/effects/ovl_Effect_En_Ice_Block/z_eff_en_ice_block.c index a7161d37e..fffd5b1d9 100644 --- a/src/overlays/effects/ovl_Effect_En_Ice_Block/z_eff_en_ice_block.c +++ b/src/overlays/effects/ovl_Effect_En_Ice_Block/z_eff_en_ice_block.c @@ -19,14 +19,14 @@ EffectSsInit Effect_En_Ice_Block_InitVars = { EffectEnIceBlock_Init, }; -#define rObjId regs[0] +#define rObjectSlot regs[0] #define rScale regs[1] #define rRot regs[2] #define rRotVel regs[3] u32 EffectEnIceBlock_CheckIceBlockObject(EffectSs* this, PlayState* play) { - if (((this->rObjId = Object_GetSlot(&play->objectCtx, OBJECT_ICE_BLOCK)) < 0) || - (!Object_IsLoaded(&play->objectCtx, this->rObjId))) { + if (((this->rObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_ICE_BLOCK)) <= OBJECT_SLOT_NONE) || + (!Object_IsLoaded(&play->objectCtx, this->rObjectSlot))) { this->life = -1; this->draw = NULL; return false; @@ -63,7 +63,7 @@ void EffectEnIceBlock_Draw(PlayState* play, u32 index, EffectSs* this) { OPEN_DISPS(gfxCtx); gSPSegment(POLY_XLU_DISP++, 0x06, - play->objectCtx.slots[this->rObjId].segment); // object: OBJECT_ICE_BLOCK + play->objectCtx.slots[this->rObjectSlot].segment); // object: OBJECT_ICE_BLOCK Gfx_SetupDL25_Xlu(play->state.gfxCtx); Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); diff --git a/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c b/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c index 5febef413..0cc62b42d 100644 --- a/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c @@ -13,7 +13,7 @@ #define rAlphaStep regs[6] #define rFadeDelay regs[7] #define rScaleStep regs[8] -#define rObjectIndex regs[9] +#define rObjectSlot regs[9] #define PARAMS ((EffectSsDFireInitParams*)initParamsx) @@ -29,8 +29,8 @@ EffectSsInit Effect_Ss_D_Fire_InitVars = { static TexturePtr sFireTextures[] = { gDodongoFire0Tex, gDodongoFire1Tex, gDodongoFire2Tex, gDodongoFire3Tex }; s32 EffectSsDFire_CheckForObject(EffectSs* this, PlayState* play) { - if (((this->rObjectIndex = Object_GetSlot(&play->objectCtx, OBJECT_DODONGO)) < 0) || - !Object_IsLoaded(&play->objectCtx, this->rObjectIndex)) { + if (((this->rObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_DODONGO)) <= OBJECT_SLOT_NONE) || + !Object_IsLoaded(&play->objectCtx, this->rObjectSlot)) { this->life = -1; this->draw = NULL; return false; @@ -65,16 +65,16 @@ u32 EffectSsDFire_Init(PlayState* play, u32 index, EffectSs* this, void* initPar void EffectSsDFire_Draw(PlayState* play, u32 index, EffectSs* this) { GraphicsContext* gfxCtx = play->state.gfxCtx; s32 pad; - void* object; + void* objectPtr; f32 scale; if (EffectSsDFire_CheckForObject(this, play)) { - object = play->objectCtx.slots[this->rObjectIndex].segment; + objectPtr = play->objectCtx.slots[this->rObjectSlot].segment; OPEN_DISPS(gfxCtx); - gSegments[6] = VIRTUAL_TO_PHYSICAL(object); - gSPSegment(POLY_XLU_DISP++, 0x06, object); + gSegments[6] = VIRTUAL_TO_PHYSICAL(objectPtr); + gSPSegment(POLY_XLU_DISP++, 0x06, objectPtr); scale = this->rScale / 100.0f; diff --git a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c index e15e58f25..f8b20175b 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c +++ b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c @@ -23,7 +23,7 @@ EffectSsInit Effect_Ss_Extra_InitVars = { static TexturePtr sPointTextures[] = { gYabusamePoint30Tex, gYabusamePoint60Tex, gYabusamePoint100Tex }; -#define rObjId regs[0] +#define rObjectSlot regs[0] #define rTimer regs[1] #define rScoreIndex regs[2] #define rScale regs[3] @@ -31,13 +31,13 @@ static TexturePtr sPointTextures[] = { gYabusamePoint30Tex, gYabusamePoint60Tex, u32 EffectSsExtra_Init(PlayState* play, u32 index, EffectSs* this, void* initParamsx) { s32 pad; EffectSsExtraInitParams* params = PARAMS; - s32 objIndex; + s32 objectSlot; - objIndex = Object_GetSlot(&play->objectCtx, OBJECT_YABUSAME_POINT); - if ((objIndex >= 0) && (Object_IsLoaded(&play->objectCtx, objIndex))) { + objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_YABUSAME_POINT); + if ((objectSlot > OBJECT_SLOT_NONE) && (Object_IsLoaded(&play->objectCtx, objectSlot))) { void* segBackup = gSegments[6]; - gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objIndex].segment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment); this->pos = params->pos; this->velocity = params->velocity; @@ -48,7 +48,7 @@ u32 EffectSsExtra_Init(PlayState* play, u32 index, EffectSs* this, void* initPar this->rScoreIndex = params->scoreIndex; this->rScale = params->scale; this->rTimer = 5; - this->rObjId = objIndex; + this->rObjectSlot = objectSlot; gSegments[6] = segBackup; return 1; @@ -59,16 +59,16 @@ u32 EffectSsExtra_Init(PlayState* play, u32 index, EffectSs* this, void* initPar void EffectSsExtra_Draw(PlayState* play, u32 index, EffectSs* this) { s32 pad; f32 scale; - void* storedSegment; + void* objectPtr; scale = this->rScale / 100.0f; - storedSegment = play->objectCtx.slots[this->rObjId].segment; + objectPtr = play->objectCtx.slots[this->rObjectSlot].segment; OPEN_DISPS(play->state.gfxCtx); - gSegments[6] = VIRTUAL_TO_PHYSICAL(storedSegment); + gSegments[6] = VIRTUAL_TO_PHYSICAL(objectPtr); - gSPSegment(POLY_XLU_DISP++, 0x06, storedSegment); + gSPSegment(POLY_XLU_DISP++, 0x06, objectPtr); Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); diff --git a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c index 828570685..521b6db54 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c +++ b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c @@ -11,8 +11,8 @@ #define rYaw regs[1] #define rFlags regs[2] #define rScale regs[3] -#define rObjId regs[4] -#define rObjBankIndex regs[5] +#define rObjectId regs[4] +#define rObjectSlot regs[5] #define rMinLife regs[6] #define PARAMS ((EffectSsHahenInitParams*)initParamsx) @@ -27,8 +27,8 @@ EffectSsInit Effect_Ss_Hahen_InitVars = { }; void EffectSsHahen_CheckForObject(EffectSs* this, PlayState* play) { - if (((this->rObjBankIndex = Object_GetSlot(&play->objectCtx, this->rObjId)) < 0) || - !Object_IsLoaded(&play->objectCtx, this->rObjBankIndex)) { + if (((this->rObjectSlot = Object_GetSlot(&play->objectCtx, this->rObjectId)) <= OBJECT_SLOT_NONE) || + !Object_IsLoaded(&play->objectCtx, this->rObjectSlot)) { this->life = -1; this->draw = NULL; } @@ -44,11 +44,11 @@ u32 EffectSsHahen_Init(PlayState* play, u32 index, EffectSs* this, void* initPar if (initParams->dList != NULL) { this->gfx = initParams->dList; - this->rObjId = initParams->objId; + this->rObjectId = initParams->objectId; EffectSsHahen_CheckForObject(this, play); } else { this->gfx = gEffFragments1DL; - this->rObjId = HAHEN_OBJECT_DEFAULT; + this->rObjectId = HAHEN_OBJECT_DEFAULT; } this->draw = EffectSsHahen_Draw; @@ -68,8 +68,8 @@ void EffectSsHahen_DrawOpa(PlayState* play, EffectSs* this) { OPEN_DISPS(gfxCtx); - if (this->rObjId != HAHEN_OBJECT_DEFAULT) { - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->rObjBankIndex].segment); + if (this->rObjectId != HAHEN_OBJECT_DEFAULT) { + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->rObjectSlot].segment); } gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); Gfx_SetupDL25_Opa(play->state.gfxCtx); @@ -84,8 +84,8 @@ void EffectSsHahen_DrawXlu(PlayState* play, EffectSs* this) { OPEN_DISPS(gfxCtx); - if (this->rObjId != -1) { - gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[this->rObjBankIndex].segment); + if (this->rObjectId != -1) { + gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[this->rObjectSlot].segment); } gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); Gfx_SetupDL25_Xlu(play->state.gfxCtx); @@ -125,7 +125,7 @@ void EffectSsHahen_Update(PlayState* play, u32 index, EffectSs* this) { this->life = 0; } - if (this->rObjId != HAHEN_OBJECT_DEFAULT) { + if (this->rObjectId != HAHEN_OBJECT_DEFAULT) { EffectSsHahen_CheckForObject(this, play); } } diff --git a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h index d962bf55f..5fc6303d4 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h +++ b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h @@ -15,7 +15,7 @@ typedef struct { /* 0x24 */ Gfx* dList; /* 0x28 */ s16 flags; /* 0x2A */ s16 scale; - /* 0x2C */ s16 objId; + /* 0x2C */ s16 objectId; /* 0x2C */ s16 life; } EffectSsHahenInitParams; // size = 0x30 diff --git a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c index bde2227d2..7c3bcd0ad 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c +++ b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c @@ -17,8 +17,8 @@ #define rScale regs[7] #define rReg8 regs[8] #define rReg9 regs[9] -#define rObjId regs[10] -#define rObjBankIndex regs[11] +#define rObjectId regs[10] +#define rObjectSlot regs[11] #define rColorIndex regs[12] #define PARAMS ((EffectSsKakeraInitParams*)initParamsx) @@ -51,14 +51,14 @@ u32 EffectSsKakera_Init(PlayState* play, u32 index, EffectSs* this, void* initPa this->priority = 101; if (initParams->dList != NULL) { this->gfx = initParams->dList; - switch (initParams->objId) { + switch (initParams->objectId) { case GAMEPLAY_KEEP: case GAMEPLAY_FIELD_KEEP: case GAMEPLAY_DANGEON_KEEP: - this->rObjId = KAKERA_OBJECT_DEFAULT; + this->rObjectId = KAKERA_OBJECT_DEFAULT; break; default: - this->rObjId = initParams->objId; + this->rObjectId = initParams->objectId; EffectSsKakera_CheckForObject(this, play); break; } @@ -93,11 +93,11 @@ void EffectSsKakera_Draw(PlayState* play, u32 index, EffectSs* this) { s32 colorIndex = this->rColorIndex; OPEN_DISPS(gfxCtx); - if (this->rObjId != KAKERA_OBJECT_DEFAULT) { + if (this->rObjectId != KAKERA_OBJECT_DEFAULT) { if ((((this->rReg4 >> 7) & 1) << 7) == 0x80) { - gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[this->rObjBankIndex].segment); + gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[this->rObjectSlot].segment); } else { - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->rObjBankIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->rObjectSlot].segment); } } @@ -127,8 +127,8 @@ void EffectSsKakera_Draw(PlayState* play, u32 index, EffectSs* this) { } void EffectSsKakera_CheckForObject(EffectSs* this, PlayState* play) { - this->rObjBankIndex = Object_GetSlot(&play->objectCtx, this->rObjId); - if ((this->rObjBankIndex < 0) || (!Object_IsLoaded(&play->objectCtx, this->rObjBankIndex))) { + this->rObjectSlot = Object_GetSlot(&play->objectCtx, this->rObjectId); + if ((this->rObjectSlot <= OBJECT_SLOT_NONE) || (!Object_IsLoaded(&play->objectCtx, this->rObjectSlot))) { this->life = 0; this->draw = NULL; } @@ -369,7 +369,7 @@ void EffectSsKakera_Update(PlayState* play, u32 index, EffectSs* this) { this->life = 0; } func_8097E7E0(this, play); - if (this->rObjId != KAKERA_OBJECT_DEFAULT) { + if (this->rObjectId != KAKERA_OBJECT_DEFAULT) { EffectSsKakera_CheckForObject(this, play); } } diff --git a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h index d55a683cd..f2e5a609c 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h +++ b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h @@ -30,7 +30,7 @@ typedef struct { /* 0x32 */ s16 unk_32; /* 0x34 */ s32 life; /* 0x38 */ s16 colorIdx; - /* 0x3A */ s16 objId; + /* 0x3A */ s16 objectId; /* 0x3C */ Gfx* dList; } EffectSsKakeraInitParams; // size = 0x40 diff --git a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c index fcdca875f..f3de09474 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c +++ b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c @@ -7,7 +7,7 @@ #include "z_eff_ss_stick.h" #include "objects/gameplay_keep/gameplay_keep.h" -#define rObjBankIndex regs[0] +#define rObjectSlot regs[0] #define rYaw regs[1] #define PARAMS ((EffectSsStickInitParams*)initParamsx) @@ -25,7 +25,7 @@ u32 EffectSsStick_Init(PlayState* play, u32 index, EffectSs* this, void* initPar EffectSsStickInitParams* initParams = PARAMS; Vec3f pos; - this->rObjBankIndex = Object_GetSlot(&play->objectCtx, GAMEPLAY_KEEP); + this->rObjectSlot = Object_GetSlot(&play->objectCtx, GAMEPLAY_KEEP); pos = initParams->pos; this->pos = pos; this->vec = pos; @@ -51,7 +51,7 @@ void EffectSsStick_Draw(PlayState* play, u32 index, EffectSs* this) { Matrix_RotateZYX(0, this->rYaw, 0, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); Gfx_SetupDL25_Opa(gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->rObjBankIndex].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[this->rObjectSlot].segment); gSPSegment(POLY_OPA_DISP++, 0x0C, gCullBackDList); gSPDisplayList(POLY_OPA_DISP++, gDekuStickDL); diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 01175ebea..b46d8e90b 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -2688,7 +2688,7 @@ 0x8013D768:("SubS_MoveActorToPoint",), 0x8013D83C:("SubS_GetDistSqAndOrientPath",), 0x8013D8DC:("SubS_IsObjectLoaded",), - 0x8013D924:("SubS_GetObjectIndex",), + 0x8013D924:("SubS_GetObjectSlot",), 0x8013D960:("SubS_FindActor",), 0x8013D9C8:("SubS_UpdateFidgetTables",), 0x8013DB90:("SubS_IsFloorAbove",), @@ -9607,7 +9607,7 @@ 0x80A0CC88:("EnSob1_GetGoodbye",), 0x80A0CCEC:("EnSob1_BombShopkeeper_EndInteraction",), 0x80A0CD48:("EnSob1_SpawnShopItems",), - 0x80A0CE10:("EnSob1_GetObjIndices",), + 0x80A0CE10:("EnSob1_GetObjectIndices",), 0x80A0CED4:("EnSob1_Init",), 0x80A0D008:("EnSob1_Destroy",), 0x80A0D034:("EnSob1_UpdateCursorPos",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 8ad6f3476..4551abf38 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -1308,7 +1308,7 @@ 0x801C2650:("naviQuestHintFiles","RomFile","[2]",0x10), 0x801C2660:("sceneTextureFiles","RomFile","[9]",0x48), 0x801C26A8:("sSceneCmdHandlers","scene_header_func","[31]",0x7c), - 0x801C2730:("gPlayerFormObjectIndices","s16","[5]",0xA), + 0x801C2730:("gPlayerFormObjectIds","s16","[5]",0xA), 0x801C273C:("gObjectTableSize","ObjectId","",0x4), 0x801C2740:("gObjectTable","RomFile","[643]",0x1418), 0x801C3B60:("sSceneDrawDefaultDL","Gfx","[11]",0x58), @@ -5388,7 +5388,7 @@ 0x80867784:("D_80867784","UNK_TYPE1","",0x1), 0x8086778C:("D_8086778C","UNK_PTR","",0x4), 0x8086780C:("En_Door_InitVars","UNK_TYPE1","",0x1), - 0x8086782C:("sObjInfo","UNK_TYPE2","",0x126), + 0x8086782C:("sObjectInfo","UNK_TYPE2","",0x126), 0x80867954:("sInitChain","UNK_TYPE1","",0x1), 0x80867964:("sAnimations","AnimationHeader","[10]",0x28), 0x8086798C:("sAnimOpenFrames","u8","[10]",0x10), @@ -6600,7 +6600,7 @@ 0x808CD5E8:("D_808CD5E8","f32","",0x4), 0x808CE290:("Demo_Effect_InitVars","UNK_TYPE1","",0x1), 0x808CE2B0:("D_808CE2B0","UNK_TYPE4","",0x4), - 0x808CE2C0:("sEffectTypeObjects","s16","",0x12), + 0x808CE2C0:("sEffectTypeObjectIds","s16","",0x12), 0x808CE2D4:("sAlphaTypes","u8","",0x15), 0x808CE2F0:("jtbl_808CE2F0","UNK_PTR","",0x4), 0x808CE314:("D_808CE314","f32","",0x4), @@ -12682,7 +12682,7 @@ 0x80AC1E04:("D_80AC1E04","f32","",0x4), 0x80AC2580:("En_Door_Etc_InitVars","UNK_TYPE1","",0x1), 0x80AC25A0:("sCylinderInit","UNK_TYPE1","",0x1), - 0x80AC25CC:("sObjInfo","UNK_TYPE2","",0x2), + 0x80AC25CC:("sObjectInfo","UNK_TYPE2","",0x2), 0x80AC2634:("sInitChain","UNK_TYPE1","",0x1), 0x80AC2650:("D_80AC2650","f32","",0x4), 0x80AC4510:("En_Bigokuta_InitVars","UNK_TYPE1","",0x1), diff --git a/tools/namefixer.py b/tools/namefixer.py index 12ff471aa..ea6d5e19e 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -781,7 +781,8 @@ wordReplace = { "func_8013AED4": "SubS_SetOfferMode", "SubS_UpdateFlags": "SubS_SetOfferMode", "func_8013D8DC": "SubS_IsObjectLoaded", - "func_8013D924": "SubS_GetObjectIndex", + "func_8013D924": "SubS_GetObjectSlot", + "SubS_GetObjectIndex": "SubS_GetObjectSlot", "func_8013D5E8": "SubS_AngleDiffLessEqual", "func_8013DCE0": "SubS_ActorPathing_Init", "func_8013DE04": "SubS_ActorPathing_Update", diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index b1fafd756..9243bb341 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -2202,7 +2202,7 @@ asm/non_matchings/code/z_sub_s/SubS_GetDistSqAndOrientPoints.s,SubS_GetDistSqAnd asm/non_matchings/code/z_sub_s/SubS_MoveActorToPoint.s,SubS_MoveActorToPoint,0x8013D768,0x35 asm/non_matchings/code/z_sub_s/SubS_GetDistSqAndOrientPath.s,SubS_GetDistSqAndOrientPath,0x8013D83C,0x28 asm/non_matchings/code/z_sub_s/SubS_IsObjectLoaded.s,SubS_IsObjectLoaded,0x8013D8DC,0x12 -asm/non_matchings/code/z_sub_s/SubS_GetObjectIndex.s,SubS_GetObjectIndex,0x8013D924,0xF +asm/non_matchings/code/z_sub_s/SubS_GetObjectSlot.s,SubS_GetObjectSlot,0x8013D924,0xF asm/non_matchings/code/z_sub_s/SubS_FindActor.s,SubS_FindActor,0x8013D960,0x1A asm/non_matchings/code/z_sub_s/SubS_UpdateFidgetTables.s,SubS_UpdateFidgetTables,0x8013D9C8,0x72 asm/non_matchings/code/z_sub_s/SubS_IsFloorAbove.s,SubS_IsFloorAbove,0x8013DB90,0x2C