More docs (#226)

* docs

* more docs

* forgot timers
This commit is contained in:
petrie911
2024-05-02 17:46:51 -03:00
committed by GitHub
parent 926677aa6c
commit c9df6fda72
50 changed files with 4628 additions and 4611 deletions
+19 -19
View File
@@ -26,9 +26,9 @@ extern s32 gPrevPlanetSavedTeamShields[6];
extern s32 gTeamDamage[6];
extern u8 gMissionStatus;
extern f32 gGroundHeight;
extern f32 D_ctx_80177950;
extern f32 D_ctx_80177968;
extern f32 D_ctx_80177970;
extern f32 D_ctx_80177950; // sign of something to do with camera z rotations
extern f32 gPlayerTurnRate;
extern f32 gPlayerTurnStickMod;
extern f32 gCsCamEyeX;
extern f32 gCsCamEyeY;
extern f32 gCsCamEyeZ;
@@ -61,13 +61,13 @@ extern u16 gBgmSeqId;
extern u8 gLevelType;
extern s32 gSavedObjectLoadIndex;
extern UNK_TYPE F_80177CA8;
extern f32 D_ctx_80177CB0;
extern f32 gSavedPathProgress;
extern UNK_TYPE F_80177CB8;
extern f32 gWaterLevel;
extern f32 D_ctx_80177CC8;
extern f32 D_ctx_80177CE8;
extern f32 D_ctx_80177D08;
extern f32 D_ctx_80177D20;
extern f32 gPathGroundScroll;
extern f32 gPathTexScroll;
extern f32 gPathVelZ;
extern f32 gPathProgress;
extern f32 gRadioPortraitScaleY;
extern f32 gRadioTextBoxScaleY;
extern f32 gRadioMsgRadioId;
@@ -226,7 +226,7 @@ extern s32 gHitCount;
extern s32 gSavedHitCount;
extern s16 gLifeCount[4];
extern LaserStrength gLaserStrength[4];
extern s32 D_ctx_80161AB8;
extern s32 gCullObjects;
extern UNK_TYPE F_80161AC0[16];
extern Scenery gScenery[50];
extern Sprite gSprites[40];
@@ -272,13 +272,13 @@ extern s32 D_ctx_80177990[4];
extern f32 D_ctx_801779A8[4];
extern u8 gPauseEnabled;
extern s32 gChargeTimers[4];
extern f32 D_ctx_801779E4;
extern f32 D_ctx_801779F4;
extern s32 D_Timer_80177A00[4];
extern s32 D_Timer_80177A38[4];
extern s32 D_Timer_80177A70[4];
extern s32 D_Timer_80177A88[4];
extern f32 D_ctx_80177AA0[4];
extern f32 gPathVelX;
extern f32 gPathVelY;
extern s32 gUturnDownTimers[4];
extern s32 gUturnBrakeTimers[4];
extern s32 gLoopDownTimers[4];
extern s32 gLoopBoostTimers[4];
extern f32 gMuzzleFlashScale[4];
extern f32 gShieldAlpha[4];
extern s32 gHasShield[4];
extern s32 gShieldTimer[4];
@@ -289,11 +289,11 @@ extern u8 gCoUturnCount;
extern u8 gGreatFoxIntact;
extern u8 gTiStartLandmaster;
extern u16 gControllerRumbleTimers[4];
extern u16 D_ctx_80177C30[4];
extern u16 gPlayerScores[4];
extern s32 D_ctx_80177C50;
extern s32 D_ctx_80177C70;
extern s32 D_ctx_80177C78;
extern s32 D_ctx_80177C8C;
extern s32 gTraining360MsgTimer;
extern s32 gTraining360MsgIndex;
extern s32 D_ctx_80177C94;
extern s32 D_ctx_80177C9C;
extern s32 D_ctx_80177CA4;
+15 -15
View File
@@ -82,8 +82,8 @@ void Cutscene_LevelComplete(Player*);
void Cutscene_UTurn(Player*);
void Cutscene_KillPlayer(Player* player);
void Cutscene_PlayerDown(Player*);
void Actor195_Update(Actor*);
void Actor195_Draw(Actor*);
void ActorCutscene_Update(Actor*);
void ActorCutscene_Draw(Actor*);
void Cutscene_DrawGreatFox(void);
// fox_display
@@ -95,7 +95,7 @@ void Play_Draw(void);
// fox_edata
void func_edata_800594F0(Scenery*);
void func_edata_800595D0(Scenery*);
void func_edisplay_800596C0(void);
void Object_ApplyWaterDistortion(void);
void func_edata_800596B0(Actor*);
// fox_edisplay
@@ -103,9 +103,9 @@ void Graphics_SetScaleMtx(f32);
void Sprite168_Draw(Sprite*);
void Actor201_Draw(Actor*);
void Actor202_Draw(Actor*);
void Obj39_Draw(Scenery*);
void func_edisplay_80059B20(Scenery*);
void Obj42_Draw(Scenery*);
void MeteoTunnel_Draw(Scenery*);
void Scenery_DrawTitaniaBones(Scenery*);
void Scenery42_Draw(Scenery*);
void Actor196_Draw(Actor*);
void Sprite167_Draw(Sprite*);
void FogShadow_Draw(Sprite*);
@@ -162,7 +162,7 @@ bool Object_CheckHitboxCollision(Vec3f* pos, f32* hitboxData, Object* obj, f32 x
bool Object_CheckSingleHitbox(Vec3f*, f32*, Vec3f*);
bool Object_CheckPolyCollision(Vec3f* , Vec3f* , ObjectId , Object* );
s32 Object_CheckCollision(s32 , Vec3f* , Vec3f* , s32 );
void func_enmy_800652CC(Scenery*);
void Scenery_UpdateTitaniaBones(Scenery*);
void func_enmy_800654E4(Object*);
void func_enmy_800656D4(Actor*);
void func_enmy_800660F0(Actor*);
@@ -175,8 +175,8 @@ void func_enmy_80066C00(Scenery*);
void func_enmy_80066D5C(Scenery*);
void Sprite167_Update(Sprite*);
void func_enmy_80066EA8(Scenery*);
void func_enmy_80066EF0(Item*);
void func_enmy_800671D0(Item*);
void Item_CheckBounds(Item*);
void Item_SpinPickup(Item*);
void func_enmy_800674B4(f32, f32, f32, f32, f32, f32, f32, f32);
void ActorSupplies_Update(Actor*);
void ActorSupplies_Draw(Actor*);
@@ -213,16 +213,16 @@ void Object_Update(void);
//fox_enmy2
void Actor237_Update(Actor*);
void Actor237_Draw(Actor*);
void Obj54_Update(Scenery*);
void Scenery54_Update(Scenery*);
void Actor201_Update(Actor*);
void Actor202_Update(Actor*);
void Actor194_Update(Actor*);
void Actor194_Init(Actor*);
void Actor194_Dying(Actor*);
void Actor194_Draw(Actor*);
void Obj42_Update(Scenery*);
void Scenery42_Update(Scenery*);
void Actor196_Update(Actor*);
void Actor189_Update(Actor*);
void Obj39_Update(Scenery*);
void MeteoTunnel_Update(Scenery*);
void func_enmy2_8006ECBC(PlayerShotId, PlayerShot*, s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
void func_enmy2_8006EEFC(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
void func_enmy2_8006EFA0(s32 unk0E4, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot,
@@ -230,7 +230,7 @@ void func_enmy2_8006EFA0(s32 unk0E4, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32
void ActorEvent_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 scale1);
void ActorEvent_8006F254(Actor*);
void ActorEvent_Update(Actor*);
s32 Obj111_Draw(Scenery*);
s32 Scenery111_Draw(Scenery*);
void ActorEvent_Draw(Actor*);
void func_enmy2_800763A4(Actor*);
void ActorEvent_Dying(Actor*);
@@ -483,7 +483,7 @@ void func_play_800AD7F0(Player* player);
void func_play_800ADF58(Player* player);
void func_play_800B415C(Player* player);
void func_play_800B41E0(Player* player);
void func_play_800B41EC(Player* player);
void Player_Down(Player* player);
void func_play_800A46A0(Player* player);
void func_play_800A86E4(Player* player);
void func_play_800A887C(Player* player);
+37 -37
View File
@@ -42,7 +42,7 @@ typedef struct {
typedef enum {
/* 0 */ COL1_0, // OBJ_ACTOR_180
/* 1 */ COL1_1, // OBJ_SCENERY_39
/* 1 */ COL1_1, // OBJ_SCENERY_ME_TUNNEL
/* 2 */ COL1_2,
/* 3 */ COL1_3, // ACTOR_EVENT_ID
/* 4 */ COL1_4, // OBJ_BOSS_308
@@ -88,29 +88,29 @@ typedef struct {
/* 0x00 */ u8 status;
/* 0x02 */ u16 type;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x10 */ f32 yRot;
/* 0x14 */ char pad14[0x14];
} RadarMark; // size = 0x28
typedef struct {
/* 0x00 */ u8 mode;
/* 0x02 */ u16 timer;
/* 0x04 */ Vec3f unk_04;
/* 0x10 */ Vec3f unk_10;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ u8 unk_2C; // possibly a color struct
/* 0x2D */ u8 unk_2D;
/* 0x2E */ u8 unk_2E;
/* 0x2F */ u8 unk_2F;
/* 0x04 */ Vec3f posAA;
/* 0x10 */ Vec3f posBB;
/* 0x1C */ f32 xRot;
/* 0x20 */ f32 yRot;
/* 0x24 */ f32 zScale;
/* 0x28 */ f32 xyScale;
/* 0x2C */ u8 red; // possibly a color struct
/* 0x2D */ u8 green;
/* 0x2E */ u8 blue;
/* 0x2F */ u8 alpha;
} TexturedLine; // size = 0x30
typedef struct {
/* 0x00 */ u8 hits;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x10 */ f32 rise;
/* 0x14 */ char pad14[0x4];
/* 0x18 */ u16 timer;
} BonusText; // size = 0x1C
@@ -143,13 +143,13 @@ typedef struct {
/* 0x00 */ u8 drawType;
/* 0x08 */ ObjectFunc action; // argument must have object type.
/* 0x0C */ f32* hitbox;
/* 0x10 */ f32 unk_10; // z coordinate of something
/* 0x14 */ s16 unk_14; // can be -1, 0, 1
/* 0x16 */ s16 unk_16; // can be 0, 1, 2
/* 0x10 */ f32 cullDistance; // z coordinate of something
/* 0x14 */ s16 unk_14; // can be -1, 0, 1. governs camera-related behavior in effects (billboarding?)
/* 0x16 */ s16 unk_16; // can be 0, 1, 2. affects death behavior?
/* 0x18 */ u8 damage;
/* 0x19 */ u8 unk_19; // can be 0, 1, 2
/* 0x1C */ f32 unk_1C; // target lock y offset. 0.0f can't be targeted
/* 0x20 */ u8 bonus; // bonus hits when killed. 0 means no
/* 0x19 */ u8 unk_19; // can be 0, 1, 2. Also camera-related?
/* 0x1C */ f32 targetOffset; // target lock y offset. 0.0f can't be targeted
/* 0x20 */ u8 bonus; // hits when killed. numbers above 1 indicate the hit+ bonus
} ObjectInfo; // size = 0x24
typedef struct {
@@ -202,7 +202,7 @@ typedef struct {
/* 0x54 */ f32 unk_54;
/* 0x58 */ f32 unk_58;
/* 0x5C */ f32 sfxSource[3];
/* 0x68 */ f32 scale;
/* 0x68 */ f32 width;
} Item; // size 0x6C
typedef struct {
@@ -264,7 +264,7 @@ typedef struct {
#define DMG_BEAM 1
#define DMG_NONE 0
#define DMG_BOMB -1
#define DMG_UNK_100 100
#define DMG_zRot_0FC 100
typedef struct {
/* 0x000 */ Object obj;
@@ -291,9 +291,9 @@ typedef struct {
/* 0x0C9 */ u8 unk_0C9;
/* 0x0CA */ u8 lockOnTimers[4];
/* 0x0CE */ s16 health;
/* 0x0D0 */ s8 unk_0D0;
/* 0x0D2 */ s16 unk_0D2;
/* 0x0D4 */ s16 unk_0D4;
/* 0x0D0 */ s8 dmgType;
/* 0x0D2 */ s16 dmgPart;
/* 0x0D4 */ s16 dmgSource;
/* 0x0D6 */ u16 damage;
/* 0x0D8 */ Vec3f hitPos;
/* 0x0E4 */ s16 aiType;
@@ -338,17 +338,17 @@ typedef enum ObjectId {
/* 26 */ OBJ_SCENERY_26,
/* 27 */ OBJ_SCENERY_27,
/* 28 */ OBJ_SCENERY_28,
/* 29 */ OBJ_SCENERY_29,
/* 30 */ OBJ_SCENERY_30,
/* 31 */ OBJ_SCENERY_31,
/* 32 */ OBJ_SCENERY_32,
/* 33 */ OBJ_SCENERY_33,
/* 34 */ OBJ_SCENERY_34,
/* 35 */ OBJ_SCENERY_35,
/* 36 */ OBJ_SCENERY_36,
/* 37 */ OBJ_SCENERY_37,
/* 38 */ OBJ_SCENERY_38,
/* 39 */ OBJ_SCENERY_39,
/* 29 */ OBJ_SCENERY_TI_SKULL,
/* 30 */ OBJ_SCENERY_TI_RIB_0,
/* 31 */ OBJ_SCENERY_TI_RIB_1,
/* 32 */ OBJ_SCENERY_TI_RIB_2,
/* 33 */ OBJ_SCENERY_TI_RIB_3,
/* 34 */ OBJ_SCENERY_TI_RIB_4,
/* 35 */ OBJ_SCENERY_TI_RIB_5,
/* 36 */ OBJ_SCENERY_TI_RIB_6,
/* 37 */ OBJ_SCENERY_TI_RIB_7,
/* 38 */ OBJ_SCENERY_TI_RIB_8,
/* 39 */ OBJ_SCENERY_ME_TUNNEL,
/* 40 */ OBJ_SCENERY_40,
/* 41 */ OBJ_SCENERY_41,
/* 42 */ OBJ_SCENERY_42,
@@ -504,7 +504,7 @@ typedef enum ObjectId {
/* 192 */ OBJ_ACTOR_192,
/* 193 */ OBJ_ACTOR_193,
/* 194 */ OBJ_ACTOR_194,
/* 195 */ OBJ_ACTOR_195,
/* 195 */ OBJ_ACTOR_CUTSCENE,
/* 196 */ OBJ_ACTOR_196,
/* 197 */ OBJ_ACTOR_ALLRANGE,
/* 198 */ OBJ_ACTOR_TEAM_BOSS,
@@ -1119,7 +1119,7 @@ typedef Actor Actor191;
typedef Actor Actor192;
typedef Actor Actor193;
typedef Actor Actor194;
typedef Actor Actor195;
typedef Actor ActorCutscene;
typedef Actor Actor196;
typedef Actor ActorAllRange;
typedef Actor ActorTeamBoss;
+61 -69
View File
@@ -97,11 +97,9 @@ typedef struct {
/* 0x00 */ Object obj;
/* 0x1C */ s32 index;
/* 0x20 */ Vec3f vel;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x2C */ Vec3f vec_2C;
/* 0x38 */ f32 sfxSource[3];
/* 0x44 */ f32 unk_44;
/* 0x44 */ f32 scale;
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ f32 unk_50;
@@ -165,55 +163,49 @@ typedef struct Player {
/* 0x058 */ f32 camYaw;
/* 0x05C */ f32 camPitch;
/* 0x05C */ f32 unk_060;
/* 0x064 */ f32 unk_064;
/* 0x068 */ f32 unk_068;
/* 0x06C */ f32 unk_06C;
/* 0x070 */ f32 unk_070;
/* 0x074 */ Vec3f pos;
/* 0x080 */ f32 unk_080;
/* 0x084 */ f32 unk_084;
/* 0x088 */ f32 unk_088;
/* 0x08C */ f32 unk_08C;
/* 0x090 */ Vec3f unk_090;
/* 0x09C */ f32 unk_09C;
/* 0x0A0 */ f32 unk_0A0;
/* 0x0A4 */ f32 unk_0A4;
/* 0x0A8 */ f32 unk_0A8;
/* 0x0AC */ f32 unk_0AC;
/* 0x0B0 */ f32 unk_0B0;
/* 0x0B4 */ f32 unk_0B4;
/* 0x0B8 */ f32 unk_0B8;
/* 0x0BC */ f32 unk_0BC;
/* 0x064 */ Vec3f groundPos; // position on ground directly below player
/* 0x070 */ f32 groundRotY; // y rotation of actor under player when acting as ground
/* 0x074 */ Vec3f pos; // pos.z is position along path. see trueZpos for the actual z position
/* 0x080 */ f32 yBob;
/* 0x084 */ f32 xShake;
/* 0x088 */ f32 bobPhase;
/* 0x08C */ f32 camDist;
/* 0x090 */ Vec3f basePos; // position at start of update
/* 0x09C */ f32 pathWidth;
/* 0x0A0 */ f32 pathHeight;
/* 0x0A4 */ f32 pathFloor;
/* 0x0A8 */ f32 unk_0A8; // set to 3000.0f, not used. May have been z-extent of path?
/* 0x0AC */ f32 xPath;
/* 0x0B0 */ f32 yPath;
/* 0x0B4 */ f32 pathStep;
/* 0x0B8 */ f32 xPathTarget;
/* 0x0BC */ f32 yPathTarget;
/* 0x0C0 */ Vec3f vel;
/* 0x0CC */ f32 unk_0CC;
/* 0x0CC */ f32 warpCamSpeed;
/* 0x0D0 */ f32 baseSpeed;
/* 0x0D4 */ f32 unk_0D4;
/* 0x0D8 */ Vec3f unk_0D8;
/* 0x0E4 */ f32 unk_0E4;
/* 0x0E8 */ f32 unk_0E8;
/* 0x0EC */ f32 unk_0EC;
/* 0x0F0 */ f32 unk_0F0;
/* 0x0F4 */ f32 unk_0F4;
/* 0x0F8 */ f32 unk_0F8;
/* 0x0FC */ f32 unk_0FC;
/* 0x100 */ f32 unk_100;
/* 0x104 */ f32 unk_104;
/* 0x108 */ f32 unk_108;
/* 0x10C */ f32 unk_10C;
/* 0x0D4 */ f32 gravity;
/* 0x0D8 */ Vec3f knockback;
/* 0x0E4 */ Vec3f rot;
/* 0x0F0 */ f32 rockAngle;
/* 0x0F4 */ f32 rockPhase;
/* 0x0F8 */ f32 bankAngle;
/* 0x0FC */ f32 xRot_0FC;
/* 0x100 */ f32 zRot_0FC;
/* 0x104 */ Vec3f rot_104;
/* 0x110 */ f32 boostSpeed;
/* 0x114 */ f32 unk_114;
/* 0x118 */ f32 unk_118;
/* 0x11C */ f32 unk_11C;
/* 0x120 */ f32 unk_120;
/* 0x124 */ f32 unk_124;
/* 0x114 */ f32 yRot_114;
/* 0x118 */ f32 yRot_118;
/* 0x11C */ f32 yRotVel_11C;
/* 0x120 */ f32 xRot_120;
/* 0x124 */ f32 xRot_124;
/* 0x128 */ char pad128[4];
/* 0x12C */ f32 unk_12C;
/* 0x130 */ f32 unk_130;
/* 0x134 */ f32 unk_134;
/* 0x138 */ f32 unk_138;
/* 0x12C */ f32 zRotBank;
/* 0x130 */ f32 zRotBarrelRoll;
/* 0x134 */ f32 damageShake;
/* 0x138 */ f32 trueZpos; // the actual position of the arwing. pos.z is its z position along the path
/* 0x13C */ char pad13C[4];
/* 0x140 */ f32 unk_140;
/* 0x144 */ f32 unk_144;
/* 0x140 */ f32 zPathVel;
/* 0x144 */ f32 zPath;
/* 0x148 */ f32 unk_148;
/* 0x14C */ f32 unk_14C;
/* 0x150 */ f32 unk_150;
@@ -247,18 +239,18 @@ typedef struct Player {
/* 0x1C4 */ s32 num;
/* 0x1C8 */ PlayerState1C8 state_1C8;
/* 0x1CC */ PlayerForm form;
/* 0x1D0 */ s32 unk_1D0;
/* 0x1D4 */ s32 unk_1D4;
/* 0x1D8 */ s32 unk_1D8;
/* 0x1DC */ s32 unk_1DC;
/* 0x1E0 */ s32 timer_1E0;
/* 0x1E4 */ s32 timer_1E4;
/* 0x1D0 */ s32 csState;
/* 0x1D4 */ bool grounded;
/* 0x1D8 */ s32 meTargetIndex;
/* 0x1DC */ s32 barrelRoll;
/* 0x1E0 */ s32 barrelInputTimerL;
/* 0x1E4 */ s32 barrelInputTimerR;
/* 0x1E8 */ s32 timer_1E8;
/* 0x1EC */ s32 unk_1EC;
/* 0x1F0 */ s32 unk_1F0;
/* 0x1F4 */ s32 unk_1F4;
/* 0x1F8 */ s32 timer_1F8;
/* 0x1FC */ s32 timer_1FC;
/* 0x1EC */ s32 rollRate;
/* 0x1F0 */ s32 baseRollRate;
/* 0x1F4 */ s32 hitTimer;
/* 0x1F8 */ s32 csTimer;
/* 0x1FC */ s32 csEventTimer;
/* 0x200 */ s32 unk_200;
/* 0x204 */ s32 unk_204;
/* 0x208 */ s32 unk_208;
@@ -267,7 +259,7 @@ typedef struct Player {
/* 0x214 */ s32 timer_214;
/* 0x218 */ s32 timer_218;
/* 0x21C */ s32 unk_21C;
/* 0x220 */ s32 timer_220;
/* 0x220 */ s32 radioDamageTimer;
/* 0x224 */ s32 timer_224;
/* 0x228 */ s32 flags_228;
/* 0x22C */ s32 whooshTimer;
@@ -279,27 +271,27 @@ typedef struct Player {
/* 0x244 */ s32 timer_244;
/* 0x248 */ f32 unk_248;
/* 0x24C */ f32 unk_24C;
/* 0x250 */ f32 unk_250;
/* 0x250 */ f32 unk_250; // checked for by event actors, but unused?
/* 0x250 */ char pad254[4];
/* 0x258 */ f32 unk_258;
/* 0x25C */ f32 unk_25C;
/* 0x258 */ f32 meteoWarpSpinSpeed;
/* 0x25C */ f32 contrailScale;
/* 0x260 */ char pad260[4];
/* 0x264 */ s32 shields;
/* 0x268 */ s32 damage;
/* 0x26C */ s32 heal;
/* 0x270 */ s32 unk_270;
/* 0x270 */ s32 unk_270; // checked for by event actors, but unused?
/* 0x274 */ char pad274[4];
/* 0x278 */ s32 timer_278;
/* 0x27C */ s32 timer_27C;
/* 0x280 */ s32 unk_280;
/* 0x27C */ s32 meteoWarpTimer;
/* 0x280 */ s32 barrelRollAlpha;
/* 0x284 */ s32 unk_284;
/* 0x288 */ s32 unk_288;
/* 0x28C */ char pad28C[0x28];
/* 0x2B4 */ bool boostCooldown;
/* 0x2B8 */ bool boostActive;
/* 0x2BC */ f32 boostMeter;
/* 0x2C0 */ f32 unk_2C0;
/* 0x2C4 */ s32 unk_2C4;
/* 0x2C0 */ f32 unk_2C0; // has to do with starting right tank jet
/* 0x2C4 */ s32 unk_2C4; // counts up during some effects. never used
/* 0x2C8 */ Vec3f hit2;
/* 0x2D4 */ Vec3f hit1;
/* 0x2E0 */ Vec3f hit3;
@@ -310,7 +302,7 @@ typedef struct Player {
/* 0x478 */ PlayerSfx sfx;
/* 0x498 */ s32 timer_498;
/* 0x49C */ WingInfo wings;
/* 0x4D8 */ f32 unk_4D8;
/* 0x4D8 */ f32 aerobaticPitch;
/* 0x4DC */ s32 somersault;
} Player; // size = 0x4E0
+1 -1
View File
@@ -136,7 +136,7 @@ extern s16 gReflectY;
extern Matrix D_display_80161418[]; // static, here for reordering
extern Vec3f D_display_80161518[]; // static, here for reordering
extern Vec3f D_display_80161548[]; // static, here for reordering
extern Vec3f D_display_80161578[];
extern Vec3f gLockOnTargetViewPos[];
extern f32 D_display_801615A8[];
extern f32 D_display_801615B8[];
+2 -2
View File
@@ -59,10 +59,10 @@ D_800C90F0 = 0x800C90F0;
D_800C45E0 = 0x800C45E0;
D_edisplay_801615D0 = 0x801615D0;//size:0xC
D_edisplay_801615E0 = 0x801615E0;//size:0xC
sViewPos = 0x801615E0;//size:0xC
gTeamEventActorIndex = 0x800CFF80;//size:0x10
D_display_80161578 = 0x80161578;//size:0x30
gLockOnTargetViewPos = 0x80161578;//size:0x30
D_display_800CA23C = 0x800CA23C;//size:0x18
D_display_800CA26C = 0x800CA26C;//size:0x20
D_800CA260 = 0x800CA260;//size:0xC
+22 -22
View File
@@ -165,18 +165,18 @@ gDefaultSave = 0x800D4D10;
gSaveFile = 0x80178870; //size:0x200
// fox_edisplay
func_edisplay_800596C0 = 0x800596C0;
func_edisplay_800597C0 = 0x800597C0;
Object_ApplyWaterDistortion = 0x800596C0;
Object_SetCullDirection = 0x800597C0;
Graphics_SetScaleMtx = 0x8005980C;
Sprite168_Draw = 0x80059850;
func_edisplay_800598DC = 0x800598DC;
Object_dummy_800598DC = 0x800598DC;
Actor201_Draw = 0x800598E8;
func_edisplay_800599A4 = 0x800599A4;
Actor202_PostLimbDraw = 0x800599A4;
Actor202_Draw = 0x80059A24;
Obj39_Draw = 0x80059AEC;
func_edisplay_80059B20 = 0x80059B20;
MeteoTunnel_Draw = 0x80059AEC;
Scenery_DrawTitaniaBones = 0x80059B20;
func_edisplay_80059BB0 = 0x80059BB0;
Obj42_Draw = 0x80059BBC;
Scenery42_Draw = 0x80059BBC;
Actor196_Draw = 0x80059BF0;
func_edisplay_80059C28 = 0x80059C28;
Sprite167_Draw = 0x80059C34;
@@ -291,7 +291,7 @@ func_enmy_80063F4C = 0x80063F4C;
func_enmy_80063F58 = 0x80063F58;
func_enmy_80063F74 = 0x80063F74;
Object_Init = 0x80063F90;
func_enmy_800652CC = 0x800652CC;
Scenery_UpdateTitaniaBones = 0x800652CC;
func_enmy_80065380 = 0x80065380;
func_enmy_8006546C = 0x8006546C;
func_enmy_800654E4 = 0x800654E4;
@@ -311,8 +311,8 @@ func_enmy_80066E80 = 0x80066E80;
Sprite167_Update = 0x80066E8C;
func_enmy_80066EA8 = 0x80066EA8;
func_enmy_80066EE4 = 0x80066EE4;
func_enmy_80066EF0 = 0x80066EF0;
func_enmy_800671D0 = 0x800671D0;
Item_CheckBounds = 0x80066EF0;
Item_SpinPickup = 0x800671D0;
func_enmy_80067348 = 0x80067348;
func_enmy_800674B4 = 0x800674B4;
ActorSupplies_Update = 0x8006753C;
@@ -420,7 +420,7 @@ gHitCount = 0x80161A98;
gSavedHitCount = 0x80161A9C;
gLifeCount = 0x80161AA0;
gLaserStrength = 0x80161AA8;//size:0x10
D_ctx_80161AB8 = 0x80161AB8;
gCullObjects = 0x80161AB8;
gScenery = 0x80161B00; //size:0x1900
gSprites = 0x80163400; //size:0xBE0
gActors = 0x80163FE0; //size:0xB130
@@ -492,15 +492,15 @@ gChargeTimers = 0x801779C8;
gPlayerCamEye = 0x801779D8;
gPlayerCamAt = 0x801779E8;
gExpertMode = 0x801779F8;
D_Timer_80177A00 = 0x80177A00;
gUturnDownTimers = 0x80177A00;
D_ctx_80177A10 = 0x80177A10;//size:0x28
D_Timer_80177A38 = 0x80177A38;
gUturnBrakeTimers = 0x80177A38;
D_ctx_80177A48 = 0x80177A48;//size:0x28
D_Timer_80177A70 = 0x80177A70;//size:0x10
gLoopDownTimers = 0x80177A70;//size:0x10
gCsFrameCount = 0x80177A80;
D_Timer_80177A88 = 0x80177A88;//size:0x10
gLoopBoostTimers = 0x80177A88;//size:0x10
D_ctx_80177A98 = 0x80177A98;
D_ctx_80177AA0 = 0x80177AA0;
gMuzzleFlashScale = 0x80177AA0;
D_ctx_80177AB0 = 0x80177AB0;
gShieldAlpha = 0x80177AB8;
gAqDrawMode = 0x80177AC8;
@@ -518,7 +518,7 @@ gMissionPlanet = 0x80177B90;
gMissionMedal = 0x80177BB0;
gControllerRumbleTimers = 0x80177BD0;
gPlanetPathStatus = 0x80177BD8;
D_ctx_80177C30 = 0x80177C30;
gPlayerScores = 0x80177C30;
D_ctx_80177C50 = 0x80177C50;
D_ctx_80177C58 = 0x80177C58;
gOptionSoundMode = 0x80177C74;
@@ -530,15 +530,15 @@ D_ctx_80177C9C = 0x80177C9C;
gSavedObjectLoadIndex = 0x80177CA0;
D_ctx_80177CA4 = 0x80177CA4;
D_ctx_80177CAC = 0x80177CAC;
D_ctx_80177CB0 = 0x80177CB0;
gSavedPathProgress = 0x80177CB0;
D_ctx_80177CB4 = 0x80177CB4;
D_ctx_80177CBC = 0x80177CBC;
D_ctx_80177CC4 = 0x80177CC4;
D_ctx_80177CC8 = 0x80177CC8;
gPathGroundScroll = 0x80177CC8;
gStarWolfTeamAlive = 0x80177CD0; // size:0x18
D_ctx_80177D08 = 0x80177D08;
gPathVelZ = 0x80177D08;
gRightWingHealth = 0x80177D10;
D_ctx_80177D20 = 0x80177D20;
gPathProgress = 0x80177D20;
gLeftWingHealth = 0x80177D28;
gRadioPortraitScaleY = 0x80177D38;
gRightWingFlashTimer = 0x80177D40;
@@ -746,7 +746,7 @@ func_play_800B39E0 = 0x800B39E0;
Player_UpdateShields = 0x800B40AC;
func_play_800B415C = 0x800B415C;
func_play_800B41E0 = 0x800B41E0;
func_play_800B41EC = 0x800B41EC;
Player_Down = 0x800B41EC;
func_play_800B42B0 = 0x800B42B0;
func_play_800B44C4 = 0x800B44C4;
func_play_800B46F8 = 0x800B46F8;
+67 -66
View File
@@ -168,12 +168,12 @@ void AllRange_GreatFoxRepair(Player* player) {
Vec3f sp60;
gCsFrameCount++;
switch (player->unk_1D0) {
switch (player->csState) {
case 0:
player->unk_1F4 = player->timer_498 = player->damage = player->unk_280 = player->boostMeter =
player->hitTimer = player->timer_498 = player->damage = player->barrelRollAlpha = player->boostMeter =
player->boostCooldown = player->somersault = gCsFrameCount = 0;
player->unk_130 = player->camRoll = player->boostSpeed = player->unk_08C = player->unk_0D8.x =
player->unk_0D8.y = player->unk_0D8.z = player->unk_134 = player->unk_4D8 = 0.0f;
player->zRotBarrelRoll = player->camRoll = player->boostSpeed = player->camDist = player->knockback.x =
player->knockback.y = player->knockback.z = player->damageShake = player->aerobaticPitch = 0.0f;
gCsCamEyeX = 1673.0f;
gCsCamEyeY = 337.0f;
if (player->pos.z < 0.0f) {
@@ -181,11 +181,11 @@ void AllRange_GreatFoxRepair(Player* player) {
} else {
gCsCamEyeZ = 480.0f;
}
player->unk_0E8 = 0.0f;
player->rot.y = 0.0f;
player->pos.x = 2100.0f;
player->baseSpeed = 30.0f;
player->unk_0E4 = -8.0f;
player->unk_114 = 90.0f;
player->rot.x = -8.0f;
player->yRot_114 = 90.0f;
gCsCamAtX = 2100.0f;
player->pos.y = 450.0f;
gCsCamAtY = 450.0f;
@@ -193,7 +193,7 @@ void AllRange_GreatFoxRepair(Player* player) {
gCsCamAtZ = 0.0f;
D_ctx_80177A48[0] = 1.0f;
player->wings.modelId = 1;
player->unk_1D0++;
player->csState++;
break;
case 1:
if (gCsFrameCount >= 47) {
@@ -202,7 +202,7 @@ void AllRange_GreatFoxRepair(Player* player) {
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 0;
}
if (gCsFrameCount >= 64) {
player->unk_1D0++;
player->csState++;
player->baseSpeed = 0.0f;
}
break;
@@ -212,7 +212,7 @@ void AllRange_GreatFoxRepair(Player* player) {
player->pos.x = 400.0f;
player->pos.y = -420.0f;
player->pos.z = 0.0f;
player->unk_0EC = 0.0f;
player->rot.z = 0.0f;
gCsCamEyeX = -683.0f;
gCsCamEyeY = -346.0f;
gCsCamEyeZ = 305.0f;
@@ -225,7 +225,7 @@ void AllRange_GreatFoxRepair(Player* player) {
gRightWingHealth[0] = gLeftWingHealth[0] = 60;
}
AUDIO_PLAY_SFX(0x4900200E, gDefaultSfxSource, 4);
player->unk_1D0++;
player->csState++;
}
break;
case 3:
@@ -233,9 +233,9 @@ void AllRange_GreatFoxRepair(Player* player) {
gCsCamEyeZ -= 1.0f;
if (gFillScreenAlpha == 0) {
player->unk_190 = player->unk_194 = 5.0f;
player->unk_114 = 90.0f;
player->yRot_114 = 90.0f;
player->baseSpeed = gArwingSpeed;
player->unk_1D0++;
player->csState++;
AUDIO_PLAY_SFX(0x09000002, player->sfxSource, 0);
}
@@ -243,7 +243,7 @@ void AllRange_GreatFoxRepair(Player* player) {
case 4:
gCsCamEyeZ -= 1.0f;
gCsCamEyeX -= 1.0f;
player->unk_0E4 += 0.4f;
player->rot.x += 0.4f;
if (gCsFrameCount >= 130) {
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
player->wings.modelId = 0;
@@ -257,10 +257,10 @@ void AllRange_GreatFoxRepair(Player* player) {
gCsCamAtX = player->pos.x;
gCsCamAtY = player->pos.y;
gCsCamAtZ = player->pos.z;
Math_SmoothStepToF(&player->unk_0EC, 0.0f, 0.1f, 2.0f, 0);
Math_SmoothStepToF(&player->unk_12C, 0.0f, 0.1f, 3.0f, 0);
Matrix_RotateY(gCalcMatrix, (player->unk_0E8 + player->unk_114 + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -(player->unk_0E4 * M_DTOR), MTXF_APPLY);
Math_SmoothStepToF(&player->rot.z, 0.0f, 0.1f, 2.0f, 0);
Math_SmoothStepToF(&player->zRotBank, 0.0f, 0.1f, 3.0f, 0);
Matrix_RotateY(gCalcMatrix, (player->rot.y + player->yRot_114 + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -(player->rot.x * M_DTOR), MTXF_APPLY);
sp6C.x = 0.0f;
sp6C.y = 0.0f;
sp6C.z = player->baseSpeed;
@@ -271,8 +271,8 @@ void AllRange_GreatFoxRepair(Player* player) {
player->pos.x += player->vel.x;
player->pos.y += player->vel.y;
player->pos.z += player->vel.z;
player->unk_138 = player->pos.z;
player->unk_0F8 = player->unk_0EC + player->unk_12C + player->unk_130;
player->trueZpos = player->pos.z;
player->bankAngle = player->rot.z + player->zRotBank + player->zRotBarrelRoll;
Math_SmoothStepToF(&player->cam.eye.x, gCsCamEyeX, D_ctx_80177A48[0], 50000.0f, 0);
Math_SmoothStepToF(&player->cam.eye.y, gCsCamEyeY, D_ctx_80177A48[0], 50000.0f, 0);
Math_SmoothStepToF(&player->cam.eye.z, gCsCamEyeZ, D_ctx_80177A48[0], 50000.0f, 0);
@@ -284,14 +284,14 @@ void AllRange_GreatFoxRepair(Player* player) {
void AllRange_FortunaIntro(Player* player) {
Vec3f sp24;
Math_Vec3fFromAngles(&sp24, 0.0f, player->unk_114 + 180.0f, 40.0f);
Math_Vec3fFromAngles(&sp24, 0.0f, player->yRot_114 + 180.0f, 40.0f);
player->vel.x = sp24.x;
player->vel.z = sp24.z;
player->vel.y = sp24.y;
player->pos.x += player->vel.x;
player->pos.y += player->vel.y;
player->pos.z += player->vel.z;
player->unk_138 = player->pos.z;
player->trueZpos = player->pos.z;
player->cam.eye.x = -200.0f;
player->cam.eye.y = 500.0f;
player->cam.eye.z = 7000.0f;
@@ -415,7 +415,7 @@ void ActorAllRange_SpawnTeam(void) {
if (actor->aiType <= AI360_PEPPY) {
AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4);
actor->info.hitbox = SEGMENTED_TO_VIRTUAL(gTeamHitbox);
actor->info.unk_1C = 0.0f;
actor->info.targetOffset = 0.0f;
actor->info.bonus = 0;
} else {
AUDIO_PLAY_SFX(0x31000011, actor->sfxSource, 4);
@@ -505,15 +505,15 @@ void func_360_8002F69C(Actor* this) {
}
gPlayer[0].cam.eye.y = 2500.0f;
gPlayer[0].cam.eye.z = 5000.0f;
gPlayer[0].cam.at.x = gActors[4].obj.pos.x;
gPlayer[0].cam.at.y = gActors[4].obj.pos.y;
gPlayer[0].cam.at.z = gActors[4].obj.pos.z;
gPlayer[0].cam.at.x = gActors[AI360_WOLF].obj.pos.x;
gPlayer[0].cam.at.y = gActors[AI360_WOLF].obj.pos.y;
gPlayer[0].cam.at.z = gActors[AI360_WOLF].obj.pos.z;
}
if ((gAllRangeEventTimer > D_360_800C9B4C) && (gStarWolfMsgTimer == 0)) {
gAllRangeFrameCount++;
for (i = 1, actor = &gActors[1]; i < 8; i++, actor++) {
for (i = AI360_FALCO, actor = &gActors[AI360_FALCO]; i <= AI360_ANDREW; i++, actor++) {
if ((actor->obj.status == OBJ_ACTIVE) && (actor->state == STATE360_2) && (actor->health < 70) &&
(actor->timer_0C6 != 0) && (actor->unk_0D4 == 1)) {
(actor->timer_0C6 != 0) && (actor->dmgSource == 1)) {
if ((gActors[actor->aiIndex].state == STATE360_3) && (gActors[actor->aiIndex].aiType <= AI360_ANDREW)) {
gActors[actor->aiIndex].iwork[2] = AI360_FOX;
gActors[actor->aiIndex].state = STATE360_2;
@@ -603,7 +603,7 @@ void func_360_8002FC00(Actor* this) {
}
if (gTeamShields[actor->aiIndex] > 0) {
func_360_8002FB4C(&gActors[actor->aiIndex]);
if ((actor->iwork[5] != 0) && (actor->unk_0D4 == 1) && (gActors[actor->aiIndex].iwork[3] == 0)) {
if ((actor->iwork[5] != 0) && (actor->dmgSource == 1) && (gActors[actor->aiIndex].iwork[3] == 0)) {
if (gTeamHelpActor == &gActors[actor->aiIndex]) {
gTeamHelpActor = NULL;
gTeamHelpTimer = 0;
@@ -814,40 +814,40 @@ void ActorAllRange_ApplyDamage(Actor* this) {
Vec3f sp48;
Vec3f sp3C;
if (this->unk_0D0 != 0) {
if (this->dmgType != 0) {
if (this->aiType == AI360_GREAT_FOX) {
this->unk_0D0 = 0;
this->dmgType = 0;
}
if ((this->unk_0D0 >= 2) && (this->aiType >= AI360_WOLF) && (this->aiType < AI360_KATT)) {
if ((this->dmgType >= 2) && (this->aiType >= AI360_WOLF) && (this->aiType < AI360_KATT)) {
this->damage = 10;
this->timer_0C2 = 10;
}
if (((this->aiType <= AI360_PEPPY) || (this->aiType == AI360_BILL) || (this->aiType == AI360_KATT)) &&
(this->unk_0D0 == 2)) {
this->unk_0D0 = 0;
(this->dmgType == 2)) {
this->dmgType = 0;
}
if ((this->unk_0D0 == 2) && (this->fwork[22] > 0.0f)) {
this->unk_0D0 = 0;
if ((this->dmgType == 2) && (this->fwork[22] > 0.0f)) {
this->dmgType = 0;
}
if (this->fwork[23] > 1.0f) {
this->unk_0D0 = 0;
this->dmgType = 0;
}
if (this->unk_0D0 != 0) {
if (this->dmgType != 0) {
var_a1 = false;
if ((this->unk_0B6 == 3) ||
((gCurrentLevel == LEVEL_BOLSE) && (gBosses[1].obj.status != OBJ_FREE) &&
(this->aiType >= AI360_WOLF)) ||
((gCurrentLevel == LEVEL_VENOM_2) && (this->aiType >= AI360_WOLF) && (this->aiType < AI360_10) &&
(this->unk_0D0 == 2))) {
(this->dmgType == 2))) {
this->damage = 0;
var_a1 = true;
if (gCurrentLevel == LEVEL_BOLSE) {
this->unk_0D4 = 0;
this->dmgSource = 0;
}
}
if (this->aiType >= AI360_WOLF) {
if (((this->unk_0D0 != 3) || (this->aiType != AI360_WOLF)) &&
((this->aiType != AI360_MISSILE) || (this->unk_0D0 != 2))) {
if (!((this->dmgType == 3) && (this->aiType == AI360_WOLF)) &&
!((this->aiType == AI360_MISSILE) && (this->dmgType == 2))) {
this->health -= this->damage;
}
} else if ((this->aiType <= AI360_PEPPY) && (this->state != STATE360_6)) {
@@ -861,7 +861,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
this->health = 0;
if (this->aiType == AI360_MISSILE) {
SectorZ_80199900(this, 1);
if (this->unk_0D4 == 1) {
if (this->dmgSource == 1) {
if (gActors[8].obj.status == OBJ_ACTIVE) {
Radio_PlayMessage(gMsg_ID_16140, RCID_KATT);
}
@@ -869,7 +869,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
gHitCount += 11;
D_ctx_80177850 = 15;
} else {
switch (this->unk_0D4) {
switch (this->dmgSource) {
case 102:
Radio_PlayMessage(gMsg_ID_16170, RCID_FALCO);
break;
@@ -919,13 +919,13 @@ void ActorAllRange_ApplyDamage(Actor* this) {
this->timer_0BC = RAND_INT(50.0f);
}
}
if ((this->aiType >= AI360_WOLF) && (this->aiType < AI360_KATT)) {
if ((this->aiType >= AI360_WOLF) && (this->aiType <= AI360_ANDREW)) {
this->timer_0BC = RAND_INT(40.0f) + 60.0f;
}
if (this->damage >= 20) {
this->timer_0BC = 0;
}
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && (this->unk_0D4 == 1)) {
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && (this->dmgSource == 1)) {
if (gKaAllyKillCount < 2) {
ActorAllRange_PlayMessage(gMsg_ID_18018, RCID_BILL);
}
@@ -968,7 +968,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
if ((this->aiType >= AI360_WOLF) && (this->aiType <= AI360_ANDREW)) {
sStarWolfKillTimer = 150;
}
switch (this->unk_0D4) {
switch (this->dmgSource) {
case 1:
if (this->aiType >= AI360_10) {
switch (this->iwork[2]) {
@@ -987,10 +987,10 @@ void ActorAllRange_ApplyDamage(Actor* this) {
case 102:
case 103:
case 104:
if ((this->aiType >= AI360_WOLF) && (this->aiType < AI360_KATT)) {
if ((this->aiType >= AI360_WOLF) && (this->aiType <= AI360_ANDREW)) {
if ((gStarWolfTeamAlive[0] + gStarWolfTeamAlive[1] + gStarWolfTeamAlive[2] +
gStarWolfTeamAlive[3]) == 0) {
switch (this->unk_0D4) {
switch (this->dmgSource) {
case 102:
Radio_PlayMessage(gMsg_ID_9438, RCID_FALCO);
break;
@@ -1002,10 +1002,10 @@ void ActorAllRange_ApplyDamage(Actor* this) {
break;
}
} else {
gActors[this->unk_0D4 - 101].iwork[1] = 80;
gActors[this->dmgSource - 101].iwork[1] = 80;
}
} else {
gActors[this->unk_0D4 - 101].iwork[1] = 80;
gActors[this->dmgSource - 101].iwork[1] = 80;
}
break;
}
@@ -1054,7 +1054,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
this->fwork[12] = sp3C.z;
}
if ((gRadioState == 0) && (gActors[0].obj.status == OBJ_ACTIVE)) {
if (this->unk_0D0 == 3) {
if (this->dmgType == 3) {
switch (this->aiType) {
case AI360_FALCO:
ActorAllRange_PlayMessage(gMsg_ID_20210, RCID_FALCO);
@@ -1069,11 +1069,11 @@ void ActorAllRange_ApplyDamage(Actor* this) {
ActorAllRange_PlayMessage(gMsg_ID_20084, RCID_KATT);
break;
}
} else if (this->unk_0D4 < 105) {
} else if (this->dmgSource <= AI360_PEPPY + 101) {
if (this->aiType >= AI360_WOLF) {
if (this->unk_0D4 == 1) {
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && (gKaKilledAlly == 0)) {
gKaKilledAlly = 1;
if (this->dmgSource == 1) {
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && !gKaKilledAlly) {
gKaKilledAlly = true;
Radio_PlayMessage(gMsg_ID_18015, RCID_BILL);
} else if (this->aiType == AI360_KATT) {
ActorAllRange_PlayMessage(gMsg_ID_20084, RCID_KATT);
@@ -1096,7 +1096,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
}
}
}
} else if (this->unk_0D4 == 1) {
} else if (this->dmgSource == AI360_FOX + 1) {
switch (this->aiType) {
case AI360_FALCO:
ActorAllRange_PlayMessage(gMsg_ID_20060, RCID_FALCO);
@@ -1149,7 +1149,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
}
}
}
this->unk_0D0 = 0;
this->dmgType = 0;
}
}
}
@@ -1158,7 +1158,7 @@ void ActorAllRange_CheckPlayerNearby(Actor* actor) {
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (actor->iwork[24] != 0) &&
(fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 1000.0f) &&
(fabsf(actor->obj.pos.y - gPlayer[0].pos.y) < 1000.0f) &&
(fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 1000.0f)) {
(fabsf(actor->obj.pos.z - gPlayer[0].trueZpos) < 1000.0f)) {
actor->iwork[10]++;
} else {
actor->iwork[10] = 0;
@@ -1215,7 +1215,7 @@ void ActorAllRange_Update(Actor* this) {
if (this->aiType == AI360_EVENT_HANDLER) {
this->timer_0C2 = 10;
this->info.unk_1C = 0.0f;
this->info.targetOffset = 0.0f;
ActorAllRange_UpdateEvents(this);
return;
}
@@ -1344,7 +1344,7 @@ void ActorAllRange_Update(Actor* this) {
}
sp104 = 0;
this->iwork[5] = 0;
if ((this->aiType > AI360_FOX) && (this->aiType <= AI360_PEPPY) && (gTeamShields[this->aiType] <= 0) &&
if ((this->aiType >= AI360_FALCO) && (this->aiType <= AI360_PEPPY) && (gTeamShields[this->aiType] <= 0) &&
(this->state != STATE360_6)) {
this->state = STATE360_6;
if (this->timer_0C2 < 100) {
@@ -1489,7 +1489,7 @@ void ActorAllRange_Update(Actor* this) {
if (!gPlayer[0].somersault) {
this->fwork[4] = gPlayer[0].pos.x + spCC;
this->fwork[5] = gPlayer[0].pos.y + spC8;
this->fwork[6] = gPlayer[0].unk_138 + spC4;
this->fwork[6] = gPlayer[0].trueZpos + spC4;
this->fwork[1] = gPlayer[0].baseSpeed + 10.0f;
}
if ((gActors[0].state == STATE360_6) && (this->aiType <= AI360_PEPPY)) {
@@ -1546,7 +1546,8 @@ void ActorAllRange_Update(Actor* this) {
} else {
this->fwork[1] = gPlayer[0].baseSpeed - 5.0f;
if ((gCurrentLevel == LEVEL_VENOM_2) &&
(gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN) && (gPlayer[0].unk_4D8 > 100.0f)) {
(gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN) &&
(gPlayer[0].aerobaticPitch > 100.0f)) {
this->iwork[16] = STATE360_8;
}
}
@@ -2051,7 +2052,7 @@ void ActorAllRange_Update(Actor* this) {
radarMark->pos.x = this->obj.pos.x;
radarMark->pos.y = this->obj.pos.y;
radarMark->pos.z = this->obj.pos.z;
radarMark->unk_10 = this->unk_0F4.y + 180.0f;
radarMark->yRot = this->unk_0F4.y + 180.0f;
if (this->iwork[1] != 0) {
this->iwork[1]--;
if ((this->iwork[1] == 0) && (gActors[0].state == STATE360_2) && (gRadioState == 0)) {
@@ -2095,7 +2096,7 @@ void ActorAllRange_Update(Actor* this) {
func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 5.0f, 15);
func_effect_8007A6F0(&this->obj.pos, 0x2903A008);
} else {
this->unk_0D0 = 1;
this->dmgType = 1;
this->damage = 10;
this->health = 0;
ActorAllRange_ApplyDamage(this);
@@ -2257,7 +2258,7 @@ void ActorAllRange_Draw(ActorAllRange* this) {
case AI360_GREAT_FOX:
Display_SetSecondLight(&this->obj.pos);
this->unk_0B6 = 1;
Actor195_Draw(this);
ActorCutscene_Draw(this);
break;
case AI360_MISSILE:
Animation_GetFrameData(&D_SZ_6006D64, 0, sp7C);
+86 -86
View File
@@ -52,7 +52,7 @@ void func_beam_80035E78(PlayerShot* shot) {
if (shot->unk_5C == 0) {
shot->vel.x = shot->vel.y = shot->vel.z = shot->obj.rot.x = shot->obj.rot.y = shot->obj.rot.z = 0.0f;
shot->unk_44 = 1.0f;
shot->scale = 1.0f;
shot->unk_5C = 1;
shot->unk_64 = 30;
shot->unk_58 = 150;
@@ -137,7 +137,7 @@ void func_beam_80036318(PlayerShot* shot) {
}
func_beam_80035E78(shot);
} else if (shot->obj.id == PLAYERSHOT_8) {
shot->unk_44 = 7.5f;
shot->scale = 7.5f;
for (i = 0; i < ARRAY_COUNT(gActors); i++) {
gActors[i].lockOnTimers[shot->playerNum] = 0;
}
@@ -367,7 +367,7 @@ s32 func_beam_80036F88(PlayerShot* shot, Actor* actor) {
if (count != 0) {
xySizeMod = 0.0f;
if (actor->info.unk_16 == 1) {
xySizeMod = fabsf((actor->obj.pos.z + D_ctx_80177D20) / 50.0f) + 10.0f;
xySizeMod = fabsf((actor->obj.pos.z + gPathProgress) / 50.0f) + 10.0f;
if ((shot->playerNum < 4) &&
((gLaserStrength[shot->playerNum] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_8))) {
xySizeMod += 30.0f;
@@ -429,7 +429,7 @@ bool func_beam_80037438(PlayerShot* shot, Actor* actor) {
if (((s32) hitboxData[0] != 0) && (sqrtf(SQ(temp_fv1) + SQ(temp_fa0)) <= 500.0f)) {
if (shot->playerNum < 4) {
temp_fv1 = actor->obj.pos.x - gPlayer[0].cam.eye.x;
temp_fa0 = actor->obj.pos.z + D_ctx_80177D20 - gPlayer[0].cam.eye.z;
temp_fa0 = actor->obj.pos.z + gPathProgress - gPlayer[0].cam.eye.z;
var_fa1 = (sqrtf(SQ(temp_fv1) + SQ(temp_fa0)) / 50.0f) + 20.0f + 10.0f;
if (var_fa1 > 200.0f) {
var_fa1 = 200.0f;
@@ -486,7 +486,7 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) {
sp7C.z = obj->pos.z - shot->obj.pos.z;
// undefined behavior: if this check fails, the function returns no value
if (((fabsf(sp7C.x) < 1100.0f) && (fabsf(sp7C.z) < 1100.0f) && (shot->obj.pos.y < 900.0f)) ||
(objId == OBJ_BOSS_313) || (objId == ACTOR_EVENT_ID) || (objId == OBJ_SCENERY_39)) {
(objId == OBJ_BOSS_313) || (objId == ACTOR_EVENT_ID) || (objId == OBJ_SCENERY_ME_TUNNEL)) {
Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, MTXF_NEW);
sp7C.x = shot->obj.pos.x - obj->pos.x;
sp7C.y = shot->obj.pos.y - obj->pos.y;
@@ -533,7 +533,7 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) {
case OBJ_BOSS_313:
objId = COL1_8;
break;
case OBJ_SCENERY_39:
case OBJ_SCENERY_ME_TUNNEL:
objId = COL1_1;
break;
case OBJ_SCENERY_120:
@@ -652,8 +652,8 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
Vec3f sp44 = { 0.0f, 0.0f, -100.0f };
Vec3f sp38;
actor->unk_0D0 = 1;
actor->unk_0D2 = hitIndex - 1;
actor->dmgType = 1;
actor->dmgPart = hitIndex - 1;
actor->timer_0C2 = 2;
actor->damage = 10;
if ((shot->playerNum < 4) && (gPlayer[shot->playerNum].form != FORM_LANDMASTER)) {
@@ -677,19 +677,19 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
if (gCurrentLevel == LEVEL_AQUAS) {
actor->damage = 31;
} else {
actor->unk_0D0 = 2;
actor->dmgType = 2;
actor->damage = 30;
actor->lockOnTimers[shot->playerNum] = 0;
}
}
actor->unk_0D4 = shot->playerNum + 1;
actor->dmgSource = shot->playerNum + 1;
actor->hitPos.x = shot->obj.pos.x;
actor->hitPos.y = shot->obj.pos.y;
actor->hitPos.z = shot->obj.pos.z;
if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0D2 == 0) &&
if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) &&
((actor->unk_0B4 == EINFO_48) || (actor->unk_0B4 == EINFO_49) || (actor->unk_0B4 == EINFO_50))) ||
((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0D2 == 0) && (actor->unk_0B4 == EINFO_67)) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) && (actor->unk_0B4 == EINFO_67)) ||
((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_8) &&
((actor->state < 3) || (actor->state >= 5))) ||
((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_8) && (actor->timer_0BC != 0))) {
@@ -760,16 +760,16 @@ void func_beam_80038140(PlayerShot* shot) {
switch (actor->obj.id) {
case OBJ_ACTOR_180:
if (func_beam_8003774C(shot, actor->obj.id, &actor->obj)) {
actor->unk_0D0 = 1;
actor->unk_0D2 = shot->playerNum;
actor->dmgType = 1;
actor->dmgPart = shot->playerNum;
return;
}
break;
case OBJ_ACTOR_EVENT:
if (actor->unk_0B4 == EINFO_42) {
if (func_beam_8003774C(shot, ACTOR_EVENT_ID, &actor->obj)) {
actor->unk_0D0 = 1;
actor->unk_0D2 = shot->playerNum;
actor->dmgType = 1;
actor->dmgPart = shot->playerNum;
return;
}
} else if (actor->unk_0B4 == EINFO_63) {
@@ -827,7 +827,7 @@ void func_beam_80038140(PlayerShot* shot) {
!((gLaserStrength[shot->playerNum] == LASERS_SINGLE) && (shot->obj.id != PLAYERSHOT_8))) {
test.x = 100.0f;
}
if (player->unk_280 >= 100) {
if (player->barrelRollAlpha >= 100) {
test.x = 150.0f;
}
if (player->form == FORM_LANDMASTER) {
@@ -841,11 +841,11 @@ void func_beam_80038140(PlayerShot* shot) {
test.z = test.x;
if ((i != shot->playerNum) &&
((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_DOWN)) &&
(fabsf(player->unk_138 - shot->obj.pos.z) < test.z) &&
(fabsf(player->trueZpos - shot->obj.pos.z) < test.z) &&
(fabsf(player->pos.x - shot->obj.pos.x) < test.x) &&
(fabsf(player->pos.y - shot->obj.pos.y) < test.y)) {
if (player->unk_280 >= 100) {
shot->obj.rot.y = player->unk_0E8 + player->unk_114 + 180.0f + 90.0f;
if (player->barrelRollAlpha >= 100) {
shot->obj.rot.y = player->rot.y + player->yRot_114 + 180.0f + 90.0f;
shot->obj.rot.x = RAND_FLOAT(360.0f);
Matrix_RotateY(gCalcMatrix, shot->obj.rot.y * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, shot->obj.rot.x * M_DTOR, MTXF_APPLY);
@@ -860,10 +860,10 @@ void func_beam_80038140(PlayerShot* shot) {
shot->obj.pos.z += 2.0f * shot->vel.z;
shot->unk_64 = 5;
AUDIO_PLAY_SFX(0x09007011, player->sfxSource, 0);
func_effect_80078E50(player->pos.x, player->pos.y, player->unk_138, 8.0f);
func_effect_80078E50(player->pos.x, player->pos.y, player->trueZpos, 8.0f);
} else {
func_beam_80036318(shot);
if (player->unk_1F4 == 0) {
if (player->hitTimer == 0) {
if (gPlayer[0].form == 3) {
Player_ApplyDamage(player, 0, 60);
} else {
@@ -873,11 +873,11 @@ void func_beam_80038140(PlayerShot* shot) {
if (gCamCount != 1) {
player->unk_288 = shot->playerNum + 1;
}
player->unk_0D8.x = shot->vel.x * 0.1f;
player->unk_0D8.y = shot->vel.y * 0.1f;
player->unk_0D8.z = shot->vel.z * 0.1f;
player->knockback.x = shot->vel.x * 0.1f;
player->knockback.y = shot->vel.y * 0.1f;
player->knockback.z = shot->vel.z * 0.1f;
if (player->form != FORM_ON_FOOT) {
func_effect_8007D1E0(player->pos.x, player->pos.y, player->unk_138, 2.0f);
func_effect_8007D1E0(player->pos.x, player->pos.y, player->trueZpos, 2.0f);
}
}
}
@@ -885,7 +885,7 @@ void func_beam_80038140(PlayerShot* shot) {
}
}
}
if ((gGroundType == 4) && Ground_801B6AEC(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + D_ctx_80177D20)) {
if ((gGroundType == 4) && Ground_801B6AEC(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress)) {
func_beam_80036318(shot);
if (shot->obj.id != PLAYERSHOT_4) {
func_effect_8007A900(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 2.0f, 255, 15, 0);
@@ -915,7 +915,7 @@ void func_beam_80038140(PlayerShot* shot) {
} else {
for (i = 0, scenery = gScenery; i < 50; i++, scenery++) {
if (scenery->obj.status == OBJ_ACTIVE) {
if ((scenery->obj.id == OBJ_SCENERY_1) || (scenery->obj.id == OBJ_SCENERY_39) ||
if ((scenery->obj.id == OBJ_SCENERY_1) || (scenery->obj.id == OBJ_SCENERY_ME_TUNNEL) ||
(scenery->obj.id == OBJ_SCENERY_4) || (scenery->obj.id == OBJ_SCENERY_5) ||
(scenery->obj.id == OBJ_SCENERY_120) || (scenery->obj.id == OBJ_SCENERY_124) ||
(scenery->obj.id == OBJ_SCENERY_126) || (scenery->obj.id == OBJ_SCENERY_47) ||
@@ -1035,7 +1035,7 @@ void func_beam_80038F34(PlayerShot* shot) {
Vec3f sp4C = { 0.0f, 0.0f, 0.0f };
s32 sp48 = 0;
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + D_ctx_80177D20, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress, MTXF_APPLY);
Matrix_MultVec3f(gGfxMatrix, &sp4C, &D_beam_8015F950);
if ((D_beam_8015F950.z < 0.0f) && (D_beam_8015F950.z > -10000.0f)) {
if (fabsf(D_beam_8015F950.x) < (fabsf(D_beam_8015F950.z * 0.5f) + 500.0f)) {
@@ -1217,7 +1217,7 @@ void func_beam_80039A50(PlayerShot* shot) {
f32 var_fv1;
s32 sp104 = 0;
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + D_ctx_80177D20, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress, MTXF_APPLY);
Matrix_MultVec3f(gGfxMatrix, &sp11C, &D_beam_8015F950);
if ((D_beam_8015F950.z < 0.0f) && (D_beam_8015F950.z > -10000.0f)) {
var_fv1 = fabsf(D_beam_8015F950.x); // probably fake. The use of temps was likely different
@@ -1241,9 +1241,9 @@ void func_beam_80039A50(PlayerShot* shot) {
Matrix_RotateX(gGfxMatrix, shot->obj.rot.x * M_DTOR, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, shot->obj.rot.z * M_DTOR, MTXF_APPLY);
if ((shot->obj.id == PLAYERSHOT_BOMB) && (shot->unk_5C == 0)) {
Matrix_RotateZ(gGfxMatrix, shot->unk_34 * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, shot->unk_30 * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, shot->unk_2C * M_DTOR, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, shot->vec_2C.z * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, shot->vec_2C.y * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, shot->vec_2C.x * M_DTOR, MTXF_APPLY);
}
}
Matrix_Translate(gGfxMatrix, 0.f, 0.f, D_800C9BD8[shot->obj.id], MTXF_APPLY);
@@ -1259,7 +1259,7 @@ void func_beam_80039A50(PlayerShot* shot) {
gSPDisplayList(gMasterDisp++, D_10231A0);
Matrix_Pop(&gGfxMatrix);
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + D_ctx_80177D20,
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress,
MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY);
@@ -1292,7 +1292,7 @@ void func_beam_80039A50(PlayerShot* shot) {
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
} else {
Matrix_Scale(gGfxMatrix, shot->unk_44, shot->unk_44, shot->unk_44, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, shot->scale, shot->scale, shot->scale, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
if (gVersusMode) {
RCP_SetupDL_49();
@@ -1371,7 +1371,7 @@ void func_beam_80039A50(PlayerShot* shot) {
break;
case PLAYERSHOT_6:
case PLAYERSHOT_7:
Matrix_Scale(gGfxMatrix, shot->unk_44, shot->unk_44, shot->unk_44, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, shot->scale, shot->scale, shot->scale, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
RCP_SetupDL(&gMasterDisp, 0x31);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
@@ -1399,19 +1399,19 @@ void func_beam_80039A50(PlayerShot* shot) {
gSPDisplayList(gMasterDisp++, D_AQ_600DB80);
Matrix_Pop(&gGfxMatrix);
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, gGroundHeight, shot->obj.pos.z + D_ctx_80177D20,
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, gGroundHeight, shot->obj.pos.z + gPathProgress,
MTXF_APPLY);
Matrix_Scale(gGfxMatrix, shot->unk_2C, shot->unk_30, shot->unk_34, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, shot->vec_2C.x, shot->vec_2C.y, shot->vec_2C.z, MTXF_APPLY);
RCP_SetupDL(&gMasterDisp, 0x31);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 0, shot->unk_58);
gDPSetEnvColor(gMasterDisp++, 32, 16, 16, shot->unk_58);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
} else if (shot->unk_5C == 0) {
if (!(shot->unk_44 > 1.5f)) {
if (!(shot->scale > 1.5f)) {
Matrix_Pop(&gGfxMatrix);
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + D_ctx_80177D20,
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress,
MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY);
@@ -1457,7 +1457,7 @@ void func_beam_80039A50(PlayerShot* shot) {
gSPDisplayList(gMasterDisp++, D_10231A0);
Matrix_Pop(&gGfxMatrix);
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + D_ctx_80177D20,
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress,
MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY);
@@ -1509,10 +1509,10 @@ void func_beam_8003B00C(PlayerShot* shot, Player* player) {
Vec3f sp38;
switch (shot->unk_5C) {
case 0:
Matrix_RotateY(gCalcMatrix, (player->unk_114 + player->unk_0E8 + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -(player->unk_0E4 * M_DTOR), MTXF_APPLY);
Matrix_RotateZ(gCalcMatrix, -((player->unk_0F8 + player->unk_0F0) * M_DTOR), MTXF_APPLY);
Matrix_Translate(gCalcMatrix, player->unk_084, player->unk_080, 0.0f, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -(player->rot.x * M_DTOR), MTXF_APPLY);
Matrix_RotateZ(gCalcMatrix, -((player->bankAngle + player->rockAngle) * M_DTOR), MTXF_APPLY);
Matrix_Translate(gCalcMatrix, player->xShake, player->yBob, 0.0f, MTXF_APPLY);
sp5C.x = 0.0f;
sp5C.y = 0.0f;
sp5C.z = player->baseSpeed + 200.0f;
@@ -1526,19 +1526,19 @@ void func_beam_8003B00C(PlayerShot* shot, Player* player) {
Matrix_MultVec3f(gCalcMatrix, &sp5C, &sp44);
shot->unk_48 = player->pos.x + sp44.x;
shot->unk_4C = player->pos.y + sp44.y;
shot->unk_50 = player->unk_138 + sp44.z;
shot->unk_44 += 200.0f;
if (shot->unk_44 > 5000.0f) {
shot->unk_44 = 5000.0f;
shot->unk_50 = player->trueZpos + sp44.z;
shot->scale += 200.0f;
if (shot->scale > 5000.0f) {
shot->scale = 5000.0f;
}
for (sp5C.z = 0.0f; sp5C.z <= shot->unk_44; sp5C.z += 200.0f) {
for (sp5C.z = 0.0f; sp5C.z <= shot->scale; sp5C.z += 200.0f) {
Matrix_MultVec3f(gCalcMatrix, &sp5C, &sp38);
D_ctx_80178498 = shot->obj.pos.z;
D_ctx_801784A0 = shot->obj.pos.y;
D_ctx_8017849C = shot->obj.pos.x;
shot->obj.pos.x = player->pos.x + sp38.x;
shot->obj.pos.y = player->pos.y + sp38.y;
shot->obj.pos.z = player->unk_138 + sp38.z;
shot->obj.pos.z = player->trueZpos + sp38.z;
Matrix_Push(&gCalcMatrix);
func_beam_80038140(shot);
Matrix_Pop(&gCalcMatrix);
@@ -1552,7 +1552,7 @@ void func_beam_8003B00C(PlayerShot* shot, Player* player) {
}
}
shot->unk_64 = 30;
shot->obj.rot.y = player->unk_0E8 + player->unk_114;
shot->obj.rot.y = player->rot.y + player->yRot_114;
if (!(gControllerHold->button & U_CBUTTONS) && !(gControllerHold->button & A_BUTTON)) {
shot->unk_5C = 1;
}
@@ -1698,9 +1698,9 @@ bool func_beam_8003BB4C(PlayerShot* shot) {
var_fa0 = 200.0f;
}
for (i = 0, actor = gActors; i < 60; i++, actor++) {
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.unk_1C != 0.0f) &&
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.targetOffset != 0.0f) &&
((actor->lockOnTimers[shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - actor->obj.pos.x) <= var_fa0) &&
(fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.unk_1C)) <= var_fa0) &&
(fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.targetOffset)) <= var_fa0) &&
(fabsf(shot->obj.pos.z - actor->obj.pos.z) <= var_fa0))) {
actor->lockOnTimers[shot->playerNum] = 20;
func_enmy_80060F30(gPlayer[shot->playerNum].sfxSource, 0x49008027, shot->playerNum);
@@ -1720,7 +1720,7 @@ bool func_beam_8003BB4C(PlayerShot* shot) {
(player->form != FORM_ON_FOOT) && (i != shot->playerNum) &&
(gVsLockOnTimers[i][shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - player->pos.x) <= var_fa0) &&
(fabsf(shot->obj.pos.y - player->pos.y) <= var_fa0) &&
(fabsf(shot->obj.pos.z - player->unk_138) <= var_fa0)) {
(fabsf(shot->obj.pos.z - player->trueZpos) <= var_fa0)) {
gVsLockOnTimers[0][shot->playerNum] = gVsLockOnTimers[1][shot->playerNum] =
gVsLockOnTimers[2][shot->playerNum] = gVsLockOnTimers[3][shot->playerNum] = 0;
gVsLockOnTimers[i][shot->playerNum] = 20;
@@ -1771,10 +1771,10 @@ void func_beam_8003C008(PlayerShot* shot) {
if ((boss->obj.status == OBJ_ACTIVE) && (boss->timer_05A == 0)) {
if (boss->obj.id == OBJ_BOSS_316) {
var_s6 = gGameFrameCount % 8U;
var_fs2 = shot->unk_44 * 40.0f;
var_fs2 = shot->scale * 40.0f;
} else {
var_s6 = gGameFrameCount % 16U;
var_fs2 = shot->unk_44 * 30.0f;
var_fs2 = shot->scale * 30.0f;
}
hitboxData = boss->info.hitbox;
count = *hitboxData++;
@@ -1852,7 +1852,7 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
Scenery* scenery;
Effect* effect;
Player* player;
f32 temp_fs2 = shot->unk_44 * 60.0f;
f32 temp_fs2 = shot->scale * 60.0f;
for (i = 0, scenery = gScenery; i < 50; i++, scenery++) {
if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_56)) {
@@ -1900,16 +1900,16 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_78)) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_38)) ||
(actor->obj.id == OBJ_ACTOR_196)) {
actor->unk_0D0 = 2;
actor->unk_0D2 = 0;
actor->unk_0D4 = shot->playerNum + 1;
actor->dmgType = 2;
actor->dmgPart = 0;
actor->dmgSource = shot->playerNum + 1;
actor->damage = damage;
if (actor->info.bonus != 0) {
shot->bonus++;
}
} else if ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->scale >= 0.5f) && (damage > 30)) {
actor->unk_0D4 = shot->playerNum + 1;
actor->dmgSource = shot->playerNum + 1;
actor->vel.x = sp68 * 0.03f;
actor->vel.y = sp64 * 0.03f;
actor->vel.z = sp60 * 0.03f;
@@ -1922,9 +1922,9 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
shot->bonus++;
}
} else {
actor->unk_0D0 = 2;
actor->unk_0D2 = 0;
actor->unk_0D4 = shot->playerNum + 1;
actor->dmgType = 2;
actor->dmgPart = 0;
actor->dmgSource = shot->playerNum + 1;
actor->damage = damage;
if (actor->info.bonus != 0) {
shot->bonus++;
@@ -1969,10 +1969,10 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
}
if (gVersusMode) {
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
if ((i != shot->playerNum) && (player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (player->unk_1F4 == 0)) {
if ((i != shot->playerNum) && (player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (player->hitTimer == 0)) {
sp68 = player->pos.x - shot->obj.pos.x;
sp64 = player->pos.y - shot->obj.pos.y;
sp60 = player->unk_138 - shot->obj.pos.z;
sp60 = player->trueZpos - shot->obj.pos.z;
if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) {
player->unk_288 = shot->playerNum + 1;
switch (player->form) {
@@ -2032,13 +2032,13 @@ void func_beam_8003CC08(PlayerShot* shot) {
case 1:
D_ctx_8017812C = 2;
shot->obj.rot.y += 1.0f;
Math_SmoothStepToF(&shot->unk_44, shot->unk_48, 0.05f, 1.5f, 0.001f);
Math_SmoothStepToF(&shot->scale, shot->unk_48, 0.05f, 1.5f, 0.001f);
if ((shot->unk_64 > 0) && (shot->unk_64 < 30)) {
if (!gVersusMode && ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) ||
(gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN))) {
test.x = gPlayer[0].pos.x - shot->obj.pos.x;
test.y = gPlayer[0].pos.y - shot->obj.pos.y;
test.z = gPlayer[0].unk_138 - shot->obj.pos.z;
test.z = gPlayer[0].trueZpos - shot->obj.pos.z;
var_ft5 = VEC3F_MAG(&test) * 0.01f;
if (var_ft5 > 60.0f) {
var_ft5 = 60.0f;
@@ -2090,12 +2090,12 @@ void func_beam_8003CF90(PlayerShot* shot) {
var_a3 = 0;
if (shot->unk_60 == 0) {
for (i = 0, actor = gActors; i < 60; i++, actor++) {
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.unk_1C != 0.0f) &&
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.targetOffset != 0.0f) &&
(actor->lockOnTimers[shot->playerNum] != 0)) {
var_a3 = 1;
actor->lockOnTimers[shot->playerNum] = 2;
D_800C9C24 = actor->obj.pos;
D_800C9C24.y += actor->info.unk_1C;
D_800C9C24.y += actor->info.targetOffset;
}
}
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
@@ -2109,7 +2109,7 @@ void func_beam_8003CF90(PlayerShot* shot) {
} else {
D_800C9C24.y = player->pos.y + 30.0f;
}
D_800C9C24.z = player->unk_138;
D_800C9C24.z = player->trueZpos;
}
}
if (var_a3 != 0) {
@@ -2118,20 +2118,20 @@ void func_beam_8003CF90(PlayerShot* shot) {
sp64 = shot->obj.pos.z - D_800C9C24.z;
sp58 = Math_RadToDeg(Math_Atan2F(sp6C, sp64));
sp5C = Math_RadToDeg(-Math_Atan2F(sp68, sqrtf(SQ(sp6C) + SQ(sp64))));
if (shot->unk_30 >= 360.0f) {
shot->unk_30 -= 360.0f;
if (shot->vec_2C.y >= 360.0f) {
shot->vec_2C.y -= 360.0f;
}
if (shot->unk_30 < 0.0f) {
shot->unk_30 += 360.0f;
if (shot->vec_2C.y < 0.0f) {
shot->vec_2C.y += 360.0f;
}
if (shot->unk_2C >= 360.0f) {
shot->unk_2C -= 360.0f;
if (shot->vec_2C.x >= 360.0f) {
shot->vec_2C.x -= 360.0f;
}
if (shot->unk_2C < 0.0f) {
shot->unk_2C += 360.0f;
if (shot->vec_2C.x < 0.0f) {
shot->vec_2C.x += 360.0f;
}
Math_SmoothStepToAngle(&shot->unk_30, sp58, 1.0f, shot->unk_50, 0.0f);
Math_SmoothStepToAngle(&shot->unk_2C, sp5C, 1.0f, shot->unk_50, 0.0f);
Math_SmoothStepToAngle(&shot->vec_2C.y, sp58, 1.0f, shot->unk_50, 0.0f);
Math_SmoothStepToAngle(&shot->vec_2C.x, sp5C, 1.0f, shot->unk_50, 0.0f);
shot->unk_64 = 30;
} else {
shot->unk_60 = 1;
@@ -2147,8 +2147,8 @@ void func_beam_8003CF90(PlayerShot* shot) {
Vec3f sp44;
Vec3f sp38;
shot->obj.rot.y = shot->unk_30;
shot->obj.rot.x = shot->unk_2C;
shot->obj.rot.y = shot->vec_2C.y;
shot->obj.rot.x = shot->vec_2C.x;
Matrix_RotateY(gCalcMatrix, shot->obj.rot.y * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, shot->obj.rot.x * M_DTOR, MTXF_APPLY);
sp44.x = sp44.y = 0.0f;
@@ -2203,11 +2203,11 @@ void func_beam_8003D54C(PlayerShot* shot, s32 index) {
func_beam_8003BACC(shot);
break;
case PLAYERSHOT_8:
if (shot->unk_44 > 1.5f) {
if (shot->scale > 1.5f) {
func_beam_8003C4D0(shot, 30);
if (shot->bonus != 0) {
if (gVersusMode) {
D_ctx_80177C30[shot->playerNum] += shot->bonus;
gPlayerScores[shot->playerNum] += shot->bonus;
} else {
bonus = shot->bonus;
if (shot->bonus > 10) {
+28 -28
View File
@@ -414,7 +414,7 @@ void Background_DrawBackdrop(void) {
break;
case LEVEL_AQUAS:
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) {
sp13C = ((Math_RadToDeg(gPlayer[gPlayerNum].camYaw) - gPlayer[gPlayerNum].unk_114));
sp13C = Math_RadToDeg(gPlayer[gPlayerNum].camYaw) - gPlayer[gPlayerNum].yRot_114;
sp134 = (gPlayer[gPlayerNum].camPitch * -7000.0f) - (gPlayer[gPlayerNum].cam.eye.y * 0.6f);
sp13C = Math_ModF(sp13C * -40.44444f * 2.0f, 7280.0f); // close to 7280.0f / 180.0f
RCP_SetupDL_17();
@@ -449,16 +449,16 @@ void Background_DrawBackdrop(void) {
case LEVEL_ZONESS:
case LEVEL_MACBETH:
case LEVEL_TITANIA:
sp12C = Math_RadToDeg(gPlayer[gPlayerNum].camYaw) - gPlayer[gPlayerNum].unk_114;
sp12C = Math_RadToDeg(gPlayer[gPlayerNum].camYaw) - gPlayer[gPlayerNum].yRot_114;
sp134 = (gPlayer[gPlayerNum].camPitch * -7000.0f) - (gPlayer[gPlayerNum].cam.eye.y * 0.6f);
sp13C = sp12C * -40.44444f * 2.0f; // close to 7280.0f / 180.0f
if ((gCurrentLevel == LEVEL_TITANIA) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) &&
(gPlayer[0].unk_1D0 < 3)) {
(gPlayer[0].csState < 3)) {
D_bg_8015F968 += __sinf(gPlayer[0].camYaw) * 20.0f;
sp13C += D_bg_8015F968;
}
if ((gCurrentLevel == LEVEL_SOLAR) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) &&
(gPlayer[0].unk_1D0 >= 2) && (gPlayer[0].cam.eye.z <= -1900.0f)) {
(gPlayer[0].csState >= 2) && (gPlayer[0].cam.eye.z <= -1900.0f)) {
D_bg_8015F968 = __sinf(gPlayer[0].camPitch) * 7000.0f;
sp134 -= fabsf(D_bg_8015F968);
}
@@ -527,7 +527,7 @@ void Background_DrawBackdrop(void) {
sp138 = Math_ModF(sp138 - 34.5f, 480.0f);
sp134 = Math_ModF(sp134 + 19.0f, 360.0f);
} else if (levelId == LEVEL_BOLSE) {
if ((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE) || (gPlayer[0].unk_1D0 < 10)) {
if ((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE) || (gPlayer[0].csState < 10)) {
sp134 = Math_ModF(sp134 + 360.0f - 100.0f, 360.0f);
}
} else {
@@ -565,7 +565,7 @@ void Background_DrawBackdrop(void) {
Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_ME_600DDF0);
} else if (D_ctx_80177D20 > 185668.0f) {
} else if (gPathProgress > 185668.0f) {
Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f) - 130.0f, -290.0f,
MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 0.4f, 0.4f, 1.0f, MTXF_APPLY);
@@ -593,7 +593,7 @@ void Background_DrawBackdrop(void) {
break;
case LEVEL_AREA_6:
case LEVEL_UNK_4:
sp128 = (D_ctx_80177D20 * 0.00004f) + 0.5f;
sp128 = (gPathProgress * 0.00004f) + 0.5f;
if (sp128 > 3.5f) {
sp128 = 3.5f;
}
@@ -712,7 +712,7 @@ void Background_DrawSun(void) {
if (gCurrentLevel == LEVEL_KATINA) {
gSunViewY -= 80.0f;
}
if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer[0].unk_1D0 >= 2) && !gMissedZoSearchlight) {
if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer[0].csState >= 2) && !gMissedZoSearchlight) {
gSunViewY -= 60.0f;
gSunViewX -= 480.0f;
}
@@ -834,7 +834,7 @@ void Background_DrawGround(void) {
}
if (gGroundType == 7) {
sp1D4 = 0.0f;
gPlayer[gPlayerNum].unk_0AC = 0.0f;
gPlayer[gPlayerNum].xPath = 0.0f;
}
if (gLevelMode == LEVELMODE_ALL_RANGE) {
@@ -844,7 +844,7 @@ void Background_DrawGround(void) {
f32 temp_fa0;
sp1D4 = 0.0f;
gPlayer[gPlayerNum].unk_0AC = 0.0f;
gPlayer[gPlayerNum].xPath = 0.0f;
sp1B4.x = 0;
sp1B4.y = 0;
@@ -854,16 +854,16 @@ void Background_DrawGround(void) {
temp_fv1 = gPlayer[gPlayerNum].cam.eye.x + sp1A8.x;
temp_fa0 = gPlayer[gPlayerNum].cam.eye.z + sp1A8.z;
if (temp_fv1 > 6000.0f) {
gPlayer[gPlayerNum].unk_0AC = 12000.0f;
gPlayer[gPlayerNum].xPath = 12000.0f;
}
if (temp_fv1 > 18000.0f) {
gPlayer[gPlayerNum].unk_0AC = 24000.0f;
gPlayer[gPlayerNum].xPath = 24000.0f;
}
if (temp_fv1 < -6000.0f) {
gPlayer[gPlayerNum].unk_0AC = -12000.0f;
gPlayer[gPlayerNum].xPath = -12000.0f;
}
if (temp_fv1 < -18000.0f) {
gPlayer[gPlayerNum].unk_0AC = -24000.0f;
gPlayer[gPlayerNum].xPath = -24000.0f;
}
if (temp_fa0 > 6000.0f) {
sp1D4 = 12000.0f;
@@ -879,7 +879,7 @@ void Background_DrawGround(void) {
}
}
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, gPlayer[gPlayerNum].unk_0AC, -3.0f + gCameraShakeY, sp1D4, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, gPlayer[gPlayerNum].xPath, -3.0f + gCameraShakeY, sp1D4, MTXF_APPLY);
if (D_ctx_80177C70 == 2) {
Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, MTXF_APPLY);
}
@@ -893,8 +893,8 @@ void Background_DrawGround(void) {
}
if (gLevelMode == LEVELMODE_ON_RAILS) {
gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_CO_601B6C0));
temp_s0 = fabsf(Math_ModF(2.0f * (D_ctx_80177CE8 * 0.2133333f), 128.0f)); // 0.64f / 3.0f
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f);
temp_s0 = fabsf(Math_ModF(2.0f * (gPathTexScroll * 0.2133333f), 128.0f)); // 0.64f / 3.0f
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].xPath) * 0.32f, 128.0f);
gDPSetupTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, temp_fv0, temp_s0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
switch (gGroundSurface) {
@@ -955,8 +955,8 @@ void Background_DrawGround(void) {
break;
}
gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sp1C4);
temp_s0 = fabsf(Math_ModF(2.0f * (D_ctx_80177CE8 * 0.2133333f), 128.0f));
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f);
temp_s0 = fabsf(Math_ModF(2.0f * (gPathTexScroll * 0.2133333f), 128.0f));
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].xPath) * 0.32f, 128.0f);
gDPSetupTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, temp_fv0, temp_s0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
Matrix_Push(&gGfxMatrix);
@@ -975,18 +975,18 @@ void Background_DrawGround(void) {
case LEVEL_TRAINING:
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
if (gLevelMode == LEVELMODE_ON_RAILS) {
if (D_ctx_80177CE8 > 290.0f) {
D_ctx_80177CE8 -= 290.0f;
if (gPathTexScroll > 290.0f) {
gPathTexScroll -= 290.0f;
}
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f + D_ctx_80177CE8, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f + gPathTexScroll, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_TR_6005880);
Matrix_Pop(&gGfxMatrix);
if (1) {}
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f + D_ctx_80177CE8, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f + gPathTexScroll, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_TR_6005880);
@@ -1011,8 +1011,8 @@ void Background_DrawGround(void) {
gDPLoadTileTexture(gMasterDisp++, SEGMENTED_TO_VIRTUAL(D_AQ_600AB68), G_IM_FMT_RGBA, G_IM_SIZ_16b, 32,
32);
gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_AQ_600AB68));
temp_s0 = fabsf(Math_ModF(2.0f * (D_ctx_80177CE8 * 0.2133333f), 128.0f));
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f);
temp_s0 = fabsf(Math_ModF(2.0f * (gPathTexScroll * 0.2133333f), 128.0f));
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].xPath) * 0.32f, 128.0f);
gDPSetupTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, temp_fv0, temp_s0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
@@ -1033,8 +1033,8 @@ void Background_DrawGround(void) {
gDPLoadTileTexture(gMasterDisp++, SEGMENTED_TO_VIRTUAL(D_AQ_602ACC0), G_IM_FMT_RGBA, G_IM_SIZ_16b, 32,
32);
gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_AQ_602ACC0));
temp_s0 = fabsf(Math_ModF(2.0f * (D_ctx_80177CE8 * 0.2133333f), 128.0f));
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f);
temp_s0 = fabsf(Math_ModF(2.0f * (gPathTexScroll * 0.2133333f), 128.0f));
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].xPath) * 0.32f, 128.0f);
gDPSetupTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, temp_fv0, temp_s0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
if (gAqDrawMode != 0) {
@@ -1042,7 +1042,7 @@ void Background_DrawGround(void) {
} else {
RCP_SetupDL(&gMasterDisp, 0x25);
}
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) && (gPlayer[0].unk_1D0 < 2)) {
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) && (gPlayer[0].csState < 2)) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, D_bg_8015F974, D_bg_8015F978, D_bg_8015F97C,
+6 -6
View File
@@ -96,7 +96,7 @@ void Boss_SpawnActor189(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 ar
}
void func_boss_80043188(Boss* boss) {
boss->info.unk_10 = 30000.0f;
boss->info.cullDistance = 30000.0f;
}
void Boss_CompleteLevel(Player* player, f32 xPos, f32 yPos, f32 zPos) {
@@ -104,17 +104,17 @@ void Boss_CompleteLevel(Player* player, f32 xPos, f32 yPos, f32 zPos) {
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 80);
gCsFrameCount = 0;
D_ctx_80178448 = zPos + D_ctx_80177D20;
D_ctx_80178448 = zPos + gPathProgress;
D_ctx_80178440 = xPos;
D_ctx_80178444 = yPos;
player->state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE;
player->unk_1D0 = 10;
player->timer_1F8 = 50;
player->timer_1FC = 50;
player->csState = 10;
player->csTimer = 50;
player->csEventTimer = 50;
player->unk_000 = 0.0f;
player->unk_004 = 1.0f;
if (player->pos.x < player->unk_0AC) {
if (player->pos.x < player->xPath) {
player->unk_004 = -1.0f;
}
gPlayer[0].vel.x = 0.0f;
+20 -20
View File
@@ -25,8 +25,8 @@ s32 gTeamDamage[6];
u8 gMissionStatus; // next planet path
f32 gGroundHeight;
f32 D_ctx_80177950;
f32 D_ctx_80177968;
f32 D_ctx_80177970;
f32 gPlayerTurnRate;
f32 gPlayerTurnStickMod;
f32 gCsCamEyeX;
f32 gCsCamEyeY;
f32 gCsCamEyeZ;
@@ -63,13 +63,13 @@ u16 gBgmSeqId;
u8 gLevelType;
s32 gSavedObjectLoadIndex;
UNK_TYPE F_80177CA8;
f32 D_ctx_80177CB0;
f32 gSavedPathProgress;
UNK_TYPE F_80177CB8;
f32 gWaterLevel;
f32 D_ctx_80177CC8;
f32 D_ctx_80177CE8;
f32 D_ctx_80177D08;
f32 D_ctx_80177D20;
f32 gPathGroundScroll;
f32 gPathTexScroll;
f32 gPathVelZ;
f32 gPathProgress;
f32 gRadioPortraitScaleY;
f32 gRadioTextBoxScaleY;
f32 gRadioMsgRadioId;
@@ -252,7 +252,7 @@ s32 gHitCount;
s32 gSavedHitCount;
s16 gLifeCount[4];
LaserStrength gLaserStrength[4];
s32 D_ctx_80161AB8;
s32 gCullObjects;
UNK_TYPE F_80161AC0[4];
UNK_TYPE F_80161AD0[4];
UNK_TYPE F_80161AE0[4];
@@ -303,13 +303,13 @@ s32 D_ctx_80177990[4]; // these two are also rumble related
f32 D_ctx_801779A8[4];
u8 gPauseEnabled;
s32 gChargeTimers[4];
f32 D_ctx_801779E4;
f32 D_ctx_801779F4;
s32 D_Timer_80177A00[4];
s32 D_Timer_80177A38[4];
s32 D_Timer_80177A70[4];
s32 D_Timer_80177A88[4];
f32 D_ctx_80177AA0[4];
f32 gPathVelX;
f32 gPathVelY;
s32 gUturnDownTimers[4];
s32 gUturnBrakeTimers[4];
s32 gLoopDownTimers[4];
s32 gLoopBoostTimers[4];
f32 gMuzzleFlashScale[4];
f32 gShieldAlpha[4];
s32 gHasShield[4];
s32 gShieldTimer[4];
@@ -320,12 +320,12 @@ u8 gCoUturnCount;
u8 gGreatFoxIntact;
u8 gTiStartLandmaster;
u16 gControllerRumbleTimers[4];
u16 D_ctx_80177C30[4];
u16 gPlayerScores[4];
s32 D_ctx_80177C50;
s32 D_ctx_80177C70;
s32 D_ctx_80177C78;
s32 D_ctx_80177C8C;
s32 D_ctx_80177C94;
s32 D_ctx_80177C70; // sets camera field of view Y. initialized to 0 and never changed
s32 gTraining360MsgTimer;
s32 gTraining360MsgIndex;
s32 D_ctx_80177C94; // these save player parameters across the Venom -> Andross transition
s32 D_ctx_80177C9C;
s32 D_ctx_80177CA4;
s32 D_ctx_80177CAC;
+486 -486
View File
File diff suppressed because it is too large Load Diff
+125 -109
View File
File diff suppressed because it is too large Load Diff
+15 -15
View File
@@ -122,20 +122,20 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_SCENERY_26, */ {(void*) D_CO_6010A50, 0, (ObjectFunc) NULL, D_CO_603EA74, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_27, */ {(void*) D_CO_60143E0, 0, (ObjectFunc) NULL, D_CO_603EAE0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_28, */ {(void*) D_CO_6014A20, 0, (ObjectFunc) NULL, D_CO_603EB0C, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_29, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60064FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_30, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006518, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_31, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006564, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_32, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60065B0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_33, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60065FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_34, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006648, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_35, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006694, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_36, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60066E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_37, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_600672C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_38, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006778, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_39, */ {(void*) Obj39_Draw, 1, (ObjectFunc) Obj39_Update, gNoHitbox, 6000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_SKULL, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_60064FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_0, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_6006518, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_1, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_6006564, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_2, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_60065B0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_3, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_60065FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_4, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_6006648, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_5, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_6006694, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_6, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_60066E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_7, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_600672C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_8, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, D_TI_6006778, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_ME_TUNNEL, */ {(void*) MeteoTunnel_Draw, 1, (ObjectFunc) MeteoTunnel_Update, gNoHitbox, 6000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_40, */ {(void*) func_edisplay_80059F68, 1, (ObjectFunc) func_enmy_80066D5C, D_CO_603E4A4, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_41, */ {(void*) func_edisplay_80059FDC, 1, (ObjectFunc) func_enmy_80066EA8, D_CO_603E4DC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_42, */ {(void*) Obj42_Draw, 1, (ObjectFunc) Obj42_Update, D_CO_603E514, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_42, */ {(void*) Scenery42_Draw, 1, (ObjectFunc) Scenery42_Update, D_CO_603E514, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_43, */ {(void*) D_ZO_6024AC0, 0, (ObjectFunc) NULL, D_ZO_602B9EC, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_44, */ {(void*) D_ZO_600F560, 0, (ObjectFunc) NULL, D_ZO_602BA20, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_45, */ {(void*) D_ZO_600EC90, 0, (ObjectFunc) NULL, D_ZO_602BAE4, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
@@ -147,7 +147,7 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_SCENERY_51, */ {(void*) D_VE1_6006F50, 0, (ObjectFunc) NULL, D_VE1_601B584, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_52, */ {(void*) D_VE1_6005780, 0, (ObjectFunc) Venom1_80193540, D_VE1_601B5F4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_53, */ {(void*) D_VE1_6003610, 0, (ObjectFunc) NULL, D_VE1_601B644, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_54, */ {(void*) D_CO_6000E00, 0, (ObjectFunc) Obj54_Update, D_CO_603E0EC, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_54, */ {(void*) D_CO_6000E00, 0, (ObjectFunc) Scenery54_Update, D_CO_603E0EC, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_55, */ {(void*) D_CO_6013B50, 0, (ObjectFunc) NULL, D_CO_603E88C, 1000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_56, */ {(void*) Corneria_8018F31C, 2, (ObjectFunc) Corneria_8018F044, D_CO_603E8A8, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_57, */ {(void*) Titania_8018F8B8, 1, (ObjectFunc) Titania_8018F4D8, D_TI_6006BF0, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
@@ -204,7 +204,7 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_SCENERY_108 */ {(void*) D_SY_60102C0, 0, (ObjectFunc) NULL, D_SY_6034588, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_109 */ {(void*) D_SY_60036A0, 0, (ObjectFunc) SectorY_801A4E44, D_SY_6034664, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_110 */ {(void*) D_SY_6005360, 0, (ObjectFunc) NULL, D_SY_6034770, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_111 */ {(void*) Obj111_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_111 */ {(void*) Scenery111_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_112 */ {(void*) D_SY_600F6C0, 0, (ObjectFunc) SectorY_801A52B8, D_SY_60347F0, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_113 */ {(void*) D_SY_601B610, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_114 */ {(void*) D_SY_601C6A0, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
@@ -288,7 +288,7 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_ACTOR_192 */ {(void*) func_edisplay_8005B9A4, 1, (ObjectFunc) func_enmy_8006654C, D_CO_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 },
/* OBJ_ACTOR_193 */ {(void*) func_edisplay_8005BA30, 1, (ObjectFunc) func_enmy_800669A0, D_CO_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_194 */ {(void*) Actor194_Draw, 1, (ObjectFunc) Actor194_Update, gActor194Hitbox, 200.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_195 */ {(void*) Actor195_Draw, 1, (ObjectFunc) Actor195_Update, gNoHitbox, 20000.0f, 0, 1, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_CUTSCENE */ {(void*) ActorCutscene_Draw, 1, (ObjectFunc) ActorCutscene_Update, gNoHitbox, 20000.0f, 0, 1, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_196 */ {(void*) Actor196_Draw, 1, (ObjectFunc) Actor196_Update, D_CO_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ALLRANGE */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorAllRange_Update, gActorAllRangeHItbox, 20000.0f, 0, 1, 39, 1, 1.0f, 1 },
/* OBJ_ACTOR_TEAM_BOSS */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorTeamBoss_Update, gTeamHitbox, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
+113 -113
View File
File diff suppressed because it is too large Load Diff
+56 -57
View File
@@ -31,7 +31,7 @@ s32 BonusText_Display(f32 xPos, f32 yPos, f32 zPos, s32 hits) {
gBonusText[i].pos.x = xPos;
gBonusText[i].pos.y = yPos;
gBonusText[i].pos.z = zPos;
gBonusText[i].unk_10 = 0.0f;
gBonusText[i].rise = 0.0f;
gBonusText[i].timer = 65;
break;
}
@@ -52,14 +52,14 @@ void BonusText_Update(void) {
}
if (gLevelMode == LEVELMODE_ON_RAILS) {
bonus->pos.z -= D_ctx_80177D08;
bonus->pos.z -= gPathVelZ;
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) {
bonus->pos.x += gPlayer[0].vel.x;
bonus->pos.z += gPlayer[0].vel.z;
}
if (bonus->timer < 45) {
Math_SmoothStepToF(&bonus->unk_10, 300.0f, 0.1f, 20.0f, 0.0f);
Math_SmoothStepToF(&bonus->rise, 300.0f, 0.1f, 20.0f, 0.0f);
}
}
}
@@ -83,7 +83,7 @@ void BonusText_Draw(BonusText* bonus) {
f32 sp50;
if (bonus->timer <= 45) {
Matrix_Translate(gGfxMatrix, bonus->pos.x, bonus->pos.y, bonus->pos.z + D_ctx_80177D20, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, bonus->pos.x, bonus->pos.y, bonus->pos.z + gPathProgress, MTXF_APPLY);
Matrix_MultVec3f(gGfxMatrix, &sp60, &sp54);
if ((fabsf(sp54.x) < 20000.0f) && (fabsf(sp54.y) < 20000.0f)) {
@@ -92,7 +92,7 @@ void BonusText_Draw(BonusText* bonus) {
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, sp50, sp50, 1.0f, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, 0.0f, bonus->unk_10, 0.0f, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, 0.0f, bonus->rise, 0.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
if (bonus->hits <= 10) {
@@ -980,7 +980,7 @@ void func_effect_8007A748(Effect* effect) {
}
bool func_effect_8007A774(Player* player, Effect* effect, f32 arg2) {
if ((fabsf(player->unk_138 - effect->obj.pos.z) < arg2) && (fabsf(player->pos.x - effect->obj.pos.x) < arg2) &&
if ((fabsf(player->trueZpos - effect->obj.pos.z) < arg2) && (fabsf(player->pos.x - effect->obj.pos.x) < arg2) &&
(fabsf(player->pos.y - effect->obj.pos.y) < arg2) && (player->timer_498 == 0)) {
Player_ApplyDamage(player, 0, effect->info.damage);
return true;
@@ -1145,7 +1145,7 @@ void func_effect_8007AF30(Effect* effect, f32 xPos, f32 zPos, f32 xVel, f32 zVel
effect->obj.pos.z = zPos;
effect->vel.x = xVel;
effect->vel.z = zVel - D_ctx_80177D08;
effect->vel.z = zVel - gPathVelZ;
effect->scale1 = scale1;
effect->timer_50 = 100;
Object_SetInfo(&effect->info, effect->obj.id);
@@ -2207,7 +2207,7 @@ void func_effect_8007DB70(Effect* effect) {
}
}
effect->obj.rot.y = 180.0f - effect->obj.rot.y;
if ((fabsf(gPlayer[0].unk_138 - effect->obj.pos.z) < 40.0f) &&
if ((fabsf(gPlayer[0].trueZpos - effect->obj.pos.z) < 40.0f) &&
(fabsf(gPlayer[0].pos.x - effect->obj.pos.x) < 80.0f)) {
if ((effect->obj.pos.y < gPlayer[0].pos.y) &&
((gPlayer[0].pos.y - effect->obj.pos.y) < (effect->scale2 * 35.0f)) &&
@@ -2246,7 +2246,7 @@ void func_effect_8007E014(Effect* effect) {
f32 y;
if (gGroundType == 4) {
Ground_801B6E20(effect->obj.pos.x, effect->obj.pos.z + D_ctx_80177D20, &x, &y, &z);
Ground_801B6E20(effect->obj.pos.x, effect->obj.pos.z + gPathProgress, &x, &y, &z);
effect->obj.pos.y = y + 3.0f;
effect->obj.rot.x = RAD_TO_DEG(x);
effect->obj.rot.z = RAD_TO_DEG(z);
@@ -2377,8 +2377,8 @@ void func_effect_8007E6B8(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPo
effect->obj.pos.z = zPos;
Object_SetInfo(&effect->info, effect->obj.id);
sp50 = Math_Atan2F(gPlayer[0].pos.x - xPos, gPlayer[0].unk_138 - zPos);
temp_ft4 = sqrtf(SQ(gPlayer[0].pos.x - xPos) + SQ(gPlayer[0].unk_138 - zPos));
sp50 = Math_Atan2F(gPlayer[0].pos.x - xPos, gPlayer[0].trueZpos - zPos);
temp_ft4 = sqrtf(SQ(gPlayer[0].pos.x - xPos) + SQ(gPlayer[0].trueZpos - zPos));
sp54 = -Math_Atan2F(gPlayer[0].pos.y - yPos, temp_ft4);
Matrix_RotateY(gCalcMatrix, sp50, MTXF_NEW);
@@ -2390,9 +2390,9 @@ void func_effect_8007E6B8(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPo
Matrix_MultVec3f(gCalcMatrix, &sp40, &sp34);
effect->vel.x = sp34.x + D_ctx_801779E4;
effect->vel.y = sp34.y + D_ctx_801779F4;
effect->vel.z = sp34.z - D_ctx_80177D08;
effect->vel.x = sp34.x + gPathVelX;
effect->vel.y = sp34.y + gPathVelY;
effect->vel.z = sp34.z - gPathVelZ;
if ((objId == OBJ_EFFECT_353) || (objId == OBJ_EFFECT_354)) {
effect->obj.rot.x = RAD_TO_DEG(sp54);
@@ -2447,9 +2447,9 @@ void func_effect_8007E93C(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPo
Matrix_MultVec3f(gCalcMatrix, &sp40, &sp34);
effect->vel.x = sp34.x + D_ctx_801779E4;
effect->vel.y = sp34.y + D_ctx_801779F4;
effect->vel.z = sp34.z - D_ctx_80177D08;
effect->vel.x = sp34.x + gPathVelX;
effect->vel.y = sp34.y + gPathVelY;
effect->vel.z = sp34.z - gPathVelZ;
if (objId == OBJ_EFFECT_353) {
effect->obj.rot.x = RAD_TO_DEG(sp54);
@@ -2559,8 +2559,8 @@ void func_effect_8007EE68(ObjectId objId, Vec3f* pos, Vec3f* rot, Vec3f* arg3, V
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
func_effect_8007ED54(&gEffects[i], objId, pos->x + sp68.x, pos->y + sp68.y, pos->z + sp68.z, rot->x, rot->y,
rot->z, arg3->x, arg3->y, arg3->z, sp68.x + D_ctx_801779E4, sp68.y + D_ctx_801779F4,
sp68.z - D_ctx_80177D08, scale2);
rot->z, arg3->x, arg3->y, arg3->z, sp68.x + gPathVelX, sp68.y + gPathVelY,
sp68.z - gPathVelZ, scale2);
break;
}
}
@@ -2582,7 +2582,7 @@ void func_effect_8007F04C(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 xRot
void func_effect_8007F11C(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 speed) {
s32 i;
if ((fabsf(zPos - gPlayer[0].unk_138) > 300.0f) || (fabsf(xPos - gPlayer[0].pos.x) > 300.0f)) {
if ((fabsf(zPos - gPlayer[0].trueZpos) > 300.0f) || (fabsf(xPos - gPlayer[0].pos.x) > 300.0f)) {
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
Matrix_Push(&gCalcMatrix);
@@ -2653,7 +2653,7 @@ void func_effect_8007F438(Effect* effect) {
effect->unk_46--;
}
if (D_ctx_80177D08 < 0.0f) {
if (gPathVelZ < 0.0f) {
effect->vel.z = -10.0f;
}
@@ -2723,7 +2723,7 @@ void func_effect_8007F6B0(Effect* effect) {
yPos = gGroundHeight + 40.0f;
if (gGroundType == 4) {
Ground_801B6E20(effect->obj.pos.x + sin, effect->obj.pos.z + cos + D_ctx_80177D20, &x, &y, &z);
Ground_801B6E20(effect->obj.pos.x + sin, effect->obj.pos.z + cos + gPathProgress, &x, &y, &z);
yPos = y + 30.0f;
}
@@ -2770,7 +2770,7 @@ void func_effect_8007F958(Effect* effect) {
yPos = gGroundHeight + 10.0f;
if (gGroundType == 4) {
Ground_801B6E20(effect->obj.pos.x + sin, effect->obj.pos.z + cos + D_ctx_80177D20, &x, &y, &z);
Ground_801B6E20(effect->obj.pos.x + sin, effect->obj.pos.z + cos + gPathProgress, &x, &y, &z);
yPos = y + 10.0f;
}
@@ -2825,13 +2825,13 @@ bool func_effect_8007FD84(Effect* effect) {
(fabsf(actor->obj.pos.z - effect->obj.pos.z) < 100.0f) &&
(fabsf(actor->obj.pos.x - effect->obj.pos.x) < 100.0f) &&
(fabsf(actor->obj.pos.y - effect->obj.pos.y) < 100.0f)) {
actor->unk_0D0 = 1;
actor->unk_0D2 = 0;
actor->dmgType = 1;
actor->dmgPart = 0;
actor->damage = 10;
if (effect->obj.id == OBJ_EFFECT_354) {
actor->damage = 30;
}
actor->unk_0D4 = 100;
actor->dmgSource = 100;
return true;
}
}
@@ -2855,14 +2855,14 @@ void func_effect_8007FE88(Effect* effect) {
return;
}
if (gPlayer[0].unk_280 != 0) {
if (gPlayer[0].barrelRollAlpha != 0) {
var_fa0 = 100.0f;
}
if (fabsf(gPlayer[0].unk_138 - effect->obj.pos.z) < (50.0f + var_fa0)) {
if (fabsf(gPlayer[0].trueZpos - effect->obj.pos.z) < (50.0f + var_fa0)) {
if ((fabsf(gPlayer[0].pos.x - effect->obj.pos.x) < (30.0f + var_fa0)) &&
(fabsf(gPlayer[0].pos.y - effect->obj.pos.y) < (30.0f + var_fa0))) {
if ((gPlayer[0].unk_280 != 0) || (gPlayer[0].timer_27C != 0)) {
if ((gPlayer[0].barrelRollAlpha != 0) || (gPlayer[0].meteoWarpTimer != 0)) {
effect->obj.rot.y = 90.0f;
effect->obj.rot.x = RAND_FLOAT(360.0f);
Matrix_RotateY(gCalcMatrix, effect->obj.rot.y * M_DTOR, MTXF_NEW);
@@ -2878,16 +2878,16 @@ void func_effect_8007FE88(Effect* effect) {
AUDIO_PLAY_SFX(0x09007011, effect->sfxSource, 0);
}
if ((gPlayer[0].unk_280 == 0) && (gPlayer[0].timer_498 == 0)) {
if ((gPlayer[0].barrelRollAlpha == 0) && (gPlayer[0].timer_498 == 0)) {
Player_ApplyDamage(gPlayer, 0, effect->info.damage);
gPlayer[0].unk_0D8.x = 20.0f;
gPlayer[0].knockback.x = 20.0f;
if (effect->vel.x < 0.0f) {
gPlayer[0].unk_0D8.x *= -1.0f;
gPlayer[0].knockback.x *= -1.0f;
}
if (gCurrentLevel != LEVEL_MACBETH) {
gPlayer[0].unk_0D8.y = 20.0f;
gPlayer[0].knockback.y = 20.0f;
if (effect->vel.y < 0.0f) {
gPlayer[0].unk_0D8.y *= -1.0f;
gPlayer[0].knockback.y *= -1.0f;
}
}
Object_Kill(&effect->obj, effect->sfxSource);
@@ -2896,7 +2896,7 @@ void func_effect_8007FE88(Effect* effect) {
}
if (gGroundType == 4) {
if (Ground_801B6AEC(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z + D_ctx_80177D20) != 0) {
if (Ground_801B6AEC(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z + gPathProgress) != 0) {
Object_Kill(&effect->obj, effect->sfxSource);
}
} else if (effect->obj.pos.y < gGroundHeight) {
@@ -2961,8 +2961,8 @@ void func_effect_8008040C(Effect* effect) {
switch (effect->state) {
case 0:
yRot = Math_Atan2F(gPlayer[0].pos.x - effect->obj.pos.x, gPlayer[0].unk_138 - effect->obj.pos.z);
temp = sqrtf(SQ(gPlayer[0].pos.x - effect->obj.pos.x) + SQ(gPlayer[0].unk_138 - effect->obj.pos.z));
yRot = Math_Atan2F(gPlayer[0].pos.x - effect->obj.pos.x, gPlayer[0].trueZpos - effect->obj.pos.z);
temp = sqrtf(SQ(gPlayer[0].pos.x - effect->obj.pos.x) + SQ(gPlayer[0].trueZpos - effect->obj.pos.z));
xRot = -Math_Atan2F(gPlayer[0].pos.y - effect->obj.pos.y, temp);
Matrix_RotateY(gCalcMatrix, yRot, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, xRot, MTXF_APPLY);
@@ -2970,9 +2970,9 @@ void func_effect_8008040C(Effect* effect) {
srcVelocity.x = 0.0f;
srcVelocity.z = 100.0f;
Matrix_MultVec3f(gCalcMatrix, &srcVelocity, &destVelocity);
effect->vel.x = destVelocity.x + D_ctx_801779E4;
effect->vel.y = destVelocity.y + D_ctx_801779F4;
effect->vel.z = destVelocity.z - D_ctx_80177D08;
effect->vel.x = destVelocity.x + gPathVelX;
effect->vel.y = destVelocity.y + gPathVelY;
effect->vel.z = destVelocity.z - gPathVelZ;
effect->state++;
break;
@@ -2988,14 +2988,14 @@ void func_effect_8008040C(Effect* effect) {
return;
}
if (gPlayer[0].unk_280 != 0) {
if (gPlayer[0].barrelRollAlpha != 0) {
var_fa0 = 100.0f;
}
if (fabsf(gPlayer[0].unk_138 - effect->obj.pos.z) < (50.0f + var_fa0)) {
if (fabsf(gPlayer[0].trueZpos - effect->obj.pos.z) < (50.0f + var_fa0)) {
if ((fabsf(gPlayer[0].pos.x - effect->obj.pos.x) < (30.0f + var_fa0)) &&
(fabsf(gPlayer[0].pos.y - effect->obj.pos.y) < (30.0f + var_fa0))) {
if ((gPlayer[0].unk_280 != 0) || (gPlayer[0].timer_27C != 0)) {
if ((gPlayer[0].barrelRollAlpha != 0) || (gPlayer[0].meteoWarpTimer != 0)) {
effect->obj.rot.y = 90.0f;
effect->obj.rot.x = RAND_FLOAT(360.0f);
Matrix_RotateY(gCalcMatrix, effect->obj.rot.y * M_DTOR, MTXF_NEW);
@@ -3011,23 +3011,22 @@ void func_effect_8008040C(Effect* effect) {
AUDIO_PLAY_SFX(0x09007011, effect->sfxSource, 0);
}
if ((gPlayer[0].unk_280 == 0) && (gPlayer[0].timer_498 == 0)) {
if ((gPlayer[0].barrelRollAlpha == 0) && (gPlayer[0].timer_498 == 0)) {
Player_ApplyDamage(gPlayer, 0, effect->info.damage);
gPlayer[0].unk_0D8.x = 20.0f;
gPlayer[0].knockback.x = 20.0f;
if (effect->vel.x < 0.0f) {
gPlayer[0].unk_0D8.x *= -1.0f;
gPlayer[0].knockback.x *= -1.0f;
}
gPlayer[0].unk_0D8.y = 20.0f;
gPlayer[0].knockback.y = 20.0f;
if (effect->vel.y < 0.0f) {
gPlayer[0].unk_0D8.y *= -1.0f;
gPlayer[0].knockback.y *= -1.0f;
}
Object_Kill(&effect->obj, effect->sfxSource);
}
}
if (gGroundType == 4) {
if (Ground_801B6AEC(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z + D_ctx_80177D20) !=
0) {
if (Ground_801B6AEC(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z + gPathProgress) != 0) {
Object_Kill(&effect->obj, effect->sfxSource);
}
} else if (effect->obj.pos.y < gGroundHeight) {
@@ -3576,7 +3575,7 @@ void func_effect_80081C5C(Effect* effect) {
if (effect->unk_44 != 0) {
Object_Kill(&effect->obj, effect->sfxSource);
func_effect_8007D0E0(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z, 5.0f);
} else if (fabsf(gPlayer[0].unk_138 - effect->obj.pos.z) < 1000.0f) {
} else if (fabsf(gPlayer[0].trueZpos - effect->obj.pos.z) < 1000.0f) {
ActorEvent_8006F0D8(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z, 15.0f);
Object_Kill(&effect->obj, effect->sfxSource);
}
@@ -3766,11 +3765,11 @@ void func_effect_80081C5C(Effect* effect) {
if ((((gGameFrameCount % 16) == 0)) && (effect->timer_50 == 0)) {
D_800D18EC =
RAD_TO_DEG(Math_Atan2F(gPlayer[0].cam.eye.x - gBosses[0].obj.pos.x,
gPlayer[0].cam.eye.z - (gBosses[0].obj.pos.z + D_ctx_80177D20)));
gPlayer[0].cam.eye.z - (gBosses[0].obj.pos.z + gPathProgress)));
D_800D18E8 = RAD_TO_DEG(
-Math_Atan2F(gPlayer[0].cam.eye.y - gBosses[0].obj.pos.y,
sqrtf(SQ(gPlayer[0].cam.eye.z - (gBosses[0].obj.pos.z + D_ctx_80177D20)) +
sqrtf(SQ(gPlayer[0].cam.eye.z - (gBosses[0].obj.pos.z + gPathProgress)) +
SQ(gPlayer[0].cam.eye.x - gBosses[0].obj.pos.x))));
}
if (gBosses[0].timer_050 == 0) {
@@ -3812,7 +3811,7 @@ void func_effect_80081C5C(Effect* effect) {
}
velocity.x = velocity.y = 0.0f;
velocity.z = fabsf(gPlayer[0].unk_138 - effect->obj.pos.z);
velocity.z = fabsf(gPlayer[0].trueZpos - effect->obj.pos.z);
Matrix_MultVec3fNoTranslate(gCalcMatrix, &velocity, &velocityDest);
@@ -4052,7 +4051,7 @@ void func_effect_800837EC(Effect* effect) {
}
effect->obj.rot.y = RAD_TO_DEG(Math_Atan2F(gPlayer[0].cam.eye.x - effect->obj.pos.x,
gPlayer[0].cam.eye.z - (effect->obj.pos.z + D_ctx_80177D20)));
gPlayer[0].cam.eye.z - (effect->obj.pos.z + gPathProgress)));
}
void func_effect_80083B8C(Effect* effect) {
@@ -4116,7 +4115,7 @@ void func_effect_80083D2C(f32 xPos, f32 yPos, f32 zPos, f32 srcZ) {
x = gPlayer[0].pos.x + xSway - xPos;
y = gPlayer[0].pos.y - yPos;
z = gPlayer[0].unk_138 - zPos;
z = gPlayer[0].trueZpos - zPos;
yRot = Math_Atan2F(x, z);
xRot = -Math_Atan2F(y, sqrtf(SQ(x) + SQ(z)));
@@ -4129,7 +4128,7 @@ void func_effect_80083D2C(f32 xPos, f32 yPos, f32 zPos, f32 srcZ) {
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
dest.z -= D_ctx_80177D08;
dest.z -= gPathVelZ;
for (i = 0; i < 6; i++) {
for (j = 0; j < ARRAY_COUNT(gEffects); j++) {
+226 -224
View File
File diff suppressed because it is too large Load Diff
+90 -90
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -100,7 +100,7 @@ void Game_SetGameState(void) {
gNextGameState = GSTATE_NONE;
gSceneSetup = 0;
gFillScreenColor = gBgColor = 0;
D_ctx_80177D20 = 0.0f;
gPathProgress = 0.0f;
if ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelPhase == 2)) {
gFillScreenColor = gBgColor = 0xFFFF; // 248, 248, 248
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255;
@@ -389,7 +389,7 @@ void Game_Update(void) {
Play_ClearObjectData();
gCamCount = 1;
gLifeCount[0] = 2;
D_ctx_80177D20 = 0.0f;
gPathProgress = 0.0f;
D_hud_8016170C = gCsFrameCount = gShowLevelClearStatusScreen = gLevelStartStatusScreenTimer =
gLevelClearScreenTimer = gVsMatchState = gVersusMode = gTitleState = gStarCount = gMapState =
gPlayState = gOptionMenuStatus = gDrawMode = gShowBossHealth = gShowHud = gBgColor =

Some files were not shown because too many files have changed in this diff Show More