mirror of
https://github.com/izzy2lost/Starship.git
synced 2026-07-05 15:19:42 -07:00
+19
-19
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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[];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+125
-109
File diff suppressed because it is too large
Load Diff
+15
-15
@@ -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
File diff suppressed because it is too large
Load Diff
+56
-57
@@ -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
File diff suppressed because it is too large
Load Diff
+90
-90
File diff suppressed because it is too large
Load Diff
@@ -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
Reference in New Issue
Block a user