mirror of
https://github.com/izzy2lost/Starship.git
synced 2026-07-05 15:19:42 -07:00
More actor docs. starting on event IDs (#238)
* id start * stuff * comp and cam * add errors
This commit is contained in:
@@ -414,7 +414,11 @@ endif
|
||||
|
||||
decompress: $(BASEROM)
|
||||
@echo "Decompressing ROM..."
|
||||
@$(PYTHON) $(COMPTOOL) -de $(COMPTOOL_DIR) -m $(MIO0) $(BASEROM) $(BASEROM_UNCOMPRESSED)
|
||||
@$(PYTHON) $(COMPTOOL) -die $(COMPTOOL_DIR) -m $(MIO0) $(BASEROM) $(BASEROM_UNCOMPRESSED)
|
||||
|
||||
compress: $(BASEROM)
|
||||
@echo "Compressing ROM..."
|
||||
@$(PYTHON) $(COMPTOOL) -c -m $(MIO0) $(ROM) $(ROMC)
|
||||
|
||||
extract:
|
||||
@$(RM) -r asm/$(VERSION) bin/$(VERSION)
|
||||
@@ -466,7 +470,7 @@ disasm:
|
||||
# Final ROM
|
||||
$(ROMC): $(BASEROM_UNCOMPRESSED)
|
||||
$(call print,Compressing ROM...,$<,$@)
|
||||
@$(PYTHON) $(COMPTOOL) -c $(ROM) $(ROMC)
|
||||
@$(PYTHON) $(COMPTOOL) -c -m $(MIO0) $(ROM) $(ROMC)
|
||||
|
||||
# Uncompressed ROM
|
||||
$(ROM): $(ELF)
|
||||
@@ -518,4 +522,4 @@ build/src/libultra/libc/ll.o: src/libultra/libc/ll.c
|
||||
# Print target for debugging
|
||||
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
|
||||
|
||||
.PHONY: all uncompressed compressed clean init extract expected format checkformat decompress assets context disasm toolchain
|
||||
.PHONY: all uncompressed compressed clean init extract expected format checkformat decompress compress assets context disasm toolchain
|
||||
|
||||
+29
-29
@@ -26,7 +26,7 @@ extern s32 gPrevPlanetSavedTeamShields[6];
|
||||
extern s32 gTeamDamage[6];
|
||||
extern u8 gMissionStatus;
|
||||
extern f32 gGroundHeight;
|
||||
extern f32 D_ctx_80177950; // sign of something to do with camera z rotations
|
||||
extern f32 D_ctx_80177950;
|
||||
extern f32 gPlayerTurnRate;
|
||||
extern f32 gPlayerTurnStickMod;
|
||||
extern f32 gCsCamEyeX;
|
||||
@@ -35,14 +35,14 @@ extern f32 gCsCamEyeZ;
|
||||
extern f32 gCsCamAtX;
|
||||
extern f32 gCsCamAtY;
|
||||
extern f32 gCsCamAtZ;
|
||||
extern Vec3f gPlayerCamEye;
|
||||
extern Vec3f gPlayerCamAt;
|
||||
extern Vec3f gPlayCamEye;
|
||||
extern Vec3f gPlayCamAt;
|
||||
extern bool gExpertMode;
|
||||
extern s32 D_ctx_80177A10[10];
|
||||
extern f32 D_ctx_80177A48[10];
|
||||
extern s32 gCsFrameCount;
|
||||
extern u8 D_ctx_80177A98;
|
||||
extern u8 D_ctx_80177AB0;
|
||||
extern u8 gDrawGround;
|
||||
extern u8 gDrawBackdrop; // Venom Andross is the only level with multiple backdrops
|
||||
extern u8 gAqDrawMode;
|
||||
extern s32 gTitleState;
|
||||
extern s32 gMainController;
|
||||
@@ -81,11 +81,11 @@ extern s32 gRingPassCount;
|
||||
extern Vec3f gFormationInitRot;
|
||||
extern Vec3f gFormationInitPos;
|
||||
extern UNK_TYPE F_80178020;
|
||||
extern s32 D_ctx_8017812C;
|
||||
extern s32 gGroundClipMode;
|
||||
extern LevelId gCurrentLevel;
|
||||
extern s32 gLevelPhase;
|
||||
extern s32 gBossActive;
|
||||
extern s32 D_ctx_8017828C;
|
||||
extern bool gKillEventActors;
|
||||
extern s32 gUseDynaFloor;
|
||||
extern s32 gRadioState;
|
||||
extern s32 gCurrentRadioPortrait;
|
||||
@@ -132,22 +132,22 @@ extern s32 gFogFar;
|
||||
extern UNK_TYPE F_801783E0[12];
|
||||
extern s32 gStarCount;
|
||||
extern f32 gStarWarpDistortion;
|
||||
extern f32 D_ctx_80178418;
|
||||
extern f32 gCOComplete2CamRotY;
|
||||
extern UNK_TYPE F_8017841C;
|
||||
extern f32 gStarfieldX;
|
||||
extern f32 gStarfieldY;
|
||||
extern f32 gStarfieldRoll;
|
||||
extern f32 D_ctx_8017842C;
|
||||
extern f32 D_ctx_80178430;
|
||||
extern f32 gStarfieldScrollX;
|
||||
extern f32 gStarfieldScrollY;
|
||||
extern UNK_TYPE F_80178434;
|
||||
extern UNK_TYPE F_80178438;
|
||||
extern UNK_TYPE F_8017843C;
|
||||
extern f32 D_ctx_80178440;
|
||||
extern f32 D_ctx_80178444;
|
||||
extern f32 D_ctx_80178448;
|
||||
extern f32 D_ctx_80178450[3];
|
||||
extern f32 D_ctx_80178460[3];
|
||||
extern f32 D_ctx_80178470[3];
|
||||
extern f32 gBossDeathCamAtX;
|
||||
extern f32 gBossDeathCamAtY;
|
||||
extern f32 gBossDeathCamAtZ;
|
||||
extern f32 gCsTeamTargetsX[3];
|
||||
extern f32 gCsTeamTargetsY[3];
|
||||
extern f32 gCsTeamTargetsZ[3];
|
||||
extern f32 gCameraShakeY;
|
||||
extern s32 gCameraShake;
|
||||
extern s32 D_ctx_80178484;
|
||||
@@ -155,10 +155,10 @@ extern bool gLoadLevelObjects;
|
||||
extern UNK_TYPE F_8017848C;
|
||||
extern UNK_TYPE F_80178490;
|
||||
extern s32 D_ctx_80178494;
|
||||
extern f32 D_ctx_80178498;
|
||||
extern f32 D_ctx_8017849C;
|
||||
extern f32 D_ctx_801784A0;
|
||||
extern s32 D_ctx_801784A4;
|
||||
extern f32 gShotHitPosZ;
|
||||
extern f32 gShotHitPosX;
|
||||
extern f32 gShotHitPosY;
|
||||
extern s32 gZOSnakeWaypointCount;
|
||||
extern UNK_TYPE F_801784A8;
|
||||
extern GroundType gGroundType;
|
||||
extern UNK_TYPE F_801784B0;
|
||||
@@ -221,7 +221,7 @@ extern s32 D_ctx_80161A84;
|
||||
extern s32 gGroundSurface;
|
||||
extern s32 gSavedGroundSurface;
|
||||
extern u8 gGoldRingCount[4];
|
||||
extern u8 D_ctx_80161A94[4];
|
||||
extern u8 gSavedGoldRingCount[4];
|
||||
extern s32 gHitCount;
|
||||
extern s32 gSavedHitCount;
|
||||
extern s16 gLifeCount[4];
|
||||
@@ -290,7 +290,7 @@ extern u8 gGreatFoxIntact;
|
||||
extern u8 gTiStartLandmaster;
|
||||
extern u16 gControllerRumbleTimers[4];
|
||||
extern u16 gPlayerScores[4];
|
||||
extern s32 D_ctx_80177C50;
|
||||
extern s32 gCircleWipeFrame;
|
||||
extern s32 D_ctx_80177C70;
|
||||
extern s32 gTraining360MsgTimer;
|
||||
extern s32 gTraining360MsgIndex;
|
||||
@@ -310,10 +310,10 @@ extern s32 gLeftWingFlashTimer[4];
|
||||
extern s32 gRightWingDebrisTimer[4];
|
||||
extern s32 gLeftWingDebrisTimer[4];
|
||||
extern s32 gBombCount[4];
|
||||
extern s32 D_ctx_80177DB8[4];
|
||||
extern s32 D_ctx_80177DD0[4][10];
|
||||
extern s32 D_ctx_80177E74;
|
||||
extern s32 D_ctx_80177E7C;
|
||||
extern s32 gVsPoints[4];
|
||||
extern s32 gVsKills[4][10];
|
||||
extern s32 gVsMatchOver;
|
||||
extern s32 gVsMatchStart;
|
||||
extern bool gChangeTo360;
|
||||
extern Vec3f gTeamArrowsViewPos[10];
|
||||
extern f32 D_ctx_80177F20[65];
|
||||
@@ -327,16 +327,16 @@ extern u32* gStarFillColors;
|
||||
extern UNK_TYPE F_801782A0;
|
||||
extern Scenery360* gScenery360;
|
||||
extern UNK_TYPE F_801782B0;
|
||||
extern s32 D_ctx_801782B8;
|
||||
extern s32 gDrawSmallRocks;
|
||||
extern s32 D_ctx_801782BC;
|
||||
extern PosRot* D_ctx_801782C4;
|
||||
extern PosRot* gZOSnakePosRots;
|
||||
extern f32* D_ctx_801782CC;
|
||||
extern f32* D_ctx_801782D4;
|
||||
extern f32* D_ctx_801782DC;
|
||||
extern f32* D_ctx_801782E4;
|
||||
extern f32* D_ctx_801782EC;
|
||||
extern UNK_TYPE F_801782F4;
|
||||
extern s32 D_ctx_801782FC;
|
||||
extern s32 gDynaFloorTimer;
|
||||
extern UNK_TYPE F_80178304;
|
||||
extern UNK_TYPE F_8017830C;
|
||||
extern UNK_TYPE F_80178314;
|
||||
|
||||
+3
-7
@@ -21,7 +21,7 @@ void Actor272_Draw(Actor*);
|
||||
bool AllRange_PlayMessage(u16*, RadioCharacterId);
|
||||
void AllRange_GreatFoxRepair(Player*);
|
||||
void AllRange_ClearRadio(void);
|
||||
void func_360_8002EE64(Actor* this);
|
||||
void ActorAllRange_SetShadowData(Actor* this);
|
||||
void ActorAllRange_SpawnTeam(void);
|
||||
void ActorAllRange_PlayMessage(u16* msg, RadioCharacterId character);
|
||||
void ActorAllRange_UpdateStarWolfEvents(Actor*);
|
||||
@@ -48,7 +48,6 @@ void Background_DrawSun(void);
|
||||
void Background_DrawLensFlare(void);
|
||||
void Background_dummy_80040CDC(void);
|
||||
void Background_DrawGround(void);
|
||||
void func_bg_80042D38(void);
|
||||
|
||||
// fox_boss
|
||||
void Boss_AwardBonus(Boss* boss);
|
||||
@@ -227,7 +226,7 @@ void Actor_SetupPlayerShot(PlayerShotId, PlayerShot*, s32, f32, f32, f32, f32, f
|
||||
void Actor_SpawnPlayerLaser(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
|
||||
void Actor_SpawnGreatFoxLaser(s32 actorId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot,
|
||||
f32 zRot);
|
||||
void ActorEvent_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 scale1);
|
||||
void ActorEvent_SpawnEffect347(f32 xPos, f32 yPos, f32 zPos, f32 scale1);
|
||||
void ActorEvent_8006F254(Actor*);
|
||||
void ActorEvent_Update(Actor*);
|
||||
s32 Scenery111_Draw(Scenery*);
|
||||
@@ -373,10 +372,7 @@ void func_effect_80083FA8(Effect*);
|
||||
void func_effect_80084194(Effect*);
|
||||
|
||||
// fox_fade
|
||||
void func_fade_80084370(s32);
|
||||
void func_fade_800843FC(s32);
|
||||
void func_fade_80084488(s32);
|
||||
void func_fade_80084688(s32, s32);
|
||||
void Wipe_Draw(WipeMode mode, s32 frame);
|
||||
|
||||
// fox_hud
|
||||
void func_hud_80084B94(s32);
|
||||
|
||||
@@ -64,10 +64,20 @@
|
||||
|
||||
#define VTX_T(x,y,z,s,t,cr,cg,cb,a) { { x, y, z }, 0, { s, t }, { cr, cg, cb, a } }
|
||||
|
||||
typedef enum WipeMode {
|
||||
WIPE_CIRCULAR,
|
||||
WIPE_HORIZONTAL,
|
||||
WIPE_VERTICAL,
|
||||
} WipeMode;
|
||||
|
||||
typedef struct {
|
||||
u8 r, g, b;
|
||||
} Color_RGB8; // size = 0x3
|
||||
|
||||
typedef struct Color_RGBA32 {
|
||||
u8 r, g, b, a;
|
||||
} Color_RGBA32; // size = 0x4
|
||||
|
||||
typedef union {
|
||||
u16 data[SCREEN_HEIGHT * SCREEN_WIDTH];
|
||||
u16 array[SCREEN_HEIGHT][SCREEN_WIDTH];
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
// struct Dummy3 {int x;};
|
||||
// struct Dummy4 {int x;};
|
||||
// struct Dummy5 {int x;};
|
||||
struct Dummy6 {int x;};
|
||||
struct Dummy7 {int x;};
|
||||
struct Dummy8 {int x;};
|
||||
// struct Dummy6 {int x;};
|
||||
// struct Dummy7 {int x;};
|
||||
// struct Dummy8 {int x;};
|
||||
struct Dummy9 {int x;};
|
||||
struct Dummy10 {int x;};
|
||||
struct Dummy11 {int x;};
|
||||
|
||||
+18
-18
@@ -325,8 +325,8 @@ typedef enum EventActorId {
|
||||
/* 18 */ EVID_18,
|
||||
/* 19 */ EVID_19,
|
||||
/* 20 */ EVID_20,
|
||||
/* 21 */ EVID_21,
|
||||
/* 22 */ EVID_22,
|
||||
/* 21 */ EVID_A6_MISSILE,
|
||||
/* 22 */ EVID_A6_ROCKET,
|
||||
/* 23 */ EVID_23,
|
||||
/* 24 */ EVID_24,
|
||||
/* 25 */ EVID_25,
|
||||
@@ -342,12 +342,12 @@ typedef enum EventActorId {
|
||||
/* 35 */ EVID_35,
|
||||
/* 36 */ EVID_36,
|
||||
/* 37 */ EVID_37,
|
||||
/* 38 */ EVID_38,
|
||||
/* 38 */ EVID_SX_WARP_GATE,
|
||||
/* 39 */ EVID_39,
|
||||
/* 40 */ EVID_40,
|
||||
/* 40 */ EVID_EVENT_HANDLER,
|
||||
/* 41 */ EVID_41,
|
||||
/* 42 */ EVID_42,
|
||||
/* 43 */ EVID_43,
|
||||
/* 43 */ EVID_TEAMMATE,
|
||||
/* 44 */ EVID_44,
|
||||
/* 45 */ EVID_45,
|
||||
/* 46 */ EVID_46,
|
||||
@@ -371,28 +371,28 @@ typedef enum EventActorId {
|
||||
/* 64 */ EVID_64,
|
||||
/* 65 */ EVID_65,
|
||||
/* 66 */ EVID_66,
|
||||
/* 67 */ EVID_67,
|
||||
/* 67 */ EVID_METEO_PYRAMID_SHIP,
|
||||
/* 68 */ EVID_68,
|
||||
/* 69 */ EVID_69,
|
||||
/* 70 */ EVID_70,
|
||||
/* 71 */ EVID_71,
|
||||
/* 71 */ EVID_WING_REPAIR,
|
||||
/* 72 */ EVID_72,
|
||||
/* 73 */ EVID_73,
|
||||
/* 74 */ EVID_74,
|
||||
/* 75 */ EVID_75,
|
||||
/* 76 */ EVID_76,
|
||||
/* 77 */ EVID_77,
|
||||
/* 78 */ EVID_78,
|
||||
/* 78 */ EVID_SUPPLY_CRATE,
|
||||
/* 79 */ EVID_79,
|
||||
/* 80 */ EVID_80,
|
||||
/* 81 */ EVID_81,
|
||||
/* 82 */ EVID_82,
|
||||
/* 83 */ EVID_83,
|
||||
/* 83 */ EVID_AQ_CLAM,
|
||||
/* 84 */ EVID_84,
|
||||
/* 85 */ EVID_85,
|
||||
/* 86 */ EVID_86,
|
||||
/* 85 */ EVID_BILL,
|
||||
/* 86 */ EVID_KATT,
|
||||
/* 87 */ EVID_87,
|
||||
/* 88 */ EVID_88,
|
||||
/* 88 */ EVID_AQ_STARFISH,
|
||||
/* 89 */ EVID_89,
|
||||
/* 90 */ EVID_90,
|
||||
/* 91 */ EVID_91,
|
||||
@@ -406,12 +406,12 @@ typedef enum EventActorId {
|
||||
/* 99 */ EVID_99,
|
||||
/* 100 */ EVID_100,
|
||||
/* 101 */ EVID_101,
|
||||
/* 102 */ EVID_102,
|
||||
/* 103 */ EVID_103,
|
||||
/* 104 */ EVID_104,
|
||||
/* 105 */ EVID_105,
|
||||
/* 106 */ EVID_106,
|
||||
/* 107 */ EVID_107,
|
||||
/* 102 */ EVID_TR_BARRIER,
|
||||
/* 103 */ EVID_ANDROSS_GATE,
|
||||
/* 104 */ EVID_ANDROSS_GATE_2,
|
||||
/* 105 */ EVID_SX_WARP_ENMY,
|
||||
/* 106 */ EVID_KILLER_BEE,
|
||||
/* 107 */ EVID_MA_SHOT_GATE,
|
||||
/* 200 */ EVID_200 = 200,
|
||||
/* 300 */ EVID_300 = 300,
|
||||
/* 4095*/ EVID_FFF = 4095,
|
||||
|
||||
+18
-23
@@ -101,10 +101,7 @@ typedef struct {
|
||||
/* 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;
|
||||
/* 0x2C */ Color_RGBA32 prim;
|
||||
} TexturedLine; // size = 0x30
|
||||
|
||||
typedef struct {
|
||||
@@ -155,7 +152,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x00 */ Object obj;
|
||||
/* 0x1C */ ObjectInfo info;
|
||||
/* 0x40 */ u8 unk_40;
|
||||
/* 0x40 */ u8 pathIndex;
|
||||
/* 0x41 */ char unk_41[7];
|
||||
/* 0x48 */ f32 sfxSource[3];
|
||||
/* 0x54 */ f32 unk_54;
|
||||
@@ -170,9 +167,7 @@ typedef struct {
|
||||
/* 0x4C */ s32 timer_4C;
|
||||
/* 0x50 */ s8 dmgType;
|
||||
/* 0x54 */ s32 dmgPart;
|
||||
/* 0x58 */ f32 unk_58;
|
||||
/* 0x5C */ f32 unk_5C;
|
||||
/* 0x60 */ f32 unk_60;
|
||||
/* 0x58 */ Vec3f effectVel;
|
||||
/* 0x64 */ Vec3f vel;
|
||||
/* 0x70 */ f32 sfxSource[3];
|
||||
/* 0x7C */ char pad7C[4];
|
||||
@@ -183,9 +178,9 @@ typedef struct {
|
||||
/* 0x1C */ ObjectInfo info;
|
||||
/* 0x40 */ s32 index;
|
||||
/* 0x44 */ char pad44[1];
|
||||
/* 0x45 */ u8 unk_45;
|
||||
/* 0x46 */ s8 unk_46;
|
||||
/* 0x48 */ s32 unk_48;
|
||||
/* 0x45 */ u8 sceneryId;
|
||||
/* 0x46 */ s8 destroy;
|
||||
/* 0x48 */ s32 toLeft;
|
||||
} Sprite; // size = 0x4C
|
||||
|
||||
typedef struct {
|
||||
@@ -245,19 +240,19 @@ typedef struct {
|
||||
/* 0x058 */ s16 timer_058;
|
||||
/* 0x05A */ s16 timer_05A;
|
||||
/* 0x05C */ s16 timer_05C;
|
||||
/* 0x05E */ u8 unk_05E;
|
||||
/* 0x05E */ u8 drawShadow;
|
||||
/* 0x060 */ s16 health;
|
||||
/* 0x062 */ s8 dmgType;
|
||||
/* 0x064 */ s16 damage;
|
||||
/* 0x066 */ s16 dmgPart;
|
||||
/* 0x068 */ f32 unk_068;
|
||||
/* 0x068 */ f32 yOffset;
|
||||
/* 0x06C */ Vec3f vel;
|
||||
/* 0x078 */ Vec3f unk_078;
|
||||
/* 0x078 */ Vec3f rot_078;
|
||||
/* 0x084 */ f32 gravity;
|
||||
/* 0x088 */ s16 swork[40];
|
||||
/* 0x0D8 */ f32 fwork[50];
|
||||
/* 0x1A0 */ Vec3f vwork[50];
|
||||
/* 0x3F8 */ f32 unk_3F8;
|
||||
/* 0x3F8 */ f32 scale;
|
||||
/* 0x3FC */ f32 sfxSource[3];
|
||||
} Boss; // size = 0x408
|
||||
|
||||
@@ -279,10 +274,10 @@ typedef struct {
|
||||
/* 0x048 */ s16 unk_048;
|
||||
/* 0x04A */ s16 unk_04A;
|
||||
/* 0x04C */ s16 timer_04C;
|
||||
/* 0x04E */ s16 unk_04E;
|
||||
/* 0x04E */ s16 counter_04E;
|
||||
/* 0x050 */ s32 iwork[25];
|
||||
/* 0x0B4 */ s16 unk_0B4;
|
||||
/* 0x0B6 */ s16 unk_0B6;
|
||||
/* 0x0B4 */ s16 eventType;
|
||||
/* 0x0B6 */ s16 animFrame; // used for model type in ActorAllRange and ActorCutscene
|
||||
/* 0x0B8 */ s16 state;
|
||||
/* 0x0BA */ char pad0BA[0x2];
|
||||
/* 0x0BC */ u16 timer_0BC;
|
||||
@@ -291,8 +286,8 @@ typedef struct {
|
||||
/* 0x0C2 */ u16 timer_0C2;
|
||||
/* 0x0C4 */ u16 timer_0C4;
|
||||
/* 0x0C6 */ u16 timer_0C6;
|
||||
/* 0x0C8 */ u8 unk_0C8;
|
||||
/* 0x0C9 */ u8 unk_0C9;
|
||||
/* 0x0C8 */ u8 unk_0C8; // may have been used for scenery shadowing
|
||||
/* 0x0C9 */ u8 drawShadow;
|
||||
/* 0x0CA */ u8 lockOnTimers[4];
|
||||
/* 0x0CE */ s16 health;
|
||||
/* 0x0D0 */ s8 dmgType;
|
||||
@@ -300,10 +295,10 @@ typedef struct {
|
||||
/* 0x0D4 */ s16 dmgSource;
|
||||
/* 0x0D6 */ u16 damage;
|
||||
/* 0x0D8 */ Vec3f hitPos;
|
||||
/* 0x0E4 */ s16 aiType;
|
||||
/* 0x0E6 */ s16 aiIndex;
|
||||
/* 0x0E4 */ s16 aiType; // Actor index for AllRange, script index for Event
|
||||
/* 0x0E6 */ s16 aiIndex; // Target index for AllRange, program counter for Event
|
||||
/* 0x0E8 */ Vec3f vel;
|
||||
/* 0x0F4 */ Vec3f unk_0F4;
|
||||
/* 0x0F4 */ Vec3f rot_0F4;
|
||||
/* 0x100 */ f32 sfxSource[3];
|
||||
/* 0x10C */ f32 gravity;
|
||||
/* 0x110 */ f32 scale;
|
||||
|
||||
@@ -205,10 +205,10 @@ typedef struct Player {
|
||||
/* 0x104 */ Vec3f rot_104;
|
||||
/* 0x110 */ f32 boostSpeed;
|
||||
/* 0x114 */ f32 yRot_114;
|
||||
/* 0x118 */ f32 yRot_118;
|
||||
/* 0x118 */ f32 pathChangeYaw;
|
||||
/* 0x11C */ f32 yRotVel_11C;
|
||||
/* 0x120 */ f32 xRot_120;
|
||||
/* 0x124 */ f32 xRot_124;
|
||||
/* 0x124 */ f32 pathChangePitch;
|
||||
/* 0x128 */ char pad128[4];
|
||||
/* 0x12C */ f32 zRotBank;
|
||||
/* 0x130 */ f32 zRotBarrelRoll;
|
||||
@@ -237,7 +237,7 @@ typedef struct Player {
|
||||
/* 0x18C */ f32 unk_18C;
|
||||
/* 0x190 */ f32 unk_190;
|
||||
/* 0x194 */ f32 unk_194;
|
||||
/* 0x198 */ s32 savedCockpitView;
|
||||
/* 0x198 */ s32 savedAlternateView;
|
||||
/* 0x19C */ s32 unk_19C;
|
||||
/* 0x1A0 */ s32 unk_1A0;
|
||||
/* 0x1A4 */ s32 unk_1A4;
|
||||
@@ -266,7 +266,7 @@ typedef struct Player {
|
||||
/* 0x204 */ s32 unk_204;
|
||||
/* 0x208 */ s32 unk_208;
|
||||
/* 0x20C */ s32 unk_20C;
|
||||
/* 0x210 */ s32 timer_210;
|
||||
/* 0x210 */ s32 pathChangeTimer;
|
||||
/* 0x214 */ s32 timer_214;
|
||||
/* 0x218 */ s32 timer_218;
|
||||
/* 0x21C */ s32 unk_21C;
|
||||
@@ -276,7 +276,7 @@ typedef struct Player {
|
||||
/* 0x22C */ s32 whooshTimer;
|
||||
/* 0x230 */ s32 unk_230;
|
||||
/* 0x234 */ s32 unk_234;
|
||||
/* 0x238 */ s32 cockpitView;
|
||||
/* 0x238 */ s32 alternateView;
|
||||
/* 0x23C */ s32 shadowing;
|
||||
/* 0x240 */ s32 unk_240;
|
||||
/* 0x244 */ s32 shotTimer;
|
||||
|
||||
@@ -86,7 +86,7 @@ void Timer_CompleteTask(TimerTask*);
|
||||
void Timer_Wait(u64);
|
||||
|
||||
void Fault_ThreadEntry(OSMesg);
|
||||
void func_80007FE4(FrameBuffer*, u16, u16);
|
||||
void Fault_SetFrameBuffer(FrameBuffer*, u16, u16);
|
||||
void Fault_Init(void);
|
||||
|
||||
typedef enum {
|
||||
|
||||
+6
-6
@@ -40,18 +40,18 @@ s32 vsprintf(char* dst, const char* fmt, va_list args);
|
||||
void Game_Initialize(void);
|
||||
void Game_Update(void);
|
||||
|
||||
extern s32 gShowCrosshairs[];
|
||||
extern s32 D_game_800D2870;
|
||||
extern bool gShowCrosshairs[];
|
||||
extern bool D_game_800D2870;
|
||||
|
||||
extern f32 D_game_80161A10;
|
||||
extern f32 D_game_80161A14;
|
||||
extern f32 gNextVsViewScale;
|
||||
extern f32 gVsViewScale;
|
||||
extern s32 gPlayerInactive[4];
|
||||
extern s32 D_game_80161A28;
|
||||
extern s32 gVsMenuSelection;
|
||||
extern u8 gShowHud;
|
||||
extern u16 gNextLevelPhase;
|
||||
extern u16 gNextLevel;
|
||||
extern u16 gNextGameState;
|
||||
extern u16 D_game_80161A34;
|
||||
extern u16 gLastGameState;
|
||||
extern u16 gBgColor;
|
||||
extern u8 gBlurAlpha;
|
||||
extern u8 gGameStandby;
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ extern Vec3f D_tank_800C9F2C;
|
||||
|
||||
// fox_display
|
||||
extern s32 D_display_800CA220;
|
||||
extern f32 D_display_800CA230;
|
||||
extern f32 gCamDistortion;
|
||||
extern Actor* gTeamHelpActor;
|
||||
extern s32 gTeamHelpTimer;
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ func_edisplay_8005B848 = 0x8005B848;
|
||||
func_edisplay_8005B9A4 = 0x8005B9A4;
|
||||
func_edisplay_8005BA30 = 0x8005BA30;
|
||||
func_edisplay_8005BAAC = 0x8005BAAC;
|
||||
func_edisplay_8005BAB4 = 0x8005BAB4;
|
||||
Object_SetShadowDL = 0x8005BAB4;
|
||||
ItemCheckpoint_Draw = 0x8005C5F0;
|
||||
ItemSilverRing_Draw = 0x8005C900;
|
||||
ItemSilverStar_Draw = 0x8005C9C0;
|
||||
@@ -348,18 +348,18 @@ TexturedLine_UpdateAll = 0x8006A38C;
|
||||
Object_Update = 0x8006A3E8;
|
||||
|
||||
// fox_enmy2
|
||||
D_800D0DBC = 0x800D0DBC;//size:24
|
||||
sEventTexLineColors = 0x800D0DBC;//size:24
|
||||
|
||||
// fox_game
|
||||
D_game_80161A10 = 0x80161A10;
|
||||
D_game_80161A14 = 0x80161A14;
|
||||
gNextVsViewScale = 0x80161A10;
|
||||
gVsViewScale = 0x80161A14;
|
||||
gPlayerInactive = 0x80161A18; //size:0x10
|
||||
D_game_80161A28 = 0x80161A28;
|
||||
gVsMenuSelection = 0x80161A28;
|
||||
gShowHud = 0x80161A2C;
|
||||
gNextLevelPhase = 0x80161A2E;
|
||||
gNextLevel = 0x80161A30;
|
||||
gNextGameState = 0x80161A32;
|
||||
D_game_80161A34 = 0x80161A34;
|
||||
gLastGameState = 0x80161A34;
|
||||
gBgColor = 0x80161A36;
|
||||
gBlurAlpha = 0x80161A38;
|
||||
gGameStandby = 0x80161A39;
|
||||
@@ -402,7 +402,7 @@ gArwingSpeed = 0x80161A54;
|
||||
D_play_80161A5C = 0x80161A5C;
|
||||
gScreenFlashTimer = 0x80161A60;
|
||||
gDropHitCountItem = 0x80161A62;
|
||||
D_play_80161A64 = 0x80161A64;
|
||||
sPlayWingSplash = 0x80161A64;
|
||||
sEnvironment = 0x80161A68;
|
||||
gVenomHardClear = 0x800D2F68; //type:u8
|
||||
|
||||
@@ -489,8 +489,8 @@ D_ctx_801779A8 = 0x801779A8;
|
||||
gCsCamAtY = 0x801779B8;
|
||||
gCsCamAtZ = 0x801779C0;
|
||||
gChargeTimers = 0x801779C8;
|
||||
gPlayerCamEye = 0x801779D8;
|
||||
gPlayerCamAt = 0x801779E8;
|
||||
gPlayCamEye = 0x801779D8;
|
||||
gPlayCamAt = 0x801779E8;
|
||||
gExpertMode = 0x801779F8;
|
||||
gUturnDownTimers = 0x80177A00;
|
||||
D_ctx_80177A10 = 0x80177A10;//size:0x28
|
||||
@@ -499,9 +499,9 @@ D_ctx_80177A48 = 0x80177A48;//size:0x28
|
||||
gLoopDownTimers = 0x80177A70;//size:0x10
|
||||
gCsFrameCount = 0x80177A80;
|
||||
gLoopBoostTimers = 0x80177A88;//size:0x10
|
||||
D_ctx_80177A98 = 0x80177A98;
|
||||
gDrawGround = 0x80177A98;
|
||||
gMuzzleFlashScale = 0x80177AA0;
|
||||
D_ctx_80177AB0 = 0x80177AB0;
|
||||
gDrawBackdrop = 0x80177AB0;
|
||||
gShieldAlpha = 0x80177AB8;
|
||||
gAqDrawMode = 0x80177AC8;
|
||||
gHasShield = 0x80177AD0;
|
||||
@@ -519,7 +519,7 @@ gMissionMedal = 0x80177BB0;
|
||||
gControllerRumbleTimers = 0x80177BD0;
|
||||
gPlanetPathStatus = 0x80177BD8;
|
||||
gPlayerScores = 0x80177C30;
|
||||
D_ctx_80177C50 = 0x80177C50;
|
||||
gCircleWipeFrame = 0x80177C50;
|
||||
D_ctx_80177C58 = 0x80177C58;
|
||||
gOptionSoundMode = 0x80177C74;
|
||||
gVolumeSettings = 0x80177C80;
|
||||
@@ -558,7 +558,7 @@ gTeamArrowsViewPos = 0x80177E98;
|
||||
gFormationInitPos = 0x80177F10;
|
||||
D_ctx_80177F20 = 0x80177F20; //size:0xF4
|
||||
D_ctx_80178028 = 0x80178028; //size:0xF4
|
||||
D_ctx_8017812C = 0x8017812C;
|
||||
gGroundClipMode = 0x8017812C;
|
||||
D_ctx_80178130 = 0x80178130; //size:0xF4
|
||||
gCurrentLevel = 0x80178234;
|
||||
D_ctx_80178238 = 0x80178238;//size:0x3D type:u8
|
||||
@@ -566,7 +566,7 @@ gLevelPhase = 0x8017827C;
|
||||
gPlayer = 0x80178280;
|
||||
gBossActive = 0x80178284;
|
||||
gStarOffsetsX = 0x80178288;
|
||||
D_ctx_8017828C = 0x8017828C;
|
||||
gKillEventActors = 0x8017828C;
|
||||
gStarOffsetsY = 0x80178290;
|
||||
gUseDynaFloor = 0x80178294;
|
||||
gStarFillColors = 0x80178298;
|
||||
@@ -575,7 +575,7 @@ gCurrentRadioPortrait = 0x801782A4;
|
||||
gScenery360 = 0x801782A8;
|
||||
gRadioStateTimer = 0x801782AC;
|
||||
gRadioMouthTimer = 0x801782B4;
|
||||
D_ctx_801782B8 = 0x801782B8;
|
||||
gDrawSmallRocks = 0x801782B8;
|
||||
D_ctx_801782BC = 0x801782BC;
|
||||
D_ctx_801782C0 = 0x801782C0;
|
||||
D_ctx_801782D0 = 0x801782D0;
|
||||
@@ -583,7 +583,7 @@ D_ctx_801782D4 = 0x801782D4;
|
||||
gRadioMsgCharIndex = 0x801782D8;
|
||||
gRadioMsgId = 0x801782E8;
|
||||
gMsgCharIsPrinting = 0x801782F8;
|
||||
D_ctx_801782FC = 0x801782FC;
|
||||
gDynaFloorTimer = 0x801782FC;
|
||||
gHideRadio = 0x80178300;
|
||||
gRadioMsg = 0x80178308;
|
||||
gLevelObjects = 0x80178310;
|
||||
@@ -614,15 +614,15 @@ gStarCount = 0x80178410;
|
||||
gStarfieldX = 0x80178420;
|
||||
gStarfieldY = 0x80178424;
|
||||
gStarfieldRoll = 0x80178428;
|
||||
D_ctx_8017842C = 0x8017842C;
|
||||
D_ctx_80178430 = 0x80178430;
|
||||
D_ctx_80178440 = 0x80178440;
|
||||
D_ctx_80178444 = 0x80178444;
|
||||
D_ctx_80178448 = 0x80178448;
|
||||
gStarfieldScrollX = 0x8017842C;
|
||||
gStarfieldScrollY = 0x80178430;
|
||||
gBossDeathCamAtX = 0x80178440;
|
||||
gBossDeathCamAtY = 0x80178444;
|
||||
gBossDeathCamAtZ = 0x80178448;
|
||||
gCameraShakeY = 0x8017847C;
|
||||
gCameraShake = 0x80178480;
|
||||
gLoadLevelObjects = 0x80178488;
|
||||
D_ctx_801784A4 = 0x801784A4;
|
||||
gZOSnakeWaypointCount = 0x801784A4;
|
||||
gGroundType = 0x801784AC;
|
||||
gLight1xRot = 0x801784B8;
|
||||
gLight1yRot = 0x801784BC;
|
||||
@@ -728,12 +728,12 @@ Player_ArwingBank = 0x800ADA28;
|
||||
Player_UseTankJets = 0x800ADD98;
|
||||
Player_UpdatePath = 0x800ADF58;
|
||||
Player_CheckBounds360 = 0x800AE278;
|
||||
Player_ArwingMove360 = 0x800AE4A4;
|
||||
Player_MoveArwing360 = 0x800AE4A4;
|
||||
Player_PerformLoop = 0x800AECAC;
|
||||
Player_ArwingMoveOnRails = 0x800AF07C;
|
||||
Player_TankMove360 = 0x800AF928;
|
||||
Player_MoveArwingOnRails = 0x800AF07C;
|
||||
Player_MoveTank360 = 0x800AF928;
|
||||
Player_OnFootUpdateSpeed = 0x800B00C0;
|
||||
Player_OnFootMove = 0x800B0194;
|
||||
Player_MoveOnFoot = 0x800B0194;
|
||||
Player_Setup = 0x800B0F50;
|
||||
Player_UpdateArwingRoll = 0x800B2130;
|
||||
Player_UpdateTankRoll = 0x800B22C0;
|
||||
|
||||
+44
-44
@@ -278,7 +278,7 @@ void AllRange_ClearRadio(void) {
|
||||
sStarWolfKillTimer = gRadioState = gActors[1].iwork[1] = gActors[2].iwork[1] = gActors[3].iwork[1] = 0;
|
||||
}
|
||||
|
||||
void func_360_8002EE64(Actor* this) {
|
||||
void ActorAllRange_SetShadowData(Actor* this) {
|
||||
s32 i;
|
||||
s32 colId;
|
||||
Scenery360* scenery360;
|
||||
@@ -297,7 +297,7 @@ void func_360_8002EE64(Actor* this) {
|
||||
s32 pad2;
|
||||
|
||||
this->fwork[25] = this->fwork[26] = this->fwork[28] = this->fwork[27] = 0.0f;
|
||||
if ((this->unk_0C9 != 0) && (gLevelMode == LEVELMODE_ALL_RANGE) && (gLevelType == LEVELTYPE_PLANET)) {
|
||||
if (this->drawShadow && (gLevelMode == LEVELMODE_ALL_RANGE) && (gLevelType == LEVELTYPE_PLANET)) {
|
||||
for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
|
||||
if ((scenery360->obj.status == OBJ_ACTIVE) &&
|
||||
((scenery360->obj.id == OBJ_SCENERY_150) || (scenery360->obj.id == OBJ_SCENERY_149) ||
|
||||
@@ -387,13 +387,13 @@ void ActorAllRange_SpawnTeam(void) {
|
||||
actor->aiIndex = sTeamSpawnTargets[i];
|
||||
}
|
||||
actor->state = STATE360_2;
|
||||
actor->unk_0F4.y = 180.0f;
|
||||
actor->rot_0F4.y = 180.0f;
|
||||
if (actor->aiIndex <= -1) {
|
||||
actor->state = STATE360_3;
|
||||
}
|
||||
actor->health = 50;
|
||||
if ((gLevelType == LEVELTYPE_PLANET) || (gCurrentLevel == LEVEL_BOLSE)) {
|
||||
actor->unk_0C9 = 1;
|
||||
actor->drawShadow = true;
|
||||
}
|
||||
actor->iwork[11] = 1;
|
||||
if (actor->aiType <= AI360_PEPPY) {
|
||||
@@ -434,11 +434,11 @@ void ActorAllRange_SpawnStarWolf(void) {
|
||||
actor->aiIndex = sStarWolfSpawnTargets[i];
|
||||
gActors[actor->aiIndex].aiIndex = -1;
|
||||
actor->health = 100;
|
||||
actor->unk_0C9 = 1;
|
||||
actor->unk_0F4.y = 225.0f;
|
||||
actor->drawShadow = true;
|
||||
actor->rot_0F4.y = 225.0f;
|
||||
actor->state = STATE360_0;
|
||||
actor->timer_0BC = 250;
|
||||
actor->unk_0F4.x = -20.0f;
|
||||
actor->rot_0F4.x = -20.0f;
|
||||
actor->iwork[11] = 1;
|
||||
if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||
actor->obj.rot.z = sStarWolfVE2SpawnRot[i];
|
||||
@@ -534,7 +534,7 @@ void ActorAllRange_UpdateStarWolfEvents(Actor* this) {
|
||||
if (actor->aiType == AI360_WOLF) {
|
||||
if (gCurrentLevel != LEVEL_VENOM_2) {
|
||||
actor->state = STATE360_3;
|
||||
actor->unk_04E = 300;
|
||||
actor->counter_04E = 300;
|
||||
}
|
||||
} else {
|
||||
actor->state = STATE360_3;
|
||||
@@ -562,7 +562,7 @@ void ActorAllRange_ChooseNewTarget(Actor* actor) {
|
||||
s32 enemyId;
|
||||
|
||||
for (enemyId = AI360_10, enemy = &gActors[AI360_10]; enemyId < ARRAY_COUNT(gActors); enemyId++, enemy++) {
|
||||
if ((enemy->obj.status == OBJ_ACTIVE) && (enemy->obj.id == OBJ_ACTOR_ALLRANGE) && (enemy->unk_0B6 == 0) &&
|
||||
if ((enemy->obj.status == OBJ_ACTIVE) && (enemy->obj.id == OBJ_ACTOR_ALLRANGE) && (enemy->animFrame == 0) &&
|
||||
(enemy->aiIndex <= -1)) {
|
||||
alreadyTaken = false;
|
||||
for (teamId = AI360_FALCO, team = &gActors[AI360_FALCO]; teamId <= AI360_PEPPY; teamId++, team++) {
|
||||
@@ -829,7 +829,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
}
|
||||
if (this->dmgType != DMG_NONE) {
|
||||
var_a1 = false;
|
||||
if ((this->unk_0B6 == 3) ||
|
||||
if ((this->animFrame == 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) &&
|
||||
@@ -920,7 +920,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
if (this->damage >= 20) {
|
||||
this->timer_0BC = 0;
|
||||
}
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && (this->dmgSource == AI360_FOX + 1)) {
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (this->animFrame == 1) && (this->dmgSource == AI360_FOX + 1)) {
|
||||
if (gKaAllyKillCount < 2) {
|
||||
ActorAllRange_PlayMessage(gMsg_ID_18018, RCID_BILL);
|
||||
}
|
||||
@@ -1028,7 +1028,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
}
|
||||
func_effect_8007D10C(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 1.5f);
|
||||
if (this->aiType < AI360_GREAT_FOX) {
|
||||
Matrix_RotateY(gCalcMatrix, this->unk_0F4.y * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateY(gCalcMatrix, this->rot_0F4.y * M_DTOR, MTXF_NEW);
|
||||
sp48.x = 30.0f;
|
||||
if (Rand_ZeroOne() < 0.5f) {
|
||||
sp48.x = -30.0f;
|
||||
@@ -1067,7 +1067,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
} else if (this->dmgSource <= AI360_PEPPY + 101) {
|
||||
if (this->aiType >= AI360_WOLF) {
|
||||
if (this->dmgSource == AI360_FOX + 1) {
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && !gKaKilledAlly) {
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (this->animFrame == 1) && !gKaKilledAlly) {
|
||||
gKaKilledAlly = true;
|
||||
Radio_PlayMessage(gMsg_ID_18015, RCID_BILL);
|
||||
} else if (this->aiType == AI360_KATT) {
|
||||
@@ -1250,8 +1250,8 @@ void ActorAllRange_Update(Actor* this) {
|
||||
switch (this->state) {
|
||||
case STATE360_7:
|
||||
case STATE360_8:
|
||||
if (this->unk_0F4.x > 180.0f) {
|
||||
this->unk_0F4.x -= 360.0f;
|
||||
if (this->rot_0F4.x > 180.0f) {
|
||||
this->rot_0F4.x -= 360.0f;
|
||||
}
|
||||
this->unk_046 = 0;
|
||||
break;
|
||||
@@ -1407,16 +1407,16 @@ void ActorAllRange_Update(Actor* this) {
|
||||
if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_START_360) {
|
||||
this->fwork[0] = this->fwork[1] = 40.0f;
|
||||
if (gActors[0].state == STATE360_5) {
|
||||
Math_SmoothStepToF(&this->unk_0F4.x, 30.0f, 0.1f, 0.5f, 0.0f);
|
||||
Math_SmoothStepToF(&this->rot_0F4.x, 30.0f, 0.1f, 0.5f, 0.0f);
|
||||
this->fwork[1] = 200.0f;
|
||||
}
|
||||
if (this->timer_0BC == 0) {
|
||||
if (this->aiType == AI360_WOLF) {
|
||||
this->state = STATE360_3;
|
||||
if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||
this->unk_04E = 200;
|
||||
this->counter_04E = 200;
|
||||
} else {
|
||||
this->unk_04E = 200;
|
||||
this->counter_04E = 200;
|
||||
}
|
||||
} else {
|
||||
this->state = STATE360_2;
|
||||
@@ -1432,7 +1432,7 @@ void ActorAllRange_Update(Actor* this) {
|
||||
case STATE360_1:
|
||||
this->fwork[1] = 40.0f;
|
||||
if ((this->timer_0BC < 35) && (gCurrentLevel == LEVEL_FORTUNA)) {
|
||||
Math_SmoothStepToF(&this->unk_0F4.x, 15.0f, 0.1f, 1.0f, 0.0f);
|
||||
Math_SmoothStepToF(&this->rot_0F4.x, 15.0f, 0.1f, 1.0f, 0.0f);
|
||||
}
|
||||
if (this->timer_0BC == 0) {
|
||||
this->state = STATE360_3;
|
||||
@@ -1451,7 +1451,7 @@ void ActorAllRange_Update(Actor* this) {
|
||||
sp10F = 0xB;
|
||||
if (this->aiType == AI360_FALCO) {
|
||||
spF0 = 0.5f;
|
||||
} else if ((this->unk_0B6 != 2) && (this->unk_0B6 == 3)) {
|
||||
} else if ((this->animFrame != 2) && (this->animFrame == 3)) {
|
||||
spF0 = 0.5f;
|
||||
}
|
||||
if (this->aiIndex == AI360_FOX) {
|
||||
@@ -1470,7 +1470,7 @@ void ActorAllRange_Update(Actor* this) {
|
||||
if ((gPlayer[0].somersault && (this->iwork[4] > 10)) ||
|
||||
((gCurrentLevel == LEVEL_BOLSE) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_STANDBY))) {
|
||||
this->state = STATE360_3;
|
||||
this->unk_04E = 300;
|
||||
this->counter_04E = 300;
|
||||
this->timer_0BC = 160;
|
||||
if (this->aiType == AI360_WOLF) {
|
||||
ActorAllRange_PlayMessage(gMsg_ID_9369, RCID_WOLF);
|
||||
@@ -1822,10 +1822,10 @@ void ActorAllRange_Update(Actor* this) {
|
||||
this->iwork[2] = AI360_FOX;
|
||||
}
|
||||
if (this->aiIndex == AI360_FOX) {
|
||||
if (this->unk_04E != 0) {
|
||||
this->unk_04E--;
|
||||
if (this->counter_04E != 0) {
|
||||
this->counter_04E--;
|
||||
}
|
||||
if (this->unk_04E == 0) {
|
||||
if (this->counter_04E == 0) {
|
||||
this->state = STATE360_2;
|
||||
this->iwork[2] = AI360_FOX;
|
||||
}
|
||||
@@ -1833,9 +1833,9 @@ void ActorAllRange_Update(Actor* this) {
|
||||
break;
|
||||
case STATE360_7:
|
||||
this->fwork[1] = 40.0f;
|
||||
Math_SmoothStepToF(&this->unk_0F4.x, 360.0f, 0.1f, 5.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->rot_0F4.x, 360.0f, 0.1f, 5.0f, 0.0001f);
|
||||
Math_SmoothStepToAngle(&this->obj.rot.z, 0.0f, 0.1f, 3.0f, 0.01f);
|
||||
if (this->unk_0F4.x > 350.0f) {
|
||||
if (this->rot_0F4.x > 350.0f) {
|
||||
this->state = STATE360_3;
|
||||
}
|
||||
break;
|
||||
@@ -1848,19 +1848,19 @@ void ActorAllRange_Update(Actor* this) {
|
||||
}
|
||||
switch (this->unk_046) {
|
||||
case 0:
|
||||
Math_SmoothStepToF(&this->unk_0F4.x, 200.0f, 0.1f, 6.0f, 0.0001f);
|
||||
if (this->unk_0F4.x > 190.0f) {
|
||||
this->unk_0F4.y += 190.0f;
|
||||
if (this->unk_0F4.y >= 360.0f) {
|
||||
this->unk_0F4.y -= 360.0f;
|
||||
Math_SmoothStepToF(&this->rot_0F4.x, 200.0f, 0.1f, 6.0f, 0.0001f);
|
||||
if (this->rot_0F4.x > 190.0f) {
|
||||
this->rot_0F4.y += 190.0f;
|
||||
if (this->rot_0F4.y >= 360.0f) {
|
||||
this->rot_0F4.y -= 360.0f;
|
||||
}
|
||||
this->unk_0F4.x = 360.0f - (this->unk_0F4.x - 180.0f);
|
||||
this->rot_0F4.x = 360.0f - (this->rot_0F4.x - 180.0f);
|
||||
this->obj.rot.z += 180.0f;
|
||||
if (this->obj.rot.z >= 360.0f) {
|
||||
this->obj.rot.z -= 360.0f;
|
||||
}
|
||||
this->timer_0BC = 40;
|
||||
this->unk_046 += 1;
|
||||
this->unk_046++;
|
||||
}
|
||||
this->obj.pos.y -= 3.0f;
|
||||
break;
|
||||
@@ -1873,7 +1873,7 @@ void ActorAllRange_Update(Actor* this) {
|
||||
break;
|
||||
case STATE360_9:
|
||||
this->fwork[1] = 40.0f;
|
||||
if (Math_SmoothStepToAngle(&this->unk_0F4.y, this->fwork[19], 0.5f, 5.0f, 0.0f) < 0.0f) {
|
||||
if (Math_SmoothStepToAngle(&this->rot_0F4.y, this->fwork[19], 0.5f, 5.0f, 0.0f) < 0.0f) {
|
||||
spD0 = 70.0f;
|
||||
} else {
|
||||
spD0 = 290.0f;
|
||||
@@ -1903,7 +1903,7 @@ void ActorAllRange_Update(Actor* this) {
|
||||
if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||
var_v0 = 2 - 1;
|
||||
}
|
||||
if (!((this->index + gGameFrameCount) & var_v0)) {
|
||||
if (((this->index + gGameFrameCount) & var_v0) == 0) {
|
||||
this->fwork[19] = Math_RadToDeg(Math_Atan2F(spE4, spDC));
|
||||
this->fwork[20] = Math_RadToDeg(Math_Atan2F(spE0, sqrtf(SQ(spE4) + SQ(spDC))));
|
||||
}
|
||||
@@ -1939,11 +1939,11 @@ void ActorAllRange_Update(Actor* this) {
|
||||
}
|
||||
} else if ((this->obj.pos.y < (gGroundHeight + 50.0f)) && (spD8 > 180.0f)) {
|
||||
spD8 = 0.0f;
|
||||
this->unk_0F4.x = 0.0f;
|
||||
this->rot_0F4.x = 0.0f;
|
||||
}
|
||||
}
|
||||
Math_SmoothStepToAngle(&this->unk_0F4.x, spD8, 0.5f, this->fwork[2], 0.0001f);
|
||||
spD0 = Math_SmoothStepToAngle(&this->unk_0F4.y, spD4, 0.5f, this->fwork[2], 0.0001f) * 30.0f;
|
||||
Math_SmoothStepToAngle(&this->rot_0F4.x, spD8, 0.5f, this->fwork[2], 0.0001f);
|
||||
spD0 = Math_SmoothStepToAngle(&this->rot_0F4.y, spD4, 0.5f, this->fwork[2], 0.0001f) * 30.0f;
|
||||
if (spD0 < 0.0f) {
|
||||
spD0 = spD0 * -1.0f;
|
||||
} else {
|
||||
@@ -1979,8 +1979,8 @@ void ActorAllRange_Update(Actor* this) {
|
||||
}
|
||||
}
|
||||
}
|
||||
this->obj.rot.x = -this->unk_0F4.x;
|
||||
this->obj.rot.y = this->unk_0F4.y;
|
||||
this->obj.rot.x = -this->rot_0F4.x;
|
||||
this->obj.rot.y = this->rot_0F4.y;
|
||||
Math_SmoothStepToF(&this->fwork[0], this->fwork[1], 0.2f, 1.0f, 0.1f);
|
||||
Math_SmoothStepToF(&this->fwork[2], this->fwork[3], 1.0f, 0.1f, 0.1f);
|
||||
spC0 = SIN_DEG(this->obj.rot.x);
|
||||
@@ -2053,7 +2053,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->yRot = this->unk_0F4.y + 180.0f;
|
||||
radarMark->yRot = this->rot_0F4.y + 180.0f;
|
||||
if (this->iwork[1] != 0) {
|
||||
this->iwork[1]--;
|
||||
if ((this->iwork[1] == 0) && (gActors[0].state == STATE360_2) && (gRadioState == 0)) {
|
||||
@@ -2106,7 +2106,7 @@ void ActorAllRange_Update(Actor* this) {
|
||||
}
|
||||
}
|
||||
if (gCurrentLevel == LEVEL_FORTUNA) {
|
||||
func_360_8002EE64(this);
|
||||
ActorAllRange_SetShadowData(this);
|
||||
} else if (gCurrentLevel == LEVEL_VENOM_ANDROSS) {
|
||||
this->unk_04A++;
|
||||
if (this->unk_04A >= Animation_GetFrameCount(&D_VE2_600C200)) {
|
||||
@@ -2258,7 +2258,7 @@ void ActorAllRange_Draw(ActorAllRange* this) {
|
||||
break;
|
||||
case AI360_GREAT_FOX:
|
||||
Display_SetSecondLight(&this->obj.pos);
|
||||
this->unk_0B6 = 1;
|
||||
this->animFrame = 1;
|
||||
ActorCutscene_Draw(this);
|
||||
break;
|
||||
case AI360_MISSILE:
|
||||
@@ -2278,7 +2278,7 @@ void ActorAllRange_Draw(ActorAllRange* this) {
|
||||
Matrix_Scale(gGfxMatrix, 1.5f, 1.5f, 1.5f, MTXF_APPLY);
|
||||
Actor_DrawEngineGlow(this, 2);
|
||||
} else if (gCurrentLevel == LEVEL_KATINA) {
|
||||
switch (this->unk_0B6) {
|
||||
switch (this->animFrame) {
|
||||
case 0:
|
||||
gSPDisplayList(gMasterDisp++, aKaEnemy1LowPolyDL);
|
||||
break;
|
||||
|
||||
@@ -22,11 +22,7 @@ void func_800A3E00(void) {
|
||||
case 1:
|
||||
D_ctx_80177868 = 2;
|
||||
gDrawMode = DRAW_UNK_7;
|
||||
gCsCamAtY = 0.0f;
|
||||
gCsCamAtX = gCsCamAtY;
|
||||
gCsCamEyeZ = gCsCamAtX;
|
||||
gCsCamEyeY = gCsCamEyeZ;
|
||||
gCsCamEyeX = gCsCamEyeY;
|
||||
gCsCamEyeX = gCsCamEyeY = gCsCamEyeZ = gCsCamAtX = gCsCamAtY = 0.0f;
|
||||
gCsCamAtZ = -10.0f;
|
||||
break;
|
||||
case 2:
|
||||
|
||||
+36
-35
@@ -126,9 +126,9 @@ void PlayerShot_Impact(PlayerShot* shot) {
|
||||
Object_Kill(&shot->obj, shot->sfxSource);
|
||||
return;
|
||||
}
|
||||
shot->obj.pos.z = D_ctx_80178498; // strange order on the globals
|
||||
shot->obj.pos.y = D_ctx_801784A0;
|
||||
shot->obj.pos.x = D_ctx_8017849C;
|
||||
shot->obj.pos.z = gShotHitPosZ; // strange order on the globals
|
||||
shot->obj.pos.y = gShotHitPosY;
|
||||
shot->obj.pos.x = gShotHitPosX;
|
||||
if ((shot->obj.id == PLAYERSHOT_BOMB) ||
|
||||
((gCurrentLevel != LEVEL_AQUAS) && (shot->obj.id == PLAYERSHOT_LOCK_ON) && (shot->unk_5C != 0))) {
|
||||
if (shot->obj.id == PLAYERSHOT_LOCK_ON) {
|
||||
@@ -391,10 +391,10 @@ s32 PlayerShot_CheckEventHitbox(PlayerShot* shot, Actor* actor) {
|
||||
Matrix_RotateX(gCalcMatrix, -actor->obj.rot.x * M_DTOR, MTXF_APPLY);
|
||||
Matrix_RotateY(gCalcMatrix, -actor->obj.rot.y * M_DTOR, MTXF_APPLY);
|
||||
}
|
||||
if (((actor->vwork[29].z != 0.0f) || (actor->vwork[29].x != 0.0f) || (actor->unk_0F4.z != 0.0f) ||
|
||||
if (((actor->vwork[29].z != 0.0f) || (actor->vwork[29].x != 0.0f) || (actor->rot_0F4.z != 0.0f) ||
|
||||
(actor->vwork[29].y != 0.0f)) &&
|
||||
(actor->unk_0B4 != EVID_31)) {
|
||||
Matrix_RotateZ(gCalcMatrix, -(actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, MTXF_APPLY);
|
||||
(actor->eventType != EVID_31)) {
|
||||
Matrix_RotateZ(gCalcMatrix, -(actor->vwork[29].z + actor->rot_0F4.z) * M_DTOR, MTXF_APPLY);
|
||||
Matrix_RotateX(gCalcMatrix, -actor->vwork[29].x * M_DTOR, MTXF_APPLY);
|
||||
Matrix_RotateY(gCalcMatrix, -actor->vwork[29].y * M_DTOR, MTXF_APPLY);
|
||||
}
|
||||
@@ -686,9 +686,10 @@ void PlayerShot_ApplyDamageToActor(PlayerShot* shot, Actor* actor, s32 hitIndex)
|
||||
actor->hitPos.y = shot->obj.pos.y;
|
||||
actor->hitPos.z = shot->obj.pos.z;
|
||||
if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) &&
|
||||
((actor->unk_0B4 == EVID_48) || (actor->unk_0B4 == EVID_49) || (actor->unk_0B4 == EVID_50))) ||
|
||||
((actor->eventType == EVID_48) || (actor->eventType == EVID_49) || (actor->eventType == EVID_50))) ||
|
||||
((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) && (actor->unk_0B4 == EVID_67)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) &&
|
||||
(actor->eventType == EVID_METEO_PYRAMID_SHIP)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_LOCK_ON) &&
|
||||
((actor->state < 3) || (actor->state >= 5))) ||
|
||||
((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_LOCK_ON) && (actor->timer_0BC != 0))) {
|
||||
@@ -713,7 +714,7 @@ void PlayerShot_ApplyDamageToActor(PlayerShot* shot, Actor* actor, s32 hitIndex)
|
||||
actor->timer_0C2 = 3;
|
||||
func_effect_80078E50(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 8.0f);
|
||||
AUDIO_PLAY_SFX(NA_SE_EN_REFLECT, actor->sfxSource, 4);
|
||||
Play_SpawnHitmark(D_ctx_8017849C, D_ctx_801784A0, D_ctx_80178498);
|
||||
Play_SpawnHitmark(gShotHitPosX, gShotHitPosY, gShotHitPosZ);
|
||||
}
|
||||
} else {
|
||||
PlayerShot_Impact(shot);
|
||||
@@ -765,13 +766,13 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
|
||||
}
|
||||
break;
|
||||
case OBJ_ACTOR_EVENT:
|
||||
if (actor->unk_0B4 == EVID_42) {
|
||||
if (actor->eventType == EVID_42) {
|
||||
if (PlayerShot_CheckPolyCollision(shot, ACTOR_EVENT_ID, &actor->obj)) {
|
||||
actor->dmgType = DMG_BEAM;
|
||||
actor->dmgPart = shot->sourceId;
|
||||
return;
|
||||
}
|
||||
} else if (actor->unk_0B4 == EVID_63) {
|
||||
} else if (actor->eventType == EVID_63) {
|
||||
test.x = fabsf(actor->obj.pos.x - shot->obj.pos.x);
|
||||
test.y = fabsf(actor->obj.pos.y - shot->obj.pos.y);
|
||||
test.z = fabsf(actor->obj.pos.z - shot->obj.pos.z);
|
||||
@@ -939,11 +940,11 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
|
||||
if (sprite->obj.status == OBJ_ACTIVE) {
|
||||
if (sprite->obj.id != OBJ_SPRITE_TI_CACTUS) {
|
||||
if (PlayerShot_CheckSpriteHitbox(shot, sprite)) {
|
||||
sprite->unk_46 = 1;
|
||||
sprite->destroy = 1;
|
||||
}
|
||||
} else {
|
||||
if (PlayerShot_CheckObjectHitbox(shot, sprite->info.hitbox, &sprite->obj) != 0) {
|
||||
sprite->unk_46 = 1;
|
||||
sprite->destroy = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1125,14 +1126,14 @@ void PlayerShot_DrawLaser(PlayerShot* shot) {
|
||||
} else if (gCurrentLevel == LEVEL_KATINA) {
|
||||
if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO) {
|
||||
if (shot->sourceId > NPC_SHOT_ID + AI360_PEPPY) {
|
||||
if (gActors[shot->sourceId - NPC_SHOT_ID].unk_0B6 == 0) {
|
||||
if (gActors[shot->sourceId - NPC_SHOT_ID].animFrame == 0) {
|
||||
var_a1 = 1;
|
||||
}
|
||||
if (gActors[shot->sourceId - NPC_SHOT_ID].unk_0B6 == 2) {
|
||||
if (gActors[shot->sourceId - NPC_SHOT_ID].animFrame == 2) {
|
||||
var_a1 = 2;
|
||||
}
|
||||
}
|
||||
} else if (gActors[shot->sourceId - NPC_SHOT_ID].unk_0B6 == 34) {
|
||||
} else if (gActors[shot->sourceId - NPC_SHOT_ID].animFrame == 34) {
|
||||
var_a1 = 1;
|
||||
}
|
||||
}
|
||||
@@ -1538,9 +1539,9 @@ void PlayerShot_UpdateShot2(PlayerShot* shot, Player* player) {
|
||||
}
|
||||
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;
|
||||
gShotHitPosZ = shot->obj.pos.z;
|
||||
gShotHitPosY = shot->obj.pos.y;
|
||||
gShotHitPosX = 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->trueZpos + sp38.z;
|
||||
@@ -1575,7 +1576,7 @@ void PlayerShot_UpdateShot2(PlayerShot* shot, Player* player) {
|
||||
shot->unk_4C += shot->vel.y;
|
||||
shot->unk_50 += shot->vel.z;
|
||||
if (((gGameFrameCount % 4) == 0)) {
|
||||
Play_SpawnHitmark(D_ctx_8017849C, D_ctx_801784A0, D_ctx_80178498);
|
||||
Play_SpawnHitmark(gShotHitPosX, gShotHitPosY, gShotHitPosZ);
|
||||
}
|
||||
if ((fabsf(shot->obj.pos.x - shot->unk_48) < 200.0f) && (fabsf(shot->obj.pos.y - shot->unk_4C) < 200.0f) &&
|
||||
(fabsf(shot->obj.pos.z - shot->unk_50) < 200.0f)) {
|
||||
@@ -1823,18 +1824,18 @@ void PlayerShot_CheckBossHitbox(PlayerShot* shot) {
|
||||
}
|
||||
|
||||
void PlayerShot_SetBombLight(PlayerShot* shot) {
|
||||
static u8 D_800C9C18[4] = { 255, 255, 32, 32 };
|
||||
static u8 D_800C9C1C[4] = { 255, 32, 255, 32 };
|
||||
static u8 D_800C9C20[4] = { 32, 32, 32, 255 };
|
||||
static u8 sPlayerReds[4] = { 255, 255, 32, 32 };
|
||||
static u8 sPlayerGreens[4] = { 255, 32, 255, 32 };
|
||||
static u8 sPlayerBlues[4] = { 32, 32, 32, 255 };
|
||||
f32 brightness;
|
||||
|
||||
gLight3x = shot->obj.pos.x;
|
||||
gLight3y = shot->obj.pos.y;
|
||||
gLight3z = shot->obj.pos.z;
|
||||
if (gVersusMode) {
|
||||
gLight3R = D_800C9C18[shot->sourceId];
|
||||
gLight3G = D_800C9C1C[shot->sourceId];
|
||||
gLight3B = D_800C9C20[shot->sourceId];
|
||||
gLight3R = sPlayerReds[shot->sourceId];
|
||||
gLight3G = sPlayerGreens[shot->sourceId];
|
||||
gLight3B = sPlayerBlues[shot->sourceId];
|
||||
} else {
|
||||
gLight3R = 90;
|
||||
gLight3G = 90;
|
||||
@@ -1881,7 +1882,7 @@ void PlayerShot_ApplyExplosionDamage(PlayerShot* shot, s32 damage) {
|
||||
dy = sprite->obj.pos.y - shot->obj.pos.y;
|
||||
dz = sprite->obj.pos.z - shot->obj.pos.z;
|
||||
if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < radius) {
|
||||
sprite->unk_46 = 1;
|
||||
sprite->destroy = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1905,8 +1906,8 @@ void PlayerShot_ApplyExplosionDamage(PlayerShot* shot, s32 damage) {
|
||||
if ((actor->obj.id == OBJ_ACTOR_193) || (actor->obj.id == OBJ_ACTOR_186) ||
|
||||
(actor->obj.id == OBJ_ACTOR_190) || (actor->obj.id == OBJ_ACTOR_202) ||
|
||||
(actor->obj.id == OBJ_ACTOR_201) || (actor->obj.id == OBJ_ACTOR_187) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EVID_78)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EVID_38)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->eventType == EVID_SUPPLY_CRATE)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->eventType == EVID_SX_WARP_GATE)) ||
|
||||
(actor->obj.id == OBJ_ACTOR_196)) {
|
||||
actor->dmgType = DMG_EXPLOSION;
|
||||
actor->dmgPart = 0;
|
||||
@@ -2039,7 +2040,7 @@ void PlayerShot_UpdateBomb(PlayerShot* shot) {
|
||||
PlayerShot_SetBombLight(shot);
|
||||
break;
|
||||
case 1:
|
||||
D_ctx_8017812C = 2;
|
||||
gGroundClipMode = 2;
|
||||
shot->obj.rot.y += 1.0f;
|
||||
Math_SmoothStepToF(&shot->scale, shot->unk_48, 0.05f, 1.5f, 0.001f);
|
||||
if ((shot->timer > 0) && (shot->timer < 30)) {
|
||||
@@ -2062,7 +2063,7 @@ void PlayerShot_UpdateBomb(PlayerShot* shot) {
|
||||
if (shot->unk_58 < 0) {
|
||||
shot->unk_58 = 0;
|
||||
Object_Kill(&shot->obj, shot->sfxSource);
|
||||
D_ctx_8017812C = 0;
|
||||
gGroundClipMode = 0;
|
||||
}
|
||||
}
|
||||
PlayerShot_ApplyExplosionDamage(shot, 50);
|
||||
@@ -2225,7 +2226,7 @@ void PlayerShot_UpdateShot(PlayerShot* shot, s32 index) {
|
||||
BonusText_Display(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, bonus);
|
||||
gHitCount += shot->bonus;
|
||||
}
|
||||
if ((shot->bonus >= 7) && (gBossActive == 0) && (gLevelMode == LEVELMODE_ON_RAILS) &&
|
||||
if ((shot->bonus >= 7) && !gBossActive && (gLevelMode == LEVELMODE_ON_RAILS) &&
|
||||
((gTeamShields[TEAM_ID_FALCO] > 0) || (gTeamShields[TEAM_ID_SLIPPY] > 0) ||
|
||||
(gTeamShields[TEAM_ID_PEPPY] > 0))) {
|
||||
do {
|
||||
@@ -2284,9 +2285,9 @@ void PlayerShot_Update(PlayerShot* shot) {
|
||||
if (shot->timer > 0) {
|
||||
shot->timer--;
|
||||
}
|
||||
D_ctx_80178498 = shot->obj.pos.z;
|
||||
D_ctx_801784A0 = shot->obj.pos.y;
|
||||
D_ctx_8017849C = shot->obj.pos.x;
|
||||
gShotHitPosZ = shot->obj.pos.z;
|
||||
gShotHitPosY = shot->obj.pos.y;
|
||||
gShotHitPosX = shot->obj.pos.x;
|
||||
PlayerShot_UpdateShot(shot, i);
|
||||
}
|
||||
break;
|
||||
|
||||
+12
-12
@@ -249,7 +249,7 @@ void Background_DrawBackdrop(void) {
|
||||
u8 levelType;
|
||||
s32 levelId;
|
||||
|
||||
if (D_ctx_80177AB0 == 0) {
|
||||
if (gDrawBackdrop == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -353,16 +353,16 @@ void Background_DrawBackdrop(void) {
|
||||
}
|
||||
break;
|
||||
case LEVEL_VENOM_ANDROSS:
|
||||
if (D_ctx_80177AB0 != 6) {
|
||||
if ((D_ctx_80177AB0 == 2) || (D_ctx_80177AB0 == 7)) {
|
||||
if (gDrawBackdrop != 6) {
|
||||
if ((gDrawBackdrop == 2) || (gDrawBackdrop == 7)) {
|
||||
Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].camRoll * M_DTOR, MTXF_APPLY);
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, -4000.0f, -7000.0f, MTXF_APPLY);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_VE2_600F670);
|
||||
} else if ((D_ctx_80177AB0 == 3) || (D_ctx_80177AB0 == 4)) {
|
||||
} else if ((gDrawBackdrop == 3) || (gDrawBackdrop == 4)) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x3E);
|
||||
if (D_ctx_80177AB0 == 4) {
|
||||
if (!(gGameFrameCount & 8)) {
|
||||
if (gDrawBackdrop == 4) {
|
||||
if ((gGameFrameCount & 8) == 0) {
|
||||
Math_SmoothStepToF(&gAndrossUnkBrightness, 0.0f, 1.0f, 30.0f, 0);
|
||||
} else {
|
||||
Math_SmoothStepToF(&gAndrossUnkBrightness, 120.0f, 1.0f, 30.0f, 0);
|
||||
@@ -387,7 +387,7 @@ void Background_DrawBackdrop(void) {
|
||||
} else {
|
||||
fake_label: // fake
|
||||
RCP_SetupDL(&gMasterDisp, 0x3E);
|
||||
if (D_ctx_80177AB0 == 5) {
|
||||
if (gDrawBackdrop == 5) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 64);
|
||||
} else {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 128, (s32) gAndrossUnkAlpha);
|
||||
@@ -400,7 +400,7 @@ void Background_DrawBackdrop(void) {
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_ANDROSS_C039208);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
if (D_ctx_80177AB0 != 5) {
|
||||
if (gDrawBackdrop != 5) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 1.0f, MTXF_APPLY);
|
||||
Matrix_RotateZ(gGfxMatrix, (gPlayer[0].camRoll + (gGameFrameCount * -1.3f)) * M_DTOR,
|
||||
@@ -821,7 +821,7 @@ void Background_DrawGround(void) {
|
||||
u16* sp1C4;
|
||||
Gfx* sp1C0;
|
||||
|
||||
if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer[0].cam.eye.y > 4000.0f) || (D_ctx_80177A98 == 0))) {
|
||||
if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer[0].cam.eye.y > 4000.0f) || !gDrawGround)) {
|
||||
return;
|
||||
}
|
||||
if ((gCurrentLevel == LEVEL_BOLSE) && gBolseDynamicGround) {
|
||||
@@ -886,7 +886,7 @@ void Background_DrawGround(void) {
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
switch (gCurrentLevel) {
|
||||
case LEVEL_CORNERIA:
|
||||
if (D_ctx_8017812C != 0) {
|
||||
if (gGroundClipMode != 0) {
|
||||
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
} else {
|
||||
RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
@@ -1066,7 +1066,7 @@ void Background_DrawGround(void) {
|
||||
case LEVEL_KATINA:
|
||||
case LEVEL_BOLSE:
|
||||
case LEVEL_VENOM_2:
|
||||
if ((D_ctx_8017812C != 0) || (gCurrentLevel == LEVEL_BOLSE)) {
|
||||
if ((gGroundClipMode != 0) || (gCurrentLevel == LEVEL_BOLSE)) {
|
||||
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
} else {
|
||||
RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
@@ -1088,7 +1088,7 @@ void Background_DrawGround(void) {
|
||||
}
|
||||
break;
|
||||
case LEVEL_VERSUS:
|
||||
if (D_ctx_8017812C != 0) {
|
||||
if (gGroundClipMode != 0) {
|
||||
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
} else {
|
||||
RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
|
||||
@@ -88,12 +88,12 @@ void Boss_SpawnDebris(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5
|
||||
for (i = (ARRAY_COUNT(gActors)) - 1; i >= 0; i--) {
|
||||
if (gActors[i].obj.status == OBJ_FREE) {
|
||||
Boss_SetupDebris(&gActors[i], arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, argA, argB);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_boss_80043188(Boss* boss) {
|
||||
void Boss_SetCullDistance(Boss* boss) {
|
||||
boss->info.cullDistance = 30000.0f;
|
||||
}
|
||||
|
||||
@@ -102,9 +102,9 @@ void Boss_CompleteLevel(Player* player, f32 xPos, f32 yPos, f32 zPos) {
|
||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 80);
|
||||
|
||||
gCsFrameCount = 0;
|
||||
D_ctx_80178448 = zPos + gPathProgress;
|
||||
D_ctx_80178440 = xPos;
|
||||
D_ctx_80178444 = yPos;
|
||||
gBossDeathCamAtZ = zPos + gPathProgress;
|
||||
gBossDeathCamAtX = xPos;
|
||||
gBossDeathCamAtY = yPos;
|
||||
|
||||
player->state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE;
|
||||
player->csState = 10;
|
||||
|
||||
+60
-52
@@ -9,11 +9,11 @@ s32 gSceneSetup;
|
||||
s32 D_ctx_80177824; // some sort of flag
|
||||
s32 D_ctx_8017782C; // some sort of flag. all range related?
|
||||
GameState gGameState;
|
||||
s32 gNextGameStateTimer; // next game state timer?
|
||||
s32 gVsItemSpawnTimer; // timer for vs item spawn
|
||||
s32 gNextGameStateTimer;
|
||||
s32 gVsItemSpawnTimer;
|
||||
OptionState gOptionMenuStatus;
|
||||
s32 gPlayState; // pause-related state
|
||||
s32 D_ctx_80177868; // some sort of state. pause-related?
|
||||
s32 gPlayState;
|
||||
s32 D_ctx_80177868; // some sort of state. pause-related? Also used by game over
|
||||
LevelMode gLevelMode;
|
||||
DrawMode gDrawMode;
|
||||
s32 gPlayerNum;
|
||||
@@ -22,9 +22,9 @@ s32 gTeamShields[6];
|
||||
s32 gSavedTeamShields[6];
|
||||
s32 gPrevPlanetSavedTeamShields[6];
|
||||
s32 gTeamDamage[6];
|
||||
u8 gMissionStatus; // next planet path
|
||||
u8 gMissionStatus;
|
||||
f32 gGroundHeight;
|
||||
f32 D_ctx_80177950;
|
||||
f32 D_ctx_80177950; // Related to camera z-rotations? Only set to -1 in corneria intro, where it does nothing?
|
||||
f32 gPlayerTurnRate;
|
||||
f32 gPlayerTurnStickMod;
|
||||
f32 gCsCamEyeX;
|
||||
@@ -33,14 +33,14 @@ f32 gCsCamEyeZ;
|
||||
f32 gCsCamAtX;
|
||||
f32 gCsCamAtY;
|
||||
f32 gCsCamAtZ;
|
||||
Vec3f gPlayerCamEye;
|
||||
Vec3f gPlayerCamAt;
|
||||
Vec3f gPlayCamEye;
|
||||
Vec3f gPlayCamAt;
|
||||
bool gExpertMode;
|
||||
s32 D_ctx_80177A10[10];
|
||||
f32 D_ctx_80177A48[10];
|
||||
s32 D_ctx_80177A10[10]; // work buffer
|
||||
f32 D_ctx_80177A48[10]; // work buffer
|
||||
s32 gCsFrameCount;
|
||||
u8 D_ctx_80177A98; // some sort of flag. Used in background
|
||||
u8 D_ctx_80177AB0;
|
||||
u8 gDrawGround; // some sort of flag. Used in background
|
||||
u8 gDrawBackdrop;
|
||||
u8 gAqDrawMode;
|
||||
s32 gTitleState;
|
||||
s32 gMainController;
|
||||
@@ -56,7 +56,7 @@ s32 gPlanetPathStatus[24];
|
||||
s32 gPlanetPathStatus[22]; // overruns gPrevPlanetTeamShields?
|
||||
#endif
|
||||
s32 gPrevPlanetTeamShields[6];
|
||||
s32 D_ctx_80177C58[6];
|
||||
s32 D_ctx_80177C58[6]; // another saved team shields. maybe this is prev planet?
|
||||
u8 gOptionSoundMode;
|
||||
s32 gVolumeSettings[3];
|
||||
u16 gBgmSeqId;
|
||||
@@ -83,11 +83,11 @@ s32 gRingPassCount;
|
||||
Vec3f gFormationInitRot;
|
||||
Vec3f gFormationInitPos;
|
||||
UNK_TYPE F_80178020;
|
||||
s32 D_ctx_8017812C;
|
||||
s32 gGroundClipMode;
|
||||
LevelId gCurrentLevel;
|
||||
s32 gLevelPhase;
|
||||
s32 gBossActive;
|
||||
s32 D_ctx_8017828C;
|
||||
bool gKillEventActors;
|
||||
s32 gUseDynaFloor;
|
||||
s32 gRadioState;
|
||||
s32 gCurrentRadioPortrait;
|
||||
@@ -96,9 +96,9 @@ s32 gRadioMouthTimer;
|
||||
u8 gLeveLClearStatus[30] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
s32 D_ctx_801782C0;
|
||||
s32 D_ctx_801782C8;
|
||||
s32 D_ctx_801782D0;
|
||||
s32 D_ctx_801782C0; // set to 0, never used
|
||||
s32 D_ctx_801782C8; // set to 0, never used
|
||||
s32 D_ctx_801782D0; // set to 0, never used
|
||||
s32 gRadioMsgCharIndex;
|
||||
UNK_TYPE F_801782E0;
|
||||
s32 gRadioMsgId;
|
||||
@@ -150,39 +150,43 @@ UNK_TYPE F_8017840C;
|
||||
UNK_TYPE P_800D31A0 = 0;
|
||||
s32 gStarCount;
|
||||
f32 gStarWarpDistortion;
|
||||
f32 D_ctx_80178418;
|
||||
f32 gCOComplete2CamRotY;
|
||||
UNK_TYPE F_8017841C;
|
||||
f32 gStarfieldX;
|
||||
f32 gStarfieldY;
|
||||
f32 gStarfieldRoll;
|
||||
f32 D_ctx_8017842C;
|
||||
f32 D_ctx_80178430;
|
||||
f32 gStarfieldScrollX; // starfield yaw?
|
||||
f32 gStarfieldScrollY; // starfield roll?
|
||||
UNK_TYPE F_80178434;
|
||||
UNK_TYPE F_80178438;
|
||||
UNK_TYPE F_8017843C;
|
||||
f32 D_ctx_80178440;
|
||||
f32 D_ctx_80178444;
|
||||
f32 D_ctx_80178448;
|
||||
f32 D_ctx_80178450[3]; // x positions of certain actors (teammates?)
|
||||
f32 D_ctx_80178460[3]; // y positions of certain actors (teammates?)
|
||||
f32 D_ctx_80178470[3]; // z positions of certain actors (teammates?)
|
||||
f32 gBossDeathCamAtX; //
|
||||
f32 gBossDeathCamAtY;
|
||||
f32 gBossDeathCamAtZ;
|
||||
f32 gCsTeamTargetsX[3]; // x positions of certain actors (teammates?)
|
||||
f32 gCsTeamTargetsY[3]; // y positions of certain actors (teammates?)
|
||||
f32 gCsTeamTargetsZ[3]; // z positions of certain actors (teammates?)
|
||||
f32 gCameraShakeY;
|
||||
s32 gCameraShake;
|
||||
s32 D_ctx_80178484; // set to 10000 but not used
|
||||
s32 D_ctx_80178484; // set to 100000 when pausing but not used
|
||||
bool gLoadLevelObjects;
|
||||
UNK_TYPE F_8017848C;
|
||||
UNK_TYPE F_80178490;
|
||||
s32 D_ctx_80178494;
|
||||
f32 D_ctx_80178498;
|
||||
f32 D_ctx_8017849C;
|
||||
f32 D_ctx_801784A0;
|
||||
s32 D_ctx_801784A4;
|
||||
#ifdef AVOID_UB
|
||||
s32 D_ctx_80178494 = 0;
|
||||
#else
|
||||
s32 D_ctx_80178494; // Torpedoes have this set to their unk_5C. Were they shot2s at some point?
|
||||
#endif
|
||||
f32 gShotHitPosZ;
|
||||
f32 gShotHitPosX;
|
||||
f32 gShotHitPosY;
|
||||
s32 gZOSnakeWaypointCount;
|
||||
UNK_TYPE F_801784A8;
|
||||
GroundType gGroundType;
|
||||
UNK_TYPE F_801784B0;
|
||||
UNK_TYPE F_801784B4;
|
||||
|
||||
// light source 1
|
||||
// light source 1. Used for most things
|
||||
f32 gLight1xRot; // effective Vec3f
|
||||
f32 gLight1yRot;
|
||||
f32 gLight1zRot;
|
||||
@@ -197,7 +201,7 @@ s32 gLight1y;
|
||||
s32 gLight1z;
|
||||
f32 gLight1rotStep;
|
||||
|
||||
// light source 2
|
||||
// light source 2. used for Players
|
||||
f32 gLight2xRot; // effective Vec3f
|
||||
f32 gLight2yRot;
|
||||
f32 gLight2zRot;
|
||||
@@ -209,7 +213,7 @@ s32 gLight2y;
|
||||
s32 gLight2z;
|
||||
f32 gLight2rotStep;
|
||||
|
||||
// this section looks like a third light source
|
||||
// this section looks like a third light source. May have been for scenery shadows
|
||||
UNK_TYPE F_801784514;
|
||||
UNK_TYPE F_801784518;
|
||||
UNK_TYPE F_80178451C;
|
||||
@@ -221,16 +225,19 @@ UNK_TYPE F_801784530;
|
||||
UNK_TYPE F_801784534;
|
||||
f32 D_ctx_80178538;
|
||||
|
||||
f32 D_ctx_8017853C; // hitbox size modifier. always 0.0f. seems out of place
|
||||
f32 D_ctx_8017853C; // hitbox size modifier for player collisions. always 0.0f. seems out of place
|
||||
s32 gLight2colorStep; // light 2 color step
|
||||
s32 D_ctx_80178544; // light 3 color step?
|
||||
s32 gLight1R; // Color32 light color 1
|
||||
|
||||
s32 gLight1R; // Color32 light color 1
|
||||
s32 gLight1G;
|
||||
s32 gLight1B;
|
||||
s32 gAmbientR; // Color32 ambient color
|
||||
s32 gAmbientG;
|
||||
s32 gAmbientB;
|
||||
|
||||
UNK_TYPE F_80178560;
|
||||
|
||||
s32 gLight2R; // Color32 light color 2
|
||||
s32 gLight2G;
|
||||
s32 gLight2B;
|
||||
@@ -238,16 +245,17 @@ s32 gLight2RTarget; // Color32 light color 2 modifier?
|
||||
s32 gLight2GTarget;
|
||||
s32 gLight2BTarget;
|
||||
|
||||
s32 D_ctx_80161A70; // Color32 set but not used, start of bss
|
||||
s32 D_ctx_80161A70; // unused Color32, perhaps for third light? start of bss
|
||||
s32 D_ctx_80161A74;
|
||||
s32 D_ctx_80161A78;
|
||||
s32 D_ctx_80161A7C; // Color32? set but not used
|
||||
s32 D_ctx_80161A7C; // unused Color32, perhaps targets for third light?
|
||||
s32 D_ctx_80161A80;
|
||||
s32 D_ctx_80161A84;
|
||||
|
||||
GroundSurface gGroundSurface;
|
||||
GroundSurface gSavedGroundSurface;
|
||||
u8 gGoldRingCount[4];
|
||||
u8 D_ctx_80161A94[4];
|
||||
u8 gSavedGoldRingCount[4];
|
||||
s32 gHitCount;
|
||||
s32 gSavedHitCount;
|
||||
s16 gLifeCount[4];
|
||||
@@ -282,7 +290,7 @@ s32 gLevelStartStatusScreenTimer;
|
||||
s32 gLevelClearScreenTimer; // timer for mission accomplished scrren
|
||||
s32 gBossHealthBar;
|
||||
s32 D_ctx_80177850; // bonus text related. set to 15 but never read
|
||||
s32 D_ctx_80177858[4]; // set to 3 but never used
|
||||
s32 D_ctx_80177858[4]; // set to 3 but never used. related to VS mode customization?
|
||||
PlayerForm gPlayerForms[4];
|
||||
s32 gHandicap[4];
|
||||
VsStage gVersusStage;
|
||||
@@ -321,7 +329,7 @@ u8 gGreatFoxIntact;
|
||||
u8 gTiStartLandmaster;
|
||||
u16 gControllerRumbleTimers[4];
|
||||
u16 gPlayerScores[4];
|
||||
s32 D_ctx_80177C50;
|
||||
s32 gCircleWipeFrame;
|
||||
s32 D_ctx_80177C70; // sets camera field of view Y. initialized to 0 and never changed
|
||||
s32 gTraining360MsgTimer;
|
||||
s32 gTraining360MsgIndex;
|
||||
@@ -341,10 +349,10 @@ s32 gLeftWingFlashTimer[4];
|
||||
s32 gRightWingDebrisTimer[4];
|
||||
s32 gLeftWingDebrisTimer[4];
|
||||
s32 gBombCount[4];
|
||||
s32 D_ctx_80177DB8[4];
|
||||
s32 D_ctx_80177DD0[4][10];
|
||||
s32 D_ctx_80177E74;
|
||||
s32 D_ctx_80177E7C;
|
||||
s32 gVsPoints[4];
|
||||
s32 gVsKills[4][10];
|
||||
s32 gVsMatchOver;
|
||||
s32 gVsMatchStart;
|
||||
bool gChangeTo360;
|
||||
Vec3f gTeamArrowsViewPos[10];
|
||||
f32 D_ctx_80177F20[65]; // Seem to be an early implementation of RadarMark
|
||||
@@ -358,16 +366,16 @@ u32* gStarFillColors;
|
||||
UNK_TYPE F_801782A0;
|
||||
Scenery360* gScenery360;
|
||||
UNK_TYPE F_801782B0;
|
||||
s32 D_ctx_801782B8;
|
||||
s32 D_ctx_801782BC;
|
||||
PosRot* D_ctx_801782C4;
|
||||
f32* D_ctx_801782CC;
|
||||
s32 gDrawSmallRocks;
|
||||
s32 D_ctx_801782BC; // set to 0, never used
|
||||
PosRot* gZOSnakePosRots;
|
||||
f32* D_ctx_801782CC; // arrays used for dynamic floor
|
||||
f32* D_ctx_801782D4;
|
||||
f32* D_ctx_801782DC;
|
||||
f32* D_ctx_801782E4;
|
||||
f32* D_ctx_801782EC;
|
||||
UNK_TYPE F_801782F4;
|
||||
s32 D_ctx_801782FC;
|
||||
s32 gDynaFloorTimer; // timer related to dynamic floor
|
||||
UNK_TYPE F_80178304;
|
||||
UNK_TYPE F_8017830C;
|
||||
UNK_TYPE F_80178314;
|
||||
|
||||
+78
-81
@@ -169,14 +169,14 @@ void func_demo_80048CC4(Actor* actor, s32 arg1) {
|
||||
actor->obj.pos.x = D_demo_800C9F60[arg1].x + gPlayer[0].pos.x;
|
||||
actor->obj.pos.y = D_demo_800C9F60[arg1].y + gPlayer[0].pos.y;
|
||||
actor->obj.pos.z = D_demo_800C9F60[arg1].z + gPlayer[0].trueZpos;
|
||||
actor->unk_0F4.y = 0.0f;
|
||||
actor->unk_0F4.z = D_demo_800C9F90[arg1];
|
||||
actor->rot_0F4.y = 0.0f;
|
||||
actor->rot_0F4.z = D_demo_800C9F90[arg1];
|
||||
Object_SetInfo(&actor->info, actor->obj.id);
|
||||
|
||||
if (arg1 == 3) {
|
||||
AUDIO_PLAY_SFX(NA_SE_GREATFOX_ENGINE, actor->sfxSource, 0);
|
||||
AUDIO_PLAY_SFX(NA_SE_GREATFOX_BURNER, actor->sfxSource, 0);
|
||||
actor->unk_0B6 = 1;
|
||||
actor->animFrame = 1;
|
||||
} else {
|
||||
actor->iwork[11] = 1;
|
||||
AUDIO_PLAY_SFX(NA_SE_ARWING_ENGINE_FG, actor->sfxSource, 4);
|
||||
@@ -350,9 +350,9 @@ void func_demo_80049630(ActorCutscene* this) {
|
||||
Math_SmoothStepToF(&this->obj.pos.x, this->vwork[0].x, 0.05f, 50.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->obj.pos.y, this->vwork[0].y, 0.05f, 50.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->obj.pos.z, this->vwork[0].z, 0.05f, 50.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->unk_0F4.x, gPlayer[0].rot.x, 0.1f, 2.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->unk_0F4.y, gPlayer[0].rot.y, 0.1f, 2.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->unk_0F4.z, 0.0f, 0.05f, 0.2f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->rot_0F4.x, gPlayer[0].rot.x, 0.1f, 2.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->rot_0F4.y, gPlayer[0].rot.y, 0.1f, 2.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&this->rot_0F4.z, 0.0f, 0.05f, 0.2f, 0.0001f);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@@ -369,8 +369,8 @@ void func_demo_80049630(ActorCutscene* this) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
Matrix_RotateY(gCalcMatrix, (this->unk_0F4.y + 180.0f) * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, -(this->unk_0F4.x * M_DTOR), MTXF_APPLY);
|
||||
Matrix_RotateY(gCalcMatrix, (this->rot_0F4.y + 180.0f) * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, -(this->rot_0F4.x * M_DTOR), MTXF_APPLY);
|
||||
|
||||
sp3C.x = 0.0f;
|
||||
sp3C.y = 0.0f;
|
||||
@@ -382,9 +382,9 @@ void func_demo_80049630(ActorCutscene* this) {
|
||||
this->vel.y = sp30.y;
|
||||
this->vel.z = sp30.z;
|
||||
|
||||
this->obj.rot.x = -this->unk_0F4.x;
|
||||
this->obj.rot.y = this->unk_0F4.y + 180.0f;
|
||||
this->obj.rot.z = -this->unk_0F4.z;
|
||||
this->obj.rot.x = -this->rot_0F4.x;
|
||||
this->obj.rot.y = this->rot_0F4.y + 180.0f;
|
||||
this->obj.rot.z = -this->rot_0F4.z;
|
||||
}
|
||||
|
||||
void func_demo_8004990C(Player* player) {
|
||||
@@ -404,7 +404,7 @@ void func_demo_80049968(Actor* actor, s32 arg1) {
|
||||
actor->obj.pos.z = D_demo_800C9FF0[arg1] + gPlayer[0].trueZpos;
|
||||
actor->fwork[0] = D_demo_800CA000[arg1];
|
||||
actor->fwork[1] = D_demo_800CA010[arg1];
|
||||
actor->unk_0B6 = D_demo_800CA030[arg1];
|
||||
actor->animFrame = D_demo_800CA030[arg1];
|
||||
actor->state = D_demo_800CA040[arg1];
|
||||
actor->obj.rot.z = D_demo_800CA020[arg1];
|
||||
actor->obj.rot.y = 180.0f;
|
||||
@@ -451,7 +451,7 @@ void Cutscene_EnterWarpZone(Player* player) {
|
||||
|
||||
player->pos.x += player->vel.x;
|
||||
player->flags_228 = 0;
|
||||
player->cockpitView = false;
|
||||
player->alternateView = false;
|
||||
player->pos.y += player->vel.y;
|
||||
player->pos.z += player->vel.z;
|
||||
|
||||
@@ -587,7 +587,7 @@ void Cutscene_EnterWarpZone(Player* player) {
|
||||
|
||||
player->unk_234 = 1;
|
||||
gLevelPhase = 1;
|
||||
D_display_800CA230 = 0.15f;
|
||||
gCamDistortion = 0.15f;
|
||||
AUDIO_PLAY_SFX(NA_SE_WARP_OUT, gDefaultSfxSource, 0);
|
||||
Play_InitLevel();
|
||||
}
|
||||
@@ -626,7 +626,7 @@ void Cutscene_EnterWarpZone(Player* player) {
|
||||
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
|
||||
player->unk_014 = 0.0f;
|
||||
player->unk_018 = 0.0f;
|
||||
D_ctx_801782B8 = 0;
|
||||
gDrawSmallRocks = 0;
|
||||
gLoadLevelObjects = 1;
|
||||
}
|
||||
Math_SmoothStepToF(&player->cam.eye.y, (player->pos.y * player->unk_148) + 50.0f, 0.2f, 15.0f, 0.01f);
|
||||
@@ -639,7 +639,7 @@ void Cutscene_EnterWarpZone(Player* player) {
|
||||
}
|
||||
|
||||
void Cutscene_LevelStart(Player* player) {
|
||||
gCsFrameCount += 1;
|
||||
gCsFrameCount++;
|
||||
if (gLevelMode == LEVELMODE_ON_RAILS) {
|
||||
switch (gCurrentLevel) {
|
||||
case LEVEL_CORNERIA:
|
||||
@@ -807,7 +807,7 @@ void Cutscene_AllRangeMode(Player* player) {
|
||||
s32 pad1;
|
||||
s32 pad2;
|
||||
|
||||
gCsFrameCount += 1;
|
||||
gCsFrameCount++;
|
||||
Math_SmoothStepToAngle(&player->aerobaticPitch, 0.0f, 0.1f, 20.0f, 0.0f);
|
||||
if (gCsFrameCount == 37) {
|
||||
gChangeTo360 = true;
|
||||
@@ -892,7 +892,7 @@ void Cutscene_AllRangeMode(Player* player) {
|
||||
actor->obj.pos.x = D_demo_800CA080[i] + player->pos.x;
|
||||
actor->obj.pos.y = D_demo_800CA08C[i] + player->pos.y;
|
||||
actor->obj.pos.z = player->trueZpos - 1000.0f;
|
||||
actor->unk_0F4.y = 180.0f;
|
||||
actor->rot_0F4.y = 180.0f;
|
||||
Object_SetInfo(&actor->info, actor->obj.id);
|
||||
}
|
||||
}
|
||||
@@ -979,12 +979,12 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
case 11:
|
||||
D_ctx_80177A48[0] = 0.0f;
|
||||
Math_SmoothStepToAngle(&player->aerobaticPitch, 0.0f, 1.0f, 5.0f, 0.0f);
|
||||
player->cam.at.x += (D_ctx_80178440 - player->cam.at.x) * 0.01f;
|
||||
player->cam.at.y += (D_ctx_80178444 - player->cam.at.y) * 0.01f;
|
||||
player->cam.at.z += (D_ctx_80178448 - player->cam.at.z) * 0.01f;
|
||||
player->cam.at.x += (gBossDeathCamAtX - player->cam.at.x) * 0.01f;
|
||||
player->cam.at.y += (gBossDeathCamAtY - player->cam.at.y) * 0.01f;
|
||||
player->cam.at.z += (gBossDeathCamAtZ - player->cam.at.z) * 0.01f;
|
||||
player->cam.eye.x += (player->cam.at.x + (500.0f * player->unk_004) - player->cam.eye.x) * 0.01f;
|
||||
player->cam.eye.y += (player->cam.at.y + 500.0f - player->cam.eye.y) * 0.01f;
|
||||
player->cam.eye.z += (D_ctx_80178448 + (2000.0f * D_ctx_80177950) - player->cam.eye.z) * 0.01f;
|
||||
player->cam.eye.z += (gBossDeathCamAtZ + (2000.0f * D_ctx_80177950) - player->cam.eye.z) * 0.01f;
|
||||
|
||||
if (player->csEventTimer > 25) {
|
||||
D_ctx_80177A48[2] += 1.5f * player->unk_004;
|
||||
@@ -1106,7 +1106,7 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
player->csTimer = 200;
|
||||
player->csEventTimer = 500;
|
||||
player->csState = 2;
|
||||
player->unk_000 = (player->unk_004 = (player->unk_008 = (D_ctx_80178418 = 0.0f)));
|
||||
player->unk_000 = player->unk_004 = player->unk_008 = gCOComplete2CamRotY = 0.0f;
|
||||
player->baseSpeed = 0.0f;
|
||||
D_ctx_80177A48[6] = 0.0f;
|
||||
}
|
||||
@@ -1114,7 +1114,7 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
|
||||
case 2:
|
||||
player->pos.y += 5.0f;
|
||||
Matrix_RotateY(gCalcMatrix, ((player->rot.y + 180.0f) + D_ctx_80178418) * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateY(gCalcMatrix, (player->rot.y + 180.0f + gCOComplete2CamRotY) * 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);
|
||||
|
||||
@@ -1134,12 +1134,12 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
player->unk_000 = 0.3f;
|
||||
}
|
||||
|
||||
gCsCamEyeX += ((player->pos.x + sp6C.x) - gCsCamEyeX) * player->unk_000;
|
||||
gCsCamEyeY += ((player->pos.y + sp6C.y) - gCsCamEyeY) * player->unk_000;
|
||||
gCsCamEyeZ += ((player->trueZpos + gPathProgress + sp6C.z) - gCsCamEyeZ) * player->unk_000;
|
||||
D_ctx_80178430 += 0.2f;
|
||||
D_ctx_8017842C += 0.2f;
|
||||
D_ctx_80178418 += player->unk_008;
|
||||
gCsCamEyeX += (player->pos.x + sp6C.x - gCsCamEyeX) * player->unk_000;
|
||||
gCsCamEyeY += (player->pos.y + sp6C.y - gCsCamEyeY) * player->unk_000;
|
||||
gCsCamEyeZ += (player->trueZpos + gPathProgress + sp6C.z - gCsCamEyeZ) * player->unk_000;
|
||||
gStarfieldScrollY += 0.2f;
|
||||
gStarfieldScrollX += 0.2f;
|
||||
gCOComplete2CamRotY += player->unk_008;
|
||||
Math_SmoothStepToAngle(&player->rot.z, 0.0f, 0.1f, 2.0f, 0.0f);
|
||||
|
||||
if (player->csTimer == 0) {
|
||||
@@ -1176,7 +1176,7 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
Matrix_RotateX(gCalcMatrix, -(player->rot.x * M_DTOR), MTXF_APPLY);
|
||||
Matrix_RotateZ(gCalcMatrix, -((player->bankAngle + player->rockAngle) * M_DTOR), MTXF_APPLY);
|
||||
|
||||
if ((D_ctx_80178418 > 70.0f) && (D_ctx_80178418 < 280.0f)) {
|
||||
if ((gCOComplete2CamRotY > 70.0f) && (gCOComplete2CamRotY < 280.0f)) {
|
||||
func_demo_8004AA84();
|
||||
}
|
||||
sp78.x = gActors[0].fwork[0] * gActors[0].fwork[3];
|
||||
@@ -1185,9 +1185,9 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
|
||||
Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C);
|
||||
|
||||
D_ctx_80178450[0] = player->pos.x + sp6C.x;
|
||||
D_ctx_80178460[0] = player->pos.y + sp6C.y;
|
||||
D_ctx_80178470[0] = player->trueZpos + sp6C.z;
|
||||
gCsTeamTargetsX[0] = player->pos.x + sp6C.x;
|
||||
gCsTeamTargetsY[0] = player->pos.y + sp6C.y;
|
||||
gCsTeamTargetsZ[0] = player->trueZpos + sp6C.z;
|
||||
|
||||
sp78.x = gActors[1].fwork[0] * gActors[1].fwork[3];
|
||||
sp78.y = gActors[1].fwork[1] * gActors[1].fwork[3];
|
||||
@@ -1195,9 +1195,9 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
|
||||
Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C);
|
||||
|
||||
D_ctx_80178450[1] = player->pos.x + sp6C.x;
|
||||
D_ctx_80178460[1] = player->pos.y + sp6C.y;
|
||||
D_ctx_80178470[1] = player->trueZpos + sp6C.z;
|
||||
gCsTeamTargetsX[1] = player->pos.x + sp6C.x;
|
||||
gCsTeamTargetsY[1] = player->pos.y + sp6C.y;
|
||||
gCsTeamTargetsZ[1] = player->trueZpos + sp6C.z;
|
||||
|
||||
sp78.x = gActors[2].fwork[0] * gActors[2].fwork[3];
|
||||
sp78.y = gActors[2].fwork[1] * gActors[2].fwork[3];
|
||||
@@ -1205,9 +1205,9 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
|
||||
Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C);
|
||||
|
||||
D_ctx_80178450[2] = player->pos.x + sp6C.x;
|
||||
D_ctx_80178460[2] = player->pos.y + sp6C.y;
|
||||
D_ctx_80178470[2] = player->trueZpos + sp6C.z;
|
||||
gCsTeamTargetsX[2] = player->pos.x + sp6C.x;
|
||||
gCsTeamTargetsY[2] = player->pos.y + sp6C.y;
|
||||
gCsTeamTargetsZ[2] = player->trueZpos + sp6C.z;
|
||||
|
||||
switch (gCsFrameCount) {
|
||||
case 330:
|
||||
@@ -1245,8 +1245,8 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
break;
|
||||
|
||||
case 3:
|
||||
D_ctx_80178430 += 0.2f;
|
||||
D_ctx_8017842C += 0.2f;
|
||||
gStarfieldScrollY += 0.2f;
|
||||
gStarfieldScrollX += 0.2f;
|
||||
if (player->csTimer == 0) {
|
||||
player->csState = 4;
|
||||
player->csTimer = 30;
|
||||
@@ -1257,8 +1257,8 @@ void Cutscene_CoComplete2(Player* player) {
|
||||
break;
|
||||
|
||||
case 4:
|
||||
D_ctx_80178430 += 0.2f;
|
||||
D_ctx_8017842C += 0.2f;
|
||||
gStarfieldScrollY += 0.2f;
|
||||
gStarfieldScrollX += 0.2f;
|
||||
player->unk_190 = 2.0f;
|
||||
player->contrailScale += 0.1f;
|
||||
if (player->contrailScale > 0.6f) {
|
||||
@@ -1355,7 +1355,7 @@ void Cutscene_LevelComplete(Player* player) {
|
||||
s32 sp20;
|
||||
s32 btn;
|
||||
|
||||
gCsFrameCount += 1;
|
||||
gCsFrameCount++;
|
||||
|
||||
switch (player->form) {
|
||||
case FORM_ARWING:
|
||||
@@ -1650,13 +1650,13 @@ void Cutscene_KillPlayer(Player* player) {
|
||||
}
|
||||
|
||||
if (gCurrentLevel != LEVEL_TRAINING) {
|
||||
gLifeCount[gPlayerNum] -= 1;
|
||||
gLifeCount[gPlayerNum]--;
|
||||
}
|
||||
} else {
|
||||
if (player->attacker > 0) {
|
||||
D_ctx_80177DD0[player->attacker - 1][D_ctx_80177DB8[player->attacker - 1]] = player->num;
|
||||
D_ctx_80177DB8[player->attacker - 1] += 1;
|
||||
if (gVsPointsToWin == D_ctx_80177DB8[player->attacker - 1]) {
|
||||
gVsKills[player->attacker - 1][gVsPoints[player->attacker - 1]] = player->num;
|
||||
gVsPoints[player->attacker - 1]++;
|
||||
if (gVsPointsToWin == gVsPoints[player->attacker - 1]) {
|
||||
player->attacker = -1;
|
||||
if (player->unk_284 == 0) {
|
||||
func_effect_8007C688(player->pos.x, player->pos.y, player->trueZpos, 3.0f, 1000);
|
||||
@@ -1695,8 +1695,8 @@ void func_demo_8004D828(Player* player) {
|
||||
player->pos.x += player->vel.x;
|
||||
player->pos.y += player->vel.y;
|
||||
|
||||
if ((gCurrentLevel != LEVEL_VENOM_1 || gBossActive == 0) &&
|
||||
(gLevelType == LEVELTYPE_PLANET || gCurrentLevel == LEVEL_BOLSE)) {
|
||||
if (!((gCurrentLevel == LEVEL_VENOM_1) && gBossActive) &&
|
||||
((gLevelType == LEVELTYPE_PLANET) || (gCurrentLevel == LEVEL_BOLSE))) {
|
||||
player->vel.y -= 0.5f;
|
||||
player->rot.x -= 2.0f;
|
||||
}
|
||||
@@ -1814,7 +1814,7 @@ void func_demo_8004DEF8(Player* player) {
|
||||
player->pos.x += player->vel.x;
|
||||
player->pos.y += player->vel.y;
|
||||
|
||||
if (((gCurrentLevel != LEVEL_VENOM_ANDROSS) || (gBossActive == 0)) && (gLevelType == LEVELTYPE_PLANET)) {
|
||||
if (!((gCurrentLevel == LEVEL_VENOM_ANDROSS) && gBossActive) && (gLevelType == LEVELTYPE_PLANET)) {
|
||||
player->vel.y = player->vel.y - 0.5f;
|
||||
}
|
||||
|
||||
@@ -1931,7 +1931,7 @@ void func_demo_8004E4D4(ActorCutscene* this) {
|
||||
f32 sp34;
|
||||
|
||||
this->fwork[7] += 3.0f;
|
||||
this->unk_0F4.z = SIN_DEG(this->fwork[7]) * 1.5f;
|
||||
this->rot_0F4.z = SIN_DEG(this->fwork[7]) * 1.5f;
|
||||
this->fwork[8] += 2.0f;
|
||||
sp34 = SIN_DEG(this->fwork[8]) * 10.0f;
|
||||
|
||||
@@ -2027,7 +2027,7 @@ void func_demo_8004E4D4(ActorCutscene* this) {
|
||||
|
||||
case 31:
|
||||
AUDIO_PLAY_SFX(NA_SE_ARWING_BOOST, this->sfxSource, 0);
|
||||
this->state += 1;
|
||||
this->state++;
|
||||
this->fwork[29] = 5.0f;
|
||||
/* fallthrough */
|
||||
|
||||
@@ -2059,9 +2059,9 @@ void func_demo_8004EBD0(ActorCutscene* this) {
|
||||
if (this->state < 4) {
|
||||
this->fwork[9] = 0.4f;
|
||||
|
||||
this->obj.pos.x += (D_ctx_80178450[this->index] - this->obj.pos.x) * 0.4f;
|
||||
this->obj.pos.y += (D_ctx_80178460[this->index] - this->obj.pos.y) * 0.4f;
|
||||
this->obj.pos.z += (D_ctx_80178470[this->index] - this->obj.pos.z) * 0.4f;
|
||||
this->obj.pos.x += (gCsTeamTargetsX[this->index] - this->obj.pos.x) * 0.4f;
|
||||
this->obj.pos.y += (gCsTeamTargetsY[this->index] - this->obj.pos.y) * 0.4f;
|
||||
this->obj.pos.z += (gCsTeamTargetsZ[this->index] - this->obj.pos.z) * 0.4f;
|
||||
|
||||
this->obj.rot.z *= 0.98f;
|
||||
this->obj.rot.x = -gPlayer[0].rot.x;
|
||||
@@ -2070,14 +2070,14 @@ void func_demo_8004EBD0(ActorCutscene* this) {
|
||||
if (1) {}
|
||||
|
||||
this->fwork[7] += 1.0f;
|
||||
if ((s32) this->fwork[7] & 0x40) {
|
||||
if (((s32) this->fwork[7] & 0x40) != 0) {
|
||||
this->fwork[0] += 0.1f;
|
||||
} else {
|
||||
this->fwork[0] -= 0.1f;
|
||||
}
|
||||
|
||||
this->fwork[8] += 1.2f;
|
||||
if ((s32) this->fwork[8] & 0x40) {
|
||||
if (((s32) this->fwork[8] & 0x40) != 0) {
|
||||
this->fwork[1] += 0.1f;
|
||||
} else {
|
||||
this->fwork[1] -= 0.1f;
|
||||
@@ -2088,7 +2088,7 @@ void func_demo_8004EBD0(ActorCutscene* this) {
|
||||
case 0:
|
||||
this->fwork[3] *= 0.992f;
|
||||
if (this->fwork[3] < 1.2f) {
|
||||
this->state += 1;
|
||||
this->state++;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2096,7 +2096,7 @@ void func_demo_8004EBD0(ActorCutscene* this) {
|
||||
this->fwork[3] *= 0.997f;
|
||||
if (this->fwork[3] < 1.0f) {
|
||||
this->fwork[3] = 1.0f;
|
||||
this->state += 1;
|
||||
this->state++;
|
||||
}
|
||||
this->timer_0BC = 560;
|
||||
break;
|
||||
@@ -2158,19 +2158,19 @@ void func_demo_8004EBD0(ActorCutscene* this) {
|
||||
}
|
||||
|
||||
void func_demo_8004F05C(Actor* actor) {
|
||||
if (((gLevelType == LEVELTYPE_PLANET) && (actor->unk_0B6 == 0)) || (gCurrentLevel == LEVEL_BOLSE)) {
|
||||
if (((gLevelType == LEVELTYPE_PLANET) && (actor->animFrame == 0)) || (gCurrentLevel == LEVEL_BOLSE)) {
|
||||
actor->fwork[0] += 3.0f;
|
||||
actor->fwork[1] = SIN_DEG(actor->fwork[0]) * 1.5f;
|
||||
}
|
||||
|
||||
switch (gCurrentLevel) {
|
||||
case LEVEL_BOLSE:
|
||||
switch (actor->unk_0B6) {
|
||||
switch (actor->animFrame) {
|
||||
case 0:
|
||||
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) {
|
||||
actor->unk_0F4.z += actor->unk_0F4.y;
|
||||
actor->vel.x = SIN_DEG(actor->unk_0F4.z) * 10.0f;
|
||||
actor->obj.rot.z = SIN_DEG(actor->unk_0F4.z) * 40.0f;
|
||||
actor->rot_0F4.z += actor->rot_0F4.y;
|
||||
actor->vel.x = SIN_DEG(actor->rot_0F4.z) * 10.0f;
|
||||
actor->obj.rot.z = SIN_DEG(actor->rot_0F4.z) * 40.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2203,7 +2203,7 @@ void func_demo_8004F05C(Actor* actor) {
|
||||
break;
|
||||
|
||||
case 32:
|
||||
actor->obj.rot.z += actor->unk_0F4.z;
|
||||
actor->obj.rot.z += actor->rot_0F4.z;
|
||||
if (actor->timer_0BC == 0) {
|
||||
Object_Kill(&actor->obj, actor->sfxSource);
|
||||
}
|
||||
@@ -2219,7 +2219,7 @@ void func_demo_8004F05C(Actor* actor) {
|
||||
break;
|
||||
|
||||
case LEVEL_SECTOR_Y:
|
||||
switch (actor->unk_0B6) {
|
||||
switch (actor->animFrame) {
|
||||
case 0:
|
||||
SectorY_8019FF00(actor);
|
||||
break;
|
||||
@@ -2266,8 +2266,8 @@ void func_demo_8004F05C(Actor* actor) {
|
||||
break;
|
||||
|
||||
case 0:
|
||||
actor->obj.rot.z = actor->unk_0F4.z;
|
||||
if (actor->unk_0B6 == 10) {
|
||||
actor->obj.rot.z = actor->rot_0F4.z;
|
||||
if (actor->animFrame == 10) {
|
||||
actor->obj.pos.z = gPlayer[0].cam.eye.z + 12000.0f;
|
||||
}
|
||||
break;
|
||||
@@ -2388,14 +2388,13 @@ void ActorCutscene_Update(ActorCutscene* this) {
|
||||
case LEVEL_METEO:
|
||||
if (gLevelPhase == 0) {
|
||||
Meteo_8018ED9C(this);
|
||||
break;
|
||||
} else {
|
||||
func_demo_80049630(this);
|
||||
}
|
||||
|
||||
func_demo_80049630(this);
|
||||
break;
|
||||
|
||||
case LEVEL_FORTUNA:
|
||||
if (this->unk_0B6 == 11) {
|
||||
if (this->animFrame == 11) {
|
||||
switch (this->state) {
|
||||
case 0:
|
||||
if (gCsFrameCount == 100) {
|
||||
@@ -2436,19 +2435,17 @@ void ActorCutscene_Update(ActorCutscene* this) {
|
||||
case LEVEL_CORNERIA:
|
||||
if (gLevelMode == LEVELMODE_ALL_RANGE) {
|
||||
func_demo_8004E4D4(this);
|
||||
break;
|
||||
} else {
|
||||
func_demo_8004EBD0(this);
|
||||
}
|
||||
|
||||
func_demo_8004EBD0(this);
|
||||
break;
|
||||
|
||||
case LEVEL_SECTOR_X:
|
||||
if (gLevelPhase != 0) {
|
||||
func_demo_80049630(this);
|
||||
break;
|
||||
} else {
|
||||
func_demo_8004E4D4(this);
|
||||
}
|
||||
|
||||
func_demo_8004E4D4(this);
|
||||
break;
|
||||
|
||||
case LEVEL_TITANIA:
|
||||
@@ -2537,7 +2534,7 @@ void ActorCutscene_Draw(Actor* actor) {
|
||||
f32 y;
|
||||
f32 x;
|
||||
|
||||
switch (actor->unk_0B6) {
|
||||
switch (actor->animFrame) {
|
||||
case 1000:
|
||||
RCP_SetupDL(&gMasterDisp, 0x2D);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, actor->unk_046);
|
||||
|
||||
+97
-92
@@ -19,13 +19,13 @@ s32 D_display_800CA220 = 0;
|
||||
u8 sPlayersVisible[] = { 0, 0, 0, 0 }; //
|
||||
s32 sDrawCockpit = 0; //
|
||||
s32 D_display_800CA22C = 0; //
|
||||
f32 D_display_800CA230 = 0.0f;
|
||||
f32 gCamDistortion = 0.0f;
|
||||
Actor* gTeamHelpActor = NULL;
|
||||
s32 gTeamHelpTimer = 0;
|
||||
f32 D_display_800CA23C[3] = { 0.5f, 0.25f, 0.25f }; //
|
||||
f32 D_display_800CA248[3] = { 2.0f, 1.0f, 0.5f }; //
|
||||
|
||||
void func_display_80051B30(void) {
|
||||
void Display_DrawHelpAlert(void) {
|
||||
s32 sp7C;
|
||||
f32 sp78;
|
||||
f32 sp74;
|
||||
@@ -47,7 +47,7 @@ void func_display_80051B30(void) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!(gTeamHelpTimer & 4)) {
|
||||
if ((gTeamHelpTimer & 4) == 0) {
|
||||
Matrix_RotateY(gCalcMatrix, gPlayer[0].camYaw, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, gPlayer[0].camPitch, MTXF_APPLY);
|
||||
sp68.x = gTeamHelpActor->obj.pos.x - gPlayer[0].cam.eye.x;
|
||||
@@ -615,7 +615,7 @@ void func_display_80053C38(Player* player, s32 arg1) {
|
||||
sp4C.z = 2400.0f + sp48;
|
||||
Matrix_MultVec3f(gGfxMatrix, &sp4C, &D_display_801613E0[1]);
|
||||
}
|
||||
if (player->cockpitView && (gLevelMode == LEVELMODE_ON_RAILS) &&
|
||||
if (player->alternateView && (gLevelMode == LEVELMODE_ON_RAILS) &&
|
||||
(fabsf(player->trueZpos + gPathProgress - player->cam.eye.z) < 10.0f)) {
|
||||
if (arg1 == 0) {
|
||||
sDrawCockpit = 1;
|
||||
@@ -876,7 +876,7 @@ void func_display_80054E80(Player* player) {
|
||||
if (gChargeTimers[player->num] > 10) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x43);
|
||||
Matrix_Copy(gCalcMatrix, &D_display_80161418[player->num]);
|
||||
if (player->cockpitView && (gLevelMode == LEVELMODE_ON_RAILS)) {
|
||||
if (player->alternateView && (gLevelMode == LEVELMODE_ON_RAILS)) {
|
||||
Matrix_MultVec3f(gCalcMatrix, &spB8, &sp94);
|
||||
} else {
|
||||
Matrix_MultVec3f(gCalcMatrix, &spC4, &sp94);
|
||||
@@ -886,7 +886,7 @@ void func_display_80054E80(Player* player) {
|
||||
Matrix_Translate(gGfxMatrix, sp94.x, sp94.y, sp94.z, MTXF_NEW);
|
||||
Matrix_Scale(gGfxMatrix, sp80, sp80, 1.0f, MTXF_APPLY);
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
if (player->cockpitView && (gLevelMode == LEVELMODE_ON_RAILS)) {
|
||||
if (player->alternateView && (gLevelMode == LEVELMODE_ON_RAILS)) {
|
||||
Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 3.0f, MTXF_APPLY);
|
||||
} else {
|
||||
Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 10.0f, MTXF_APPLY);
|
||||
@@ -918,7 +918,7 @@ void func_display_80054E80(Player* player) {
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_101C2E0);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
if (player->cockpitView && (gLevelMode == LEVELMODE_ON_RAILS)) {
|
||||
if (player->alternateView && (gLevelMode == LEVELMODE_ON_RAILS)) {
|
||||
Matrix_Scale(gGfxMatrix, 0.3f, 0.3f, 0.3f, MTXF_APPLY);
|
||||
}
|
||||
Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, MTXF_APPLY);
|
||||
@@ -943,7 +943,7 @@ void func_display_80054E80(Player* player) {
|
||||
case LASERS_SINGLE:
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 192, 255, 192, 128);
|
||||
gDPSetEnvColor(gMasterDisp++, 64, 255, 64, 128);
|
||||
if (player->cockpitView && (gLevelMode == LEVELMODE_ON_RAILS)) {
|
||||
if (player->alternateView && (gLevelMode == LEVELMODE_ON_RAILS)) {
|
||||
Matrix_MultVec3f(gCalcMatrix, &spB8, &sp94);
|
||||
} else {
|
||||
Matrix_MultVec3f(gCalcMatrix, &spC4, &sp94);
|
||||
@@ -1382,7 +1382,7 @@ void func_display_80057248(void) {
|
||||
s32 i;
|
||||
f32 var_fs0;
|
||||
|
||||
if (!(gGameFrameCount & 4)) {
|
||||
if ((gGameFrameCount & 4) == 0) {
|
||||
RCP_SetupDL_40();
|
||||
for (i = 0; i < ARRAY_COUNT(gTeamArrowsViewPos); i++) {
|
||||
if (gTeamArrowsViewPos[i].z < 0.0f) {
|
||||
@@ -1487,12 +1487,12 @@ void func_display_800578C4(Player* player) {
|
||||
case 0:
|
||||
Math_SmoothStepToAngle(&player->wings.unk_30, 0.0f, 0.2f, 3.0f, 0.0f);
|
||||
Math_SmoothStepToAngle(&player->wings.unk_34, 0.0f, 0.2f, 3.0f, 0.0f);
|
||||
gPlayerCamEye.x = player->cam.eye.x;
|
||||
gPlayerCamEye.y = player->cam.eye.y;
|
||||
gPlayerCamEye.z = player->cam.eye.z;
|
||||
gPlayerCamAt.x = player->cam.at.x;
|
||||
gPlayerCamAt.y = player->cam.at.y;
|
||||
gPlayerCamAt.z = player->cam.at.z;
|
||||
gPlayCamEye.x = player->cam.eye.x;
|
||||
gPlayCamEye.y = player->cam.eye.y;
|
||||
gPlayCamEye.z = player->cam.eye.z;
|
||||
gPlayCamAt.x = player->cam.at.x;
|
||||
gPlayCamAt.y = player->cam.at.y;
|
||||
gPlayCamAt.z = player->cam.at.z;
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
@@ -1521,12 +1521,12 @@ void func_display_800578C4(Player* player) {
|
||||
Matrix_RotateX(gCalcMatrix, (player->rot.y + D_display_800CA380) * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateY(gCalcMatrix, (player->rot.x + D_display_800CA384) * M_DTOR, MTXF_APPLY);
|
||||
Matrix_MultVec3f(gCalcMatrix, &sp4C, &sp40);
|
||||
gPlayerCamEye.x = player->pos.x + sp40.x;
|
||||
gPlayerCamEye.y = player->pos.y + sp40.y + 20.0f;
|
||||
gPlayerCamEye.z = player->trueZpos + sp40.z;
|
||||
gPlayerCamAt.x = (SIN_DEG(gGameFrameCount * 3.0f) * 3.0f) + player->pos.x;
|
||||
gPlayerCamAt.y = (COS_DEG(gGameFrameCount * 4.0f) * 3.0f) + player->pos.y;
|
||||
gPlayerCamAt.z = (SIN_DEG(gGameFrameCount * 3.5f) * 3.0f) + player->trueZpos;
|
||||
gPlayCamEye.x = player->pos.x + sp40.x;
|
||||
gPlayCamEye.y = player->pos.y + sp40.y + 20.0f;
|
||||
gPlayCamEye.z = player->trueZpos + sp40.z;
|
||||
gPlayCamAt.x = (SIN_DEG(gGameFrameCount * 3.0f) * 3.0f) + player->pos.x;
|
||||
gPlayCamAt.y = (COS_DEG(gGameFrameCount * 4.0f) * 3.0f) + player->pos.y;
|
||||
gPlayCamAt.z = (SIN_DEG(gGameFrameCount * 3.5f) * 3.0f) + player->trueZpos;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1535,10 +1535,10 @@ void Play_Draw(void) {
|
||||
s32 i;
|
||||
Vec3f tempVec;
|
||||
Vec3f playerCamUp;
|
||||
Vec3f opponentPos;
|
||||
Vec3f playerPos;
|
||||
s32 pad;
|
||||
Player* opponent;
|
||||
Player* player = &gPlayer[gPlayerNum];
|
||||
Player* player;
|
||||
Player* camPlayer = &gPlayer[gPlayerNum];
|
||||
|
||||
sDrawCockpit = 0;
|
||||
|
||||
@@ -1547,72 +1547,77 @@ void Play_Draw(void) {
|
||||
}
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
if ((gCurrentLevel == LEVEL_AQUAS) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE)) {
|
||||
Math_SmoothStepToF(&D_display_800CA230, 0.01f, 0.2f, 0.002f, 0.0f);
|
||||
Math_SmoothStepToF(&gCamDistortion, 0.01f, 0.2f, 0.002f, 0.0f);
|
||||
} else {
|
||||
Math_SmoothStepToF(&D_display_800CA230, 0.0f, 0.2f, 0.002f, 0.0f);
|
||||
Math_SmoothStepToF(&gCamDistortion, 0.0f, 0.2f, 0.002f, 0.0f);
|
||||
}
|
||||
Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 10.0f * M_DTOR, MTXF_APPLY);
|
||||
Matrix_Scale(gGfxMatrix, 1.0f + D_display_800CA230, 1.0f - D_display_800CA230, 1.0f, MTXF_APPLY);
|
||||
Matrix_Scale(gGfxMatrix, 1.0f + gCamDistortion, 1.0f - gCamDistortion, 1.0f, MTXF_APPLY);
|
||||
Matrix_RotateZ(gGfxMatrix, -(f32) gGameFrameCount * 10.0f * M_DTOR, MTXF_APPLY);
|
||||
Matrix_Scale(gGfxMatrix, 1.0f + D_display_800CA230, 1.0f - D_display_800CA230, 1.0f, MTXF_APPLY);
|
||||
Matrix_Scale(gGfxMatrix, 1.0f + gCamDistortion, 1.0f - gCamDistortion, 1.0f, MTXF_APPLY);
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Camera_SetupLights(player);
|
||||
Camera_SetupLights(camPlayer);
|
||||
Lights_SetOneLight(&gMasterDisp, gLight1x, gLight1y, gLight1z, gLight1R, gLight1G, gLight1B, gAmbientR, gAmbientG,
|
||||
gAmbientB);
|
||||
if (gLevelMode == LEVELMODE_ON_RAILS) {
|
||||
Matrix_RotateY(gCalcMatrix, player->yRot_114 * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, player->xRot_120 * M_DTOR, MTXF_APPLY);
|
||||
Matrix_RotateY(gCalcMatrix, camPlayer->yRot_114 * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, camPlayer->xRot_120 * M_DTOR, MTXF_APPLY);
|
||||
|
||||
tempVec.x = player->cam.eye.x - player->pos.x;
|
||||
tempVec.y = player->cam.eye.y - player->pos.y;
|
||||
tempVec.z = player->cam.eye.z - (player->trueZpos + player->zPath);
|
||||
Matrix_MultVec3f(gCalcMatrix, &tempVec, &gPlayerCamEye);
|
||||
gPlayerCamEye.x += player->pos.x;
|
||||
gPlayerCamEye.y += player->pos.y;
|
||||
gPlayerCamEye.z += player->trueZpos + player->zPath;
|
||||
tempVec.x = camPlayer->cam.eye.x - camPlayer->pos.x;
|
||||
tempVec.y = camPlayer->cam.eye.y - camPlayer->pos.y;
|
||||
tempVec.z = camPlayer->cam.eye.z - (camPlayer->trueZpos + camPlayer->zPath);
|
||||
Matrix_MultVec3f(gCalcMatrix, &tempVec, &gPlayCamEye);
|
||||
gPlayCamEye.x += camPlayer->pos.x;
|
||||
gPlayCamEye.y += camPlayer->pos.y;
|
||||
gPlayCamEye.z += camPlayer->trueZpos + camPlayer->zPath;
|
||||
|
||||
tempVec.x = player->cam.at.x - player->pos.x;
|
||||
tempVec.y = player->cam.at.y - player->pos.y;
|
||||
tempVec.z = player->cam.at.z - (player->trueZpos + player->zPath);
|
||||
Matrix_MultVec3f(gCalcMatrix, &tempVec, &gPlayerCamAt);
|
||||
gPlayerCamAt.x += player->pos.x;
|
||||
gPlayerCamAt.y += player->pos.y;
|
||||
gPlayerCamAt.z += player->trueZpos + player->zPath;
|
||||
tempVec.x = camPlayer->cam.at.x - camPlayer->pos.x;
|
||||
tempVec.y = camPlayer->cam.at.y - camPlayer->pos.y;
|
||||
tempVec.z = camPlayer->cam.at.z - (camPlayer->trueZpos + camPlayer->zPath);
|
||||
Matrix_MultVec3f(gCalcMatrix, &tempVec, &gPlayCamAt);
|
||||
gPlayCamAt.x += camPlayer->pos.x;
|
||||
gPlayCamAt.y += camPlayer->pos.y;
|
||||
gPlayCamAt.z += camPlayer->trueZpos + camPlayer->zPath;
|
||||
|
||||
if (player->cockpitView && (player->boostSpeed > 5.0f)) {
|
||||
gPlayerCamAt.x += SIN_DEG(gGameFrameCount * 150.0f) * player->boostSpeed * 0.2f;
|
||||
if (camPlayer->alternateView && (camPlayer->boostSpeed > 5.0f)) {
|
||||
gPlayCamAt.x += SIN_DEG(gGameFrameCount * 150.0f) * camPlayer->boostSpeed * 0.2f;
|
||||
}
|
||||
} else if (player->state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE) {
|
||||
func_display_800578C4(player);
|
||||
} else if (camPlayer->state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE) {
|
||||
func_display_800578C4(camPlayer);
|
||||
} else {
|
||||
gPlayerCamEye.x = player->cam.eye.x;
|
||||
gPlayerCamEye.y = player->cam.eye.y;
|
||||
gPlayerCamEye.z = player->cam.eye.z;
|
||||
gPlayerCamAt.x = player->cam.at.x;
|
||||
gPlayerCamAt.y = player->cam.at.y;
|
||||
gPlayerCamAt.z = player->cam.at.z;
|
||||
gPlayCamEye.x = camPlayer->cam.eye.x;
|
||||
gPlayCamEye.y = camPlayer->cam.eye.y;
|
||||
gPlayCamEye.z = camPlayer->cam.eye.z;
|
||||
gPlayCamAt.x = camPlayer->cam.at.x;
|
||||
gPlayCamAt.y = camPlayer->cam.at.y;
|
||||
gPlayCamAt.z = camPlayer->cam.at.z;
|
||||
}
|
||||
player->camYaw = -Math_Atan2F(gPlayerCamEye.x - gPlayerCamAt.x, gPlayerCamEye.z - gPlayerCamAt.z);
|
||||
player->camPitch = -Math_Atan2F(gPlayerCamEye.y - gPlayerCamAt.y,
|
||||
sqrtf(SQ(gPlayerCamEye.z - gPlayerCamAt.z) + SQ(gPlayerCamEye.x - gPlayerCamAt.x)));
|
||||
Matrix_RotateY(gCalcMatrix, -player->camYaw, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, player->camPitch, MTXF_APPLY);
|
||||
Matrix_RotateZ(gCalcMatrix, -player->camRoll * M_DTOR, MTXF_APPLY);
|
||||
camPlayer->camYaw = -Math_Atan2F(gPlayCamEye.x - gPlayCamAt.x, gPlayCamEye.z - gPlayCamAt.z);
|
||||
camPlayer->camPitch = -Math_Atan2F(gPlayCamEye.y - gPlayCamAt.y,
|
||||
sqrtf(SQ(gPlayCamEye.z - gPlayCamAt.z) + SQ(gPlayCamEye.x - gPlayCamAt.x)));
|
||||
Matrix_RotateY(gCalcMatrix, -camPlayer->camYaw, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, camPlayer->camPitch, MTXF_APPLY);
|
||||
Matrix_RotateZ(gCalcMatrix, -camPlayer->camRoll * M_DTOR, MTXF_APPLY);
|
||||
tempVec.x = 0.0f;
|
||||
tempVec.y = 100.0f;
|
||||
tempVec.z = 0.0f;
|
||||
Matrix_MultVec3f(gCalcMatrix, &tempVec, &playerCamUp);
|
||||
if (gStarCount != 0) {
|
||||
gStarfieldRoll = DEG_TO_RAD(gPlayer[0].camRoll);
|
||||
Camera_SetStarfieldPos(gPlayerCamEye.x, gPlayerCamEye.y, gPlayerCamEye.z, gPlayerCamAt.x, gPlayerCamAt.y,
|
||||
gPlayerCamAt.z);
|
||||
Camera_SetStarfieldPos(gPlayCamEye.x, gPlayCamEye.y, gPlayCamEye.z, gPlayCamAt.x, gPlayCamAt.y, gPlayCamAt.z);
|
||||
Background_DrawStarfield();
|
||||
}
|
||||
Background_DrawBackdrop();
|
||||
Background_DrawSun();
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_LookAt(gGfxMatrix, gPlayerCamEye.x, gPlayerCamEye.y, gPlayerCamEye.z, gPlayerCamAt.x, gPlayerCamAt.y,
|
||||
gPlayerCamAt.z, playerCamUp.x, playerCamUp.y, playerCamUp.z, MTXF_APPLY);
|
||||
// if(gControllerHold[gMainController]. button & L_TRIG) {
|
||||
// Matrix_LookAt(gGfxMatrix, gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ,
|
||||
// playerCamUp.x, playerCamUp.y, playerCamUp.z, MTXF_APPLY);
|
||||
// } else {
|
||||
Matrix_LookAt(gGfxMatrix, gPlayCamEye.x, gPlayCamEye.y, gPlayCamEye.z, gPlayCamAt.x, gPlayCamAt.y, gPlayCamAt.z,
|
||||
playerCamUp.x, playerCamUp.y, playerCamUp.z, MTXF_APPLY);
|
||||
// }
|
||||
|
||||
if ((gLevelType == LEVELTYPE_PLANET) || (gCurrentLevel == LEVEL_BOLSE)) {
|
||||
if ((gCurrentLevel == LEVEL_TITANIA) &&
|
||||
((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO) || (gPlayer[0].unk_19C != 0))) {
|
||||
@@ -1629,24 +1634,24 @@ void Play_Draw(void) {
|
||||
}
|
||||
Lights_SetOneLight(&gMasterDisp, gLight2x, gLight2y, gLight2z, gLight2R, gLight2G, gLight2B, gAmbientR, gAmbientG,
|
||||
gAmbientB);
|
||||
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
|
||||
opponentPos.x = opponent->pos.x;
|
||||
opponentPos.y = opponent->pos.y;
|
||||
opponentPos.z = opponent->trueZpos;
|
||||
Display_SetSecondLight(&opponentPos);
|
||||
func_display_800564C0(opponent, 0);
|
||||
func_display_80057814(opponent);
|
||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||
playerPos.x = player->pos.x;
|
||||
playerPos.y = player->pos.y;
|
||||
playerPos.z = player->trueZpos;
|
||||
Display_SetSecondLight(&playerPos);
|
||||
func_display_800564C0(player, 0);
|
||||
func_display_80057814(player);
|
||||
}
|
||||
if ((gGroundSurface == SURFACE_WATER) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO)) {
|
||||
Lights_SetOneLight(&gMasterDisp, gLight2x, -1 * gLight2y, gLight2z, gLight2R, gLight2G, gLight2B, gAmbientR,
|
||||
gAmbientG, gAmbientB);
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, MTXF_APPLY);
|
||||
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
|
||||
opponentPos.x = opponent->pos.x;
|
||||
opponentPos.y = opponent->pos.y;
|
||||
opponentPos.z = opponent->trueZpos;
|
||||
func_display_800564C0(opponent, 1);
|
||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||
playerPos.x = player->pos.x;
|
||||
playerPos.y = player->pos.y;
|
||||
playerPos.z = player->trueZpos;
|
||||
func_display_800564C0(player, 1);
|
||||
}
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
@@ -1667,10 +1672,10 @@ void Play_Draw(void) {
|
||||
if ((gGroundSurface == SURFACE_WATER) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO)) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, MTXF_APPLY);
|
||||
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
|
||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||
if (sPlayersVisible[i] != 0) {
|
||||
func_display_80055B58(opponent);
|
||||
func_display_80056230(opponent);
|
||||
func_display_80055B58(player);
|
||||
func_display_80056230(player);
|
||||
}
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
@@ -1690,11 +1695,11 @@ void Play_Draw(void) {
|
||||
Effect_Draw(0);
|
||||
}
|
||||
gReflectY = 1;
|
||||
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
|
||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||
if (sPlayersVisible[i] != 0) {
|
||||
func_display_80056E2C(opponent);
|
||||
func_display_80055B58(opponent);
|
||||
func_display_80056230(opponent);
|
||||
func_display_80056E2C(player);
|
||||
func_display_80055B58(player);
|
||||
func_display_80056230(player);
|
||||
}
|
||||
}
|
||||
if ((gCurrentLevel == LEVEL_AQUAS) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE)) {
|
||||
@@ -1712,15 +1717,15 @@ void Play_Draw(void) {
|
||||
if (sDrawCockpit != 0) {
|
||||
func_display_80053B18();
|
||||
}
|
||||
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
|
||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||
if (sPlayersVisible[i] != 0) {
|
||||
if (gShowCrosshairs[i]) {
|
||||
func_display_80053F7C(opponent);
|
||||
func_display_80053F7C(player);
|
||||
}
|
||||
if (opponent->form == FORM_LANDMASTER) {
|
||||
func_display_80052B80(opponent);
|
||||
} else if (opponent->form == FORM_ON_FOOT) {
|
||||
func_display_80052584(opponent);
|
||||
if (player->form == FORM_LANDMASTER) {
|
||||
func_display_80052B80(player);
|
||||
} else if (player->form == FORM_ON_FOOT) {
|
||||
func_display_80052584(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1729,12 +1734,12 @@ void Play_Draw(void) {
|
||||
}
|
||||
Background_DrawLensFlare();
|
||||
if ((gCamCount != 1) &&
|
||||
((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_U_TURN))) {
|
||||
((camPlayer->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (camPlayer->state_1C8 == PLAYERSTATE_1C8_U_TURN))) {
|
||||
HUD_Draw();
|
||||
HUD_DrawEdgeArrows();
|
||||
}
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
func_display_80051B30();
|
||||
Display_DrawHelpAlert();
|
||||
sPlayersVisible[gPlayerNum] = 0;
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user