Script and hitbox docs, update torch (#210)

* script2

* more docs and such

* torch update
This commit is contained in:
petrie911 2024-04-11 11:55:32 -05:00 committed by GitHub
parent 4362338efb
commit c532f31e24
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
47 changed files with 586 additions and 503 deletions

View File

@ -12,7 +12,7 @@ extern s32 D_ctx_80177824; // some sort of flag
extern s32 D_ctx_8017782C; // some sort of flag. all range related? extern s32 D_ctx_8017782C; // some sort of flag. all range related?
extern GameState gGameState; extern GameState gGameState;
extern s32 gNextGameStateTimer; // next game state timer? extern s32 gNextGameStateTimer; // next game state timer?
extern s32 D_ctx_80177844; // timer for vs item spawn extern s32 gVsItemSpawnTimer; // timer for vs item spawn
extern OptionState gOptionMenuStatus; extern OptionState gOptionMenuStatus;
extern s32 gPlayState; // pause-related state extern s32 gPlayState; // pause-related state
extern s32 D_ctx_80177868; // some sort of state. pause-related? extern s32 D_ctx_80177868; // some sort of state. pause-related?
@ -75,7 +75,7 @@ extern UNK_TYPE F_80177D80;
extern UNK_TYPE F_80177DE8; extern UNK_TYPE F_80177DE8;
extern s32 gGameFrameCount; extern s32 gGameFrameCount;
extern s32 D_ctx_80177DC8; extern s32 D_ctx_80177DC8;
extern s32 D_ctx_80177E70; extern s32 gPrevEventActorIndex;
extern s32 D_ctx_80177E78; extern s32 D_ctx_80177E78;
extern s32 gRingPassCount; extern s32 gRingPassCount;
extern Vec3f D_ctx_80177E88; extern Vec3f D_ctx_80177E88;
@ -267,7 +267,7 @@ extern f32 D_ctx_80177958[4];
extern s32 D_ctx_8017796C; extern s32 D_ctx_8017796C;
extern OSContPad* gInputHold; extern OSContPad* gInputHold;
extern OSContPad* gInputPress; extern OSContPad* gInputPress;
extern u8* D_ctx_80177984; extern u8* gControllerRumble;
extern s32 D_ctx_80177990[4]; extern s32 D_ctx_80177990[4];
extern f32 D_ctx_801779A8[4]; extern f32 D_ctx_801779A8[4];
extern u8 gPauseEnabled; extern u8 gPauseEnabled;
@ -288,7 +288,7 @@ extern u8 D_ctx_80177B4C;
extern u8 D_ctx_80177B6C; extern u8 D_ctx_80177B6C;
extern u8 gGreatFoxIntact; extern u8 gGreatFoxIntact;
extern u8 D_ctx_80177BAC; extern u8 D_ctx_80177BAC;
extern u16 D_Timer_80177BD0[4]; extern u16 gControllerRumbleTimers[4];
extern u16 D_ctx_80177C30[4]; extern u16 D_ctx_80177C30[4];
extern s32 D_ctx_80177C50; extern s32 D_ctx_80177C50;
extern s32 D_ctx_80177C70; extern s32 D_ctx_80177C70;

View File

@ -477,7 +477,7 @@ void func_play_800B6BFC(Player*, s32 );
void func_play_800B6F50(f32, f32, f32, f32, f32, f32); void func_play_800B6F50(f32, f32, f32, f32, f32, f32);
void func_play_800B7184(Player*, s32); void func_play_800B7184(Player*, s32);
void func_play_800B73E0(Player*); void func_play_800B73E0(Player*);
void func_play_800B852C(ObjectId , Item*); void Play_SpawnVsItem(ObjectId , Item*);
void Play_Main(void); void Play_Main(void);
void func_play_800A668C(f32 xPos, f32 yPos, f32 zPos); void func_play_800A668C(f32 xPos, f32 yPos, f32 zPos);
void func_play_800AD7F0(Player* player); void func_play_800AD7F0(Player* player);

View File

@ -5,6 +5,7 @@
#define SCREEN_WIDTH 320 #define SCREEN_WIDTH 320
#define SCREEN_HEIGHT 240 #define SCREEN_HEIGHT 240
#define SCREEN_MARGIN 8
#define RAND_FLOAT(max) (Rand_ZeroOne()*(max)) #define RAND_FLOAT(max) (Rand_ZeroOne()*(max))
#define RAND_INT(max) ((s32)(Rand_ZeroOne()*(max))) #define RAND_INT(max) ((s32)(Rand_ZeroOne()*(max)))

View File

@ -1,6 +1,63 @@
#ifndef SF64_EVENT #ifndef SF64_EVENT
#define SF64_EVENT #define SF64_EVENT
#define evaLoopCount(actor) (actor)->iwork[0]
#define evaTargetActorIndex(actor) (actor)->iwork[1]
#define evaTrigCondition(actor) (actor)->iwork[2]
#define evaTrigCmdIndex(actor) (actor)->iwork[3]
#define EvaIwork4(actor) (actor)->iwork[4]
#define evaMoveModeZ(actor) (actor)->iwork[5]
#define evaRotateFlag(actor) (actor)->iwork[6]
#define evaTexLineFlag(actor) (actor)->iwork[7]
#define evaTexLineIndex(actor) (actor)->iwork[8]
#define EvaIwork9(actor) (actor)->iwork[9]
#define EvaIwork10(actor) (actor)->iwork[10]
#define EvaIwork11(actor) (actor)->iwork[11]
#define EvaIwork12(actor) (actor)->iwork[12]
#define EvaIwork13(actor) (actor)->iwork[13]
#define EvaIwork14(actor) (actor)->iwork[14]
#define EvaIwork15(actor) (actor)->iwork[15]
#define EvaIwork16(actor) (actor)->iwork[16]
#define EvaIwork17(actor) (actor)->iwork[17]
#define EvaIwork18(actor) (actor)->iwork[18]
#define EvaIwork19(actor) (actor)->iwork[19]
#define evaTrigCondition0(actor) (actor)->iwork[20]
#define evaTrigCondition1(actor) (actor)->iwork[21]
#define evaTrigCondition2(actor) (actor)->iwork[22]
#define evaTrigCondition3(actor) (actor)->iwork[23]
#define evaTrigCondition4(actor) (actor)->iwork[24]
#define EvaFwork0(actor) (actor)->fwork[0]
#define EvaFwork1(actor) (actor)->fwork[1]
#define EvaFwork2(actor) (actor)->fwork[2]
#define EvaFwork3(actor) (actor)->fwork[3]
#define EvaFwork4(actor) (actor)->fwork[4]
#define EvaFwork5(actor) (actor)->fwork[5]
#define EvaFwork6(actor) (actor)->fwork[6]
#define EvaFwork7(actor) (actor)->fwork[7]
#define EvaFwork8(actor) (actor)->fwork[8]
#define EvaFwork9(actor) (actor)->fwork[9]
#define EvaFwork10(actor) (actor)->fwork[10]
#define EvaFwork11(actor) (actor)->fwork[11]
#define EvaFwork12(actor) (actor)->fwork[12]
#define EvaFwork13(actor) (actor)->fwork[13]
#define EvaFwork14(actor) (actor)->fwork[14]
#define EvaFwork15(actor) (actor)->fwork[15]
#define EvaFwork16(actor) (actor)->fwork[16]
#define evaTargetSpread(actor) (actor)->fwork[17]
#define EvaFwork18(actor) (actor)->fwork[18]
#define EvaFwork19(actor) (actor)->fwork[19]
#define EvaFwork20(actor) (actor)->fwork[20]
#define EvaFwork21(actor) (actor)->fwork[21]
#define EvaFwork22(actor) (actor)->fwork[22]
#define EvaFwork23(actor) (actor)->fwork[23]
#define evaTargetTurnRate(actor) (actor)->fwork[24]
#define EvaFwork25(actor) (actor)->fwork[25]
#define EvaFwork26(actor) (actor)->fwork[26]
#define EvaFwork27(actor) (actor)->fwork[27]
#define EvaFwork28(actor) (actor)->fwork[28]
#define EvaFwork29(actor) (actor)->fwork[29]
#define EV_OPC(opcode) (((opcode) & 0x7F) << 9) #define EV_OPC(opcode) (((opcode) & 0x7F) << 9)
#define EV_OPC_MASK(cmd) ((cmd) & (0x7F << 9)) #define EV_OPC_MASK(cmd) ((cmd) & (0x7F << 9))
#define EVENT_CMD(opcode, arg1, arg2) (EV_OPC(opcode) | ((s16) (arg1) & 0x1FF)), (arg2) #define EVENT_CMD(opcode, arg1, arg2) (EV_OPC(opcode) | ((s16) (arg1) & 0x1FF)), (arg2)
@ -20,6 +77,7 @@
#define EVENT_SET_ROTATE() EVENT_CMD(EVOP_SET_ROTATE, 0, 0) #define EVENT_SET_ROTATE() EVENT_CMD(EVOP_SET_ROTATE, 0, 0)
#define EVENT_STOP_ROTATE() EVENT_CMD(EVOP_STOP_ROTATE, 0, 0) #define EVENT_STOP_ROTATE() EVENT_CMD(EVOP_STOP_ROTATE, 0, 0)
#define EVENT_SET_TRIGGER(cond, cmd) EVENT_CMD(EVOP_SET_TRIGGER, cmd, cond) #define EVENT_SET_TRIGGER(cond, cmd) EVENT_CMD(EVOP_SET_TRIGGER, cmd, cond)
#define EVENT_SET_Z_TRIGGER(z, cmd) EVENT_SET_TRIGGER(EVC_CLOSE_Z + (s32)((z) / 10), cmd)
#define EVENT_CLEAR_TRIGGER(cmd) EVENT_SET_TRIGGER(EVC_NONE, cmd) #define EVENT_CLEAR_TRIGGER(cmd) EVENT_SET_TRIGGER(EVC_NONE, cmd)
#define EVENT_LOOP(count, cmd) EVENT_CMD(EVOP_LOOP, cmd, count) #define EVENT_LOOP(count, cmd) EVENT_CMD(EVOP_LOOP, cmd, count)
#define EVENT_GOTO(cmd) EVENT_LOOP(0, cmd) #define EVENT_GOTO(cmd) EVENT_LOOP(0, cmd)
@ -33,16 +91,16 @@
#define EVENT_PLAY_SFX(sfx) EVENT_CMD(EVOP_PLAY_SFX, 0, sfx) #define EVENT_PLAY_SFX(sfx) EVENT_CMD(EVOP_PLAY_SFX, 0, sfx)
#define EVENT_STOP_SFX(sfx) EVENT_CMD(EVOP_STOP_SFX, 0, sfx) #define EVENT_STOP_SFX(sfx) EVENT_CMD(EVOP_STOP_SFX, 0, sfx)
#define EVENT_SET_CALL(duration, voiceParam) EVENT_CMD(EVOP_SET_CALL, voiceParam, duration) #define EVENT_SET_CALL(duration, voiceParam) EVENT_CMD(EVOP_SET_CALL, voiceParam, duration)
#define EVENT_ROT_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_X, rotVel * 10, rot) #define EVENT_ROT_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_X, (rotVel) * 10, rot)
#define EVENT_ROT_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_X, rotVel * 10, rot) #define EVENT_ROT_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_X, (rotVel) * 10, rot)
#define EVENT_ROT_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_Y, rotVel * 10, rot) #define EVENT_ROT_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_Y, (rotVel) * 10, rot)
#define EVENT_ROT_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_Y, rotVel * 10, rot) #define EVENT_ROT_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_Y, (rotVel) * 10, rot)
#define EVENT_ROT_PLUS_Z(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_Z, rotVel * 10, rot) #define EVENT_ROT_PLUS_Z(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_Z, (rotVel) * 10, rot)
#define EVENT_ROT_MINUS_Z(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_Z, rotVel * 10, rot) #define EVENT_ROT_MINUS_Z(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_Z, (rotVel) * 10, rot)
#define EVENT_F4_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_X, rotVel * 10, rot) #define EVENT_F4_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_X, (rotVel) * 10, rot)
#define EVENT_F4_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_X, rotVel * 10, rot) #define EVENT_F4_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_X, (rotVel) * 10, rot)
#define EVENT_F4_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_Y, rotVel * 10, rot) #define EVENT_F4_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_Y, (rotVel) * 10, rot)
#define EVENT_F4_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_Y, rotVel * 10, rot) #define EVENT_F4_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_Y, (rotVel) * 10, rot)
#define EVENT_SET_BASE_ZVEL(zvel) EVENT_CMD(EVOP_SET_BASE_ZVEL, 0, zvel) #define EVENT_SET_BASE_ZVEL(zvel) EVENT_CMD(EVOP_SET_BASE_ZVEL, 0, zvel)
#define EVENT_SET_TEAM_ID(teamId) EVENT_CMD(EVOP_SET_TEAM_ID, 0, teamId) #define EVENT_SET_TEAM_ID(teamId) EVENT_CMD(EVOP_SET_TEAM_ID, 0, teamId)
#define EVENT_DAMAGE_TEAM(teamId, damage) EVENT_CMD(EVOP_DAMAGE_TEAM, damage, teamId) #define EVENT_DAMAGE_TEAM(teamId, damage) EVENT_CMD(EVOP_DAMAGE_TEAM, damage, teamId)
@ -176,7 +234,7 @@ typedef enum EventCondition {
/* 67 */ EVC_EXPERT_MODE, /* 67 */ EVC_EXPERT_MODE,
/* 68 */ EVC_68, /* 68 */ EVC_68,
/* 69 */ EVC_69, /* 69 */ EVC_69,
/* 100 */ EVC_100=100, /* 100 */ EVC_CLOSE_Z=100,
} EventCondition; } EventCondition;
typedef enum EventState { typedef enum EventState {
@ -334,6 +392,7 @@ typedef enum EventActorInfo {
/* 107 */ EINFO_107, /* 107 */ EINFO_107,
/* 200 */ EINFO_200 = 200, /* 200 */ EINFO_200 = 200,
/* 300 */ EINFO_300 = 300, /* 300 */ EINFO_300 = 300,
/* 4095*/ EINFO_FFF = 4095,
} EventActorInfo; } EventActorInfo;
typedef enum EventSfx { typedef enum EventSfx {

View File

@ -4,9 +4,9 @@
#include "libultra/ultra64.h" #include "libultra/ultra64.h"
#include "sf64math.h" #include "sf64math.h"
#define HITBOX_TYPE_2 200000.0f #define HITBOX_ROTATED 200000.0f
#define HITBOX_TYPE_3 300000.0f #define HITBOX_SHADOW 300000.0f
#define HITBOX_TYPE_4 400000.0f #define HITBOX_WHOOSH 400000.0f
typedef struct { typedef struct {
/* 0x0 */ f32 offset; /* 0x0 */ f32 offset;

View File

@ -271,11 +271,11 @@ typedef struct Player {
/* 0x220 */ s32 timer_220; /* 0x220 */ s32 timer_220;
/* 0x224 */ s32 timer_224; /* 0x224 */ s32 timer_224;
/* 0x228 */ s32 flags_228; /* 0x228 */ s32 flags_228;
/* 0x22C */ s32 unk_22C; /* 0x22C */ s32 whooshTimer;
/* 0x230 */ s32 unk_230; /* 0x230 */ s32 unk_230;
/* 0x234 */ s32 unk_234; /* 0x234 */ s32 unk_234;
/* 0x238 */ s32 cockpitView; /* 0x238 */ s32 cockpitView;
/* 0x23C */ s32 unk_23C; /* 0x23C */ s32 shadowing;
/* 0x240 */ s32 unk_240; /* 0x240 */ s32 unk_240;
/* 0x244 */ s32 timer_244; /* 0x244 */ s32 timer_244;
/* 0x248 */ f32 unk_248; /* 0x248 */ f32 unk_248;

View File

@ -103,7 +103,7 @@ extern OSContPad gControllerHold[4];
extern OSContPad gControllerPress[4]; extern OSContPad gControllerPress[4];
extern u8 gControllerPlugged[4]; extern u8 gControllerPlugged[4];
extern u32 gControllerLock; extern u32 gControllerLock;
extern u8 gControllerRumble[4]; extern u8 gControllerRumbleEnabled[4];
extern OSContPad sNextController[4]; // extern OSContPad sNextController[4]; //
extern OSContPad sPrevController[4]; // extern OSContPad sPrevController[4]; //
extern OSContStatus sControllerStatus[4]; // extern OSContStatus sControllerStatus[4]; //
@ -167,11 +167,11 @@ extern Lightsn* gLight;
extern FrameBuffer* gFrameBuffer; extern FrameBuffer* gFrameBuffer;
extern u16* gTextureRender; extern u16* gTextureRender;
extern u8 D_80137E78; extern u8 gVIsPerFrame;
extern u32 gSysFrameCount; extern u32 gSysFrameCount;
extern u8 gStartNMI; extern u8 gStartNMI;
extern u8 gStopTasks; extern u8 gStopTasks;
extern u8 D_80137E84[4]; extern u8 gControllerRumbleFlags[4];
extern u16 gFillScreenColor; extern u16 gFillScreenColor;
extern u16 gFillScreen; extern u16 gFillScreen;

View File

@ -78,7 +78,7 @@ extern ObjectInit* gLevelObjectInits[];
extern u32 D_enmy_800CFF54[9]; extern u32 D_enmy_800CFF54[9];
// fox_enmy2 // fox_enmy2
extern s32 D_enmy2_800CFF80[4]; extern s32 gTeamEventActorIndex[4];
extern s32 gCallVoiceParam; extern s32 gCallVoiceParam;
// fox_hud // fox_hud

View File

@ -60,7 +60,7 @@ D_800C45E0 = 0x800C45E0;
D_edisplay_801615D0 = 0x801615D0;//size:0xC D_edisplay_801615D0 = 0x801615D0;//size:0xC
D_edisplay_801615E0 = 0x801615E0;//size:0xC D_edisplay_801615E0 = 0x801615E0;//size:0xC
D_enmy2_800CFF80 = 0x800CFF80;//size:0x10 gTeamEventActorIndex = 0x800CFF80;//size:0x10
D_display_80161578 = 0x80161578;//size:0x30 D_display_80161578 = 0x80161578;//size:0x30
D_display_800CA23C = 0x800CA23C;//size:0x18 D_display_800CA23C = 0x800CA23C;//size:0x18

View File

@ -516,7 +516,7 @@ D_ctx_80177B50 = 0x80177B50;
D_ctx_80177B70 = 0x80177B70; D_ctx_80177B70 = 0x80177B70;
D_ctx_80177B90 = 0x80177B90; D_ctx_80177B90 = 0x80177B90;
D_ctx_80177BB0 = 0x80177BB0; D_ctx_80177BB0 = 0x80177BB0;
D_Timer_80177BD0 = 0x80177BD0; gControllerRumbleTimers = 0x80177BD0;
D_ctx_80177BD8 = 0x80177BD8; D_ctx_80177BD8 = 0x80177BD8;
D_ctx_80177C30 = 0x80177C30; D_ctx_80177C30 = 0x80177C30;
D_ctx_80177C50 = 0x80177C50; D_ctx_80177C50 = 0x80177C50;
@ -550,7 +550,7 @@ D_ctx_80177D88 = 0x80177D88;
gBombCount = 0x80177DA0; gBombCount = 0x80177DA0;
gGameFrameCount = 0x80177DB0; gGameFrameCount = 0x80177DB0;
D_ctx_80177DC8 = 0x80177DC8; D_ctx_80177DC8 = 0x80177DC8;
D_ctx_80177E70 = 0x80177E70; gPrevEventActorIndex = 0x80177E70;
D_ctx_80177E78 = 0x80177E78; D_ctx_80177E78 = 0x80177E78;
gRingPassCount = 0x80177E80; gRingPassCount = 0x80177E80;
D_ctx_80177E88 = 0x80177E88; // size:0xC D_ctx_80177E88 = 0x80177E88; // size:0xC
@ -763,7 +763,7 @@ Player_Update2 = 0x800B71E4;
func_play_800B73E0 = 0x800B73E0; func_play_800B73E0 = 0x800B73E0;
Play_UpdateLevel = 0x800B79B0; Play_UpdateLevel = 0x800B79B0;
Play_Update = 0x800B832C; Play_Update = 0x800B832C;
func_play_800B852C = 0x800B852C; Play_SpawnVsItem = 0x800B852C;
func_play_800B86A4 = 0x800B86A4; func_play_800B86A4 = 0x800B86A4;
Play_Main = 0x800B86CC; Play_Main = 0x800B86CC;

View File

@ -11,7 +11,7 @@ gControllerHold = 0x800DD880; // size:0x18
gControllerPress = 0x800DD898; // size:0x18 gControllerPress = 0x800DD898; // size:0x18
gControllerPlugged = 0x800DD8B0; // size:0x4 gControllerPlugged = 0x800DD8B0; // size:0x4
gControllerLock = 0x800DD8B4; // size:0x4 gControllerLock = 0x800DD8B4; // size:0x4
gControllerRumble = 0x800DD8B8; // size:0x4 gControllerRumbleEnabled = 0x800DD8B8; // size:0x4
D_800DD8BC = 0x800DD8BC; // ignore:true D_800DD8BC = 0x800DD8BC; // ignore:true
sNextController = 0x800DD8C0; // size:0x18 sNextController = 0x800DD8C0; // size:0x18
sPrevController = 0x800DD8D8; // size:0x18 sPrevController = 0x800DD8D8; // size:0x18
@ -75,11 +75,11 @@ gUnkDisp2 = 0x80137E68;
gLight = 0x80137E6C; gLight = 0x80137E6C;
gFrameBuffer = 0x80137E70; gFrameBuffer = 0x80137E70;
gTextureRender = 0x80137E74; gTextureRender = 0x80137E74;
D_80137E78 = 0x80137E78; gVIsPerFrame = 0x80137E78;
gSysFrameCount = 0x80137E7C; gSysFrameCount = 0x80137E7C;
gStartNMI = 0x80137E80; gStartNMI = 0x80137E80;
gStopTasks = 0x80137E81; gStopTasks = 0x80137E81;
D_80137E84 = 0x80137E84; // size:0x4 gControllerRumbleFlags = 0x80137E84; // size:0x4
gFillScreenColor = 0x80137E88; gFillScreenColor = 0x80137E88;
gFillScreen = 0x80137E8A; gFillScreen = 0x80137E8A;

View File

@ -266,10 +266,10 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) {
boxRotZ = 0.0f; boxRotZ = 0.0f;
boxRotY = 0.0f; boxRotY = 0.0f;
boxRotX = 0.0f; boxRotX = 0.0f;
if (hitboxData[0] >= HITBOX_TYPE_3) { if (hitboxData[0] >= HITBOX_SHADOW) {
return 0; return 0;
} }
if (hitboxData[0] == HITBOX_TYPE_2) { if (hitboxData[0] == HITBOX_ROTATED) {
rotateBox = 1.0f; rotateBox = 1.0f;
boxRotX = hitboxData[1]; boxRotX = hitboxData[1];
boxRotY = hitboxData[2]; boxRotY = hitboxData[2];
@ -378,7 +378,7 @@ s32 func_beam_80036F88(PlayerShot* shot, Actor* actor) {
shotPy = shot->obj.pos.y; shotPy = shot->obj.pos.y;
shotPz = shot->obj.pos.z; shotPz = shot->obj.pos.z;
} else { } else {
if (hitboxData[0] == HITBOX_TYPE_2) { if (hitboxData[0] == HITBOX_ROTATED) {
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1);
Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1); Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1);
@ -665,7 +665,8 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
break; break;
} }
} else if ((shot->playerNum >= 100) && (gCurrentLevel == LEVEL_SECTOR_X)) { } else if ((shot->playerNum >= 100) && (gCurrentLevel == LEVEL_SECTOR_X)) {
if ((gActors[shot->playerNum - 100].obj.id == 200) && (gActors[shot->playerNum - 100].iwork[12] == 5)) { if ((gActors[shot->playerNum - 100].obj.id == OBJ_ACTOR_EVENT) &&
(gActors[shot->playerNum - 100].iwork[12] == TEAM_ID_BILL)) {
actor->damage = 30; actor->damage = 30;
} }
} }
@ -685,9 +686,9 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
actor->unk_0D8.y = shot->obj.pos.y; actor->unk_0D8.y = shot->obj.pos.y;
actor->unk_0D8.z = shot->obj.pos.z; actor->unk_0D8.z = shot->obj.pos.z;
if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0D2 == 0) && if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0D2 == 0) &&
((actor->unk_0B4 == 48) || (actor->unk_0B4 == 49) || (actor->unk_0B4 == 50))) || ((actor->unk_0B4 == EINFO_48) || (actor->unk_0B4 == EINFO_49) || (actor->unk_0B4 == EINFO_50))) ||
((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) || ((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0D2 == 0) && (actor->unk_0B4 == 67)) || ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0D2 == 0) && (actor->unk_0B4 == EINFO_67)) ||
((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_8) && ((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_8) &&
((actor->state < 3) || (actor->state >= 5))) || ((actor->state < 3) || (actor->state >= 5))) ||
((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_8) && (actor->timer_0BC != 0))) { ((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_8) && (actor->timer_0BC != 0))) {
@ -764,13 +765,13 @@ void func_beam_80038140(PlayerShot* shot) {
} }
break; break;
case OBJ_ACTOR_EVENT: case OBJ_ACTOR_EVENT:
if (actor->unk_0B4 == 42) { if (actor->unk_0B4 == EINFO_42) {
if (func_beam_8003774C(shot, ACTOR_EVENT_ID, &actor->obj)) { if (func_beam_8003774C(shot, ACTOR_EVENT_ID, &actor->obj)) {
actor->unk_0D0 = 1; actor->unk_0D0 = 1;
actor->unk_0D2 = shot->playerNum; actor->unk_0D2 = shot->playerNum;
return; return;
} }
} else if (actor->unk_0B4 == 63) { } else if (actor->unk_0B4 == EINFO_63) {
test.x = fabsf(actor->obj.pos.x - shot->obj.pos.x); test.x = fabsf(actor->obj.pos.x - shot->obj.pos.x);
test.y = fabsf(actor->obj.pos.y - shot->obj.pos.y); test.y = fabsf(actor->obj.pos.y - shot->obj.pos.y);
test.z = fabsf(actor->obj.pos.z - shot->obj.pos.z); test.z = fabsf(actor->obj.pos.z - shot->obj.pos.z);
@ -1109,9 +1110,9 @@ void func_beam_80039210(PlayerShot* shot) {
} else { } else {
var_a1 = 0; var_a1 = 0;
if ((gCurrentLevel != LEVEL_KATINA) && (shot->playerNum >= 104) && (shot->playerNum != 108)) { if ((gCurrentLevel != LEVEL_KATINA) && (shot->playerNum >= 104) && (shot->playerNum != 108)) {
if (gActors[shot->playerNum - 100].obj.id != 200) { if (gActors[shot->playerNum - 100].obj.id != OBJ_ACTOR_EVENT) {
var_a1 = 1; var_a1 = 1;
} else if (gActors[shot->playerNum - 100].iwork[12] == 5) { } else if (gActors[shot->playerNum - 100].iwork[12] == TEAM_ID_BILL) {
var_a1 = 2; var_a1 = 2;
} }
} else if (gCurrentLevel == LEVEL_KATINA) { } else if (gCurrentLevel == LEVEL_KATINA) {
@ -1771,7 +1772,7 @@ void func_beam_8003C008(PlayerShot* shot) {
count = *hitboxData++; count = *hitboxData++;
if (count != 0) { if (count != 0) {
for (j = 0; j < count; j++, hitboxData += 6) { for (j = 0; j < count; j++, hitboxData += 6) {
if (hitboxData[0] == HITBOX_TYPE_2) { if (hitboxData[0] == HITBOX_ROTATED) {
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1);
Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1); Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1);
@ -1888,8 +1889,8 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
if ((actor->obj.id == OBJ_ACTOR_193) || (actor->obj.id == OBJ_ACTOR_186) || 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_190) || (actor->obj.id == OBJ_ACTOR_202) ||
(actor->obj.id == OBJ_ACTOR_201) || (actor->obj.id == OBJ_ACTOR_187) || (actor->obj.id == OBJ_ACTOR_201) || (actor->obj.id == OBJ_ACTOR_187) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == 78)) || ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_78)) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == 38)) || ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_38)) ||
(actor->obj.id == OBJ_ACTOR_196)) { (actor->obj.id == OBJ_ACTOR_196)) {
actor->unk_0D0 = 2; actor->unk_0D0 = 2;
actor->unk_0D2 = 0; actor->unk_0D2 = 0;

View File

@ -117,17 +117,17 @@ void func_bg_8003DAF0(void) {
gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
var_s2 = D_ctx_80178410; var_s2 = D_ctx_80178410;
if (var_s2 != 0) { if (var_s2 != 0) {
if (D_ctx_80178420 >= 480.0f) { if (D_ctx_80178420 >= 1.5f * SCREEN_WIDTH) {
D_ctx_80178420 -= 480.0f; D_ctx_80178420 -= 1.5f * SCREEN_WIDTH;
} }
if (D_ctx_80178424 >= 360.0f) { if (D_ctx_80178424 >= 1.5f * SCREEN_HEIGHT) {
D_ctx_80178424 -= 360.0f; D_ctx_80178424 -= 1.5f * SCREEN_HEIGHT;
} }
if (D_ctx_80178420 < 0.0f) { if (D_ctx_80178420 < 0.0f) {
D_ctx_80178420 += 480.0f; D_ctx_80178420 += 1.5f * SCREEN_WIDTH;
} }
if (D_ctx_80178424 < 0.0f) { if (D_ctx_80178424 < 0.0f) {
D_ctx_80178424 += 360.0f; D_ctx_80178424 += 1.5f * SCREEN_HEIGHT;
} }
spf68 = D_ctx_80178420; spf68 = D_ctx_80178420;
spf64 = D_ctx_80178424; spf64 = D_ctx_80178424;
@ -144,17 +144,18 @@ void func_bg_8003DAF0(void) {
for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) { for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) {
var_fv1 = *sp60 + spf68; var_fv1 = *sp60 + spf68;
var_fa0 = *sp5C + spf64; var_fa0 = *sp5C + spf64;
if (var_fv1 >= 400.0f) { if (var_fv1 >= 1.25f * SCREEN_WIDTH) {
var_fv1 -= 480.0f; var_fv1 -= 1.5f * SCREEN_WIDTH;
} }
var_fv1 -= 160.0f; var_fv1 -= SCREEN_WIDTH / 2.0f;
if (var_fa0 >= 300.0f) {
var_fa0 -= 360.0f;
}
var_fa0 -= 120.0f;
temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + 160.0f; if (var_fa0 >= 1.25f * SCREEN_HEIGHT) {
temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + 120.0f; var_fa0 -= 1.5f * SCREEN_HEIGHT;
}
var_fa0 -= SCREEN_HEIGHT / 2.0f;
temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + SCREEN_WIDTH / 2.0f;
temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + SCREEN_HEIGHT / 2.0f;
if ((temp_ft2 >= 0) && (temp_ft2 < SCREEN_WIDTH) && (temp_ft0 > 0) && (temp_ft0 < SCREEN_HEIGHT)) { if ((temp_ft2 >= 0) && (temp_ft2 < SCREEN_WIDTH) && (temp_ft0 > 0) && (temp_ft0 < SCREEN_HEIGHT)) {
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetFillColor(gMasterDisp++, *sp58); gDPSetFillColor(gMasterDisp++, *sp58);

View File

@ -10,7 +10,7 @@ s32 D_ctx_80177824; // some sort of flag
s32 D_ctx_8017782C; // some sort of flag. all range related? s32 D_ctx_8017782C; // some sort of flag. all range related?
GameState gGameState; GameState gGameState;
s32 gNextGameStateTimer; // next game state timer? s32 gNextGameStateTimer; // next game state timer?
s32 D_ctx_80177844; // timer for vs item spawn s32 gVsItemSpawnTimer; // timer for vs item spawn
OptionState gOptionMenuStatus; OptionState gOptionMenuStatus;
s32 gPlayState; // pause-related state s32 gPlayState; // pause-related state
s32 D_ctx_80177868; // some sort of state. pause-related? s32 D_ctx_80177868; // some sort of state. pause-related?
@ -73,7 +73,7 @@ UNK_TYPE F_80177D80;
UNK_TYPE F_80177DE8; UNK_TYPE F_80177DE8;
s32 gGameFrameCount; s32 gGameFrameCount;
s32 D_ctx_80177DC8; s32 D_ctx_80177DC8;
s32 D_ctx_80177E70; s32 gPrevEventActorIndex;
s32 D_ctx_80177E78; s32 D_ctx_80177E78;
s32 gRingPassCount; s32 gRingPassCount;
Vec3f D_ctx_80177E88; Vec3f D_ctx_80177E88;
@ -286,7 +286,7 @@ f32 D_ctx_80177958[4];
s32 D_ctx_8017796C; s32 D_ctx_8017796C;
OSContPad* gInputHold; OSContPad* gInputHold;
OSContPad* gInputPress; OSContPad* gInputPress;
u8* D_ctx_80177984; u8* gControllerRumble;
s32 D_ctx_80177990[4]; s32 D_ctx_80177990[4];
f32 D_ctx_801779A8[4]; f32 D_ctx_801779A8[4];
u8 gPauseEnabled; u8 gPauseEnabled;
@ -307,7 +307,7 @@ u8 D_ctx_80177B4C;
u8 D_ctx_80177B6C; u8 D_ctx_80177B6C;
u8 gGreatFoxIntact; u8 gGreatFoxIntact;
u8 D_ctx_80177BAC; u8 D_ctx_80177BAC;
u16 D_Timer_80177BD0[4]; u16 gControllerRumbleTimers[4];
u16 D_ctx_80177C30[4]; u16 D_ctx_80177C30[4];
s32 D_ctx_80177C50; s32 D_ctx_80177C50;
s32 D_ctx_80177C70; s32 D_ctx_80177C70;

View File

@ -1894,7 +1894,7 @@ void func_demo_8004E3D8(Player* player) {
player->unk_280 = 0; player->unk_280 = 0;
if ((gGameFrameCount % 2) != 0) { if ((gGameFrameCount % 2) != 0) {
D_80137E84[gPlayerNum] = 1; gControllerRumbleFlags[gPlayerNum] = 1;
} }
switch (player->form) { switch (player->form) {

View File

@ -16,9 +16,9 @@ f32 D_display_801615A8[4];
f32 D_display_801615B8[4]; f32 D_display_801615B8[4];
s32 D_display_800CA220 = 0; s32 D_display_800CA220 = 0;
u8 D_display_800CA224[] = { 0, 0, 0, 0 }; // u8 sPlayersVisible[] = { 0, 0, 0, 0 }; //
s32 D_display_800CA228 = 0; // s32 D_display_800CA228 = 0; //
s32 D_display_800CA22C = 0; // s32 D_display_800CA22C = 0; //
f32 D_display_800CA230 = 0.0f; f32 D_display_800CA230 = 0.0f;
Actor* D_display_800CA234 = NULL; Actor* D_display_800CA234 = NULL;
s32 D_display_Timer_800CA238 = 0; s32 D_display_Timer_800CA238 = 0;
@ -318,8 +318,8 @@ Gfx* D_display_800CA27C[] = { D_arwing_3001C90, D_arwing_3016CC0, D_arwing_3005A
f32 D_display_800CA28C = 2.0f; f32 D_display_800CA28C = 2.0f;
f32 D_display_800CA290 = 13.0f; f32 D_display_800CA290 = 13.0f;
f32 D_display_800CA294 = -10.0f; f32 D_display_800CA294 = -10.0f;
f32 D_display_800CA298[] = { 0.0f, 0.0f, 0.0f, 0.0f }; f32 sCrosshairScales[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_display_800CA2A8 = 0.0f; f32 sPlayerShadowing = 0.0f;
void func_display_80052B80(Player* player) { void func_display_80052B80(Player* player) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
@ -652,22 +652,22 @@ void func_display_80053C38(Player* player, s32 arg1) {
} }
void func_display_80053F7C(Player* player) { void func_display_80053F7C(Player* player) {
Vec3f* pad; Vec3f* translate;
s32 i; s32 i;
if ((gPlayerNum == player->num) && ((player->form == FORM_ARWING) || (player->form == FORM_LANDMASTER)) && if ((gPlayerNum == player->num) && ((player->form == FORM_ARWING) || (player->form == FORM_LANDMASTER)) &&
(player->unk_234 != 0) && (player->unk_234 != 0) &&
(((gGameState == GSTATE_PLAY) && (player->state_1C8 == PLAYERSTATE_1C8_3)) || (gGameState == GSTATE_MENU))) { (((gGameState == GSTATE_PLAY) && (player->state_1C8 == PLAYERSTATE_1C8_3)) || (gGameState == GSTATE_MENU))) {
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
pad = &D_display_801613E0[i]; translate = &D_display_801613E0[i];
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, pad->x, pad->y, pad->z, 1); Matrix_Translate(gGfxMatrix, translate->x, translate->y, translate->z, 1);
if (gChargeTimers[player->num] >= 20) { if (gChargeTimers[player->num] >= 20) {
RCP_SetupDL(&gMasterDisp, 0x3F); RCP_SetupDL(&gMasterDisp, 0x3F);
if (i == 1) { if (i == 1) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255);
gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255); gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255);
Math_SmoothStepToF(&D_display_800CA298[player->num], 2.0f, 1.0f, 0.4f, 0.0f); Math_SmoothStepToF(&sCrosshairScales[player->num], 2.0f, 1.0f, 0.4f, 0.0f);
} else { } else {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255);
gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255); gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255);
@ -676,8 +676,8 @@ void func_display_80053F7C(Player* player) {
RCP_SetupDL_36(); RCP_SetupDL_36();
} }
if (i == 1) { if (i == 1) {
Matrix_Scale(gGfxMatrix, D_display_800CA298[player->num], D_display_800CA298[player->num], 1.0f, 1); Matrix_Scale(gGfxMatrix, sCrosshairScales[player->num], sCrosshairScales[player->num], 1.0f, 1);
Math_SmoothStepToF(&D_display_800CA298[player->num], 1.0f, 1.0f, 0.2f, 0.0f); Math_SmoothStepToF(&sCrosshairScales[player->num], 1.0f, 1.0f, 0.2f, 0.0f);
} }
Matrix_Scale(gGfxMatrix, 4.0f, 4.0f, 4.0f, 1); Matrix_Scale(gGfxMatrix, 4.0f, 4.0f, 4.0f, 1);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
@ -705,16 +705,16 @@ void func_display_80054280(Player* player, s32 arg1) {
} }
void func_display_80054300(Player* player) { void func_display_80054300(Player* player) {
Math_SmoothStepToF(&D_display_800CA2A8, player->unk_23C, 1.0f, 10.0f, 0.0f); Math_SmoothStepToF(&sPlayerShadowing, player->shadowing, 1.0f, 10.0f, 0.0f);
RCP_SetupDL(&gMasterDisp, 0x42); RCP_SetupDL(&gMasterDisp, 0x42);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, (s32) D_display_800CA2A8); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, (s32) sPlayerShadowing);
if (player->unk_068 > 30.0f) { if (player->unk_068 > 30.0f) {
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
} }
if ((gGroundType == GROUNDTYPE_WATER) && (player->unk_068 < 10.0f)) { if ((gGroundType == GROUNDTYPE_WATER) && (player->unk_068 < 10.0f)) {
player->unk_23C = 90; player->shadowing = 90;
} else { } else {
player->unk_23C = 180; player->shadowing = 180;
} }
switch (player->form) { switch (player->form) {
case FORM_ARWING: case FORM_ARWING:
@ -1166,14 +1166,14 @@ bool func_display_800563B4(s32 index, s32 arg1) {
if (fabsf(sp20.x) < (fabsf(sp20.z * 0.5f) + 500.0f)) { if (fabsf(sp20.x) < (fabsf(sp20.z * 0.5f) + 500.0f)) {
if (fabsf(sp20.y) < (fabsf(sp20.z * 0.5f) + 500.0f)) { if (fabsf(sp20.y) < (fabsf(sp20.z * 0.5f) + 500.0f)) {
if (arg1 == 0) { if (arg1 == 0) {
D_display_800CA224[index] = 1; sPlayersVisible[index] = 1;
} }
return true; return true;
} }
} }
} }
if (arg1 == 0) { if (arg1 == 0) {
D_display_800CA224[index] = 0; sPlayersVisible[index] = 0;
} }
return false; return false;
} }
@ -1303,12 +1303,7 @@ Gfx* D_display_800CA354[] = {
f32 D_display_800CA380 = 0.0f; f32 D_display_800CA380 = 0.0f;
f32 D_display_800CA384 = 0.0f; f32 D_display_800CA384 = 0.0f;
f32 D_display_800CA388 = -300.0f; f32 D_display_800CA388 = -300.0f;
f32 D_display_800CA38C[] = { f32 D_display_800CA38C[] = { 0.0f, -300.0f, -150.0f, -50.0f };
0.0f,
-300.0f,
-150.0f,
-50.0f,
};
void func_display_80056E2C(Player* player) { void func_display_80056E2C(Player* player) {
f32 sp34; f32 sp34;
@ -1648,7 +1643,7 @@ void Play_Draw(void) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, 1); Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, 1);
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) { for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
if (D_display_800CA224[i] != 0) { if (sPlayersVisible[i] != 0) {
func_display_80055B58(opponent); func_display_80055B58(opponent);
func_display_80056230(opponent); func_display_80056230(opponent);
} }
@ -1670,7 +1665,7 @@ void Play_Draw(void) {
} }
gReflectY = 1; gReflectY = 1;
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) { for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
if (D_display_800CA224[i] != 0) { if (sPlayersVisible[i] != 0) {
func_display_80056E2C(opponent); func_display_80056E2C(opponent);
func_display_80055B58(opponent); func_display_80055B58(opponent);
func_display_80056230(opponent); func_display_80056230(opponent);
@ -1691,7 +1686,7 @@ void Play_Draw(void) {
func_display_80053B18(); func_display_80053B18();
} }
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) { for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
if (D_display_800CA224[i] != 0) { if (sPlayersVisible[i] != 0) {
if (gShowCrosshairs[i]) { if (gShowCrosshairs[i]) {
func_display_80053F7C(opponent); func_display_80053F7C(opponent);
} }
@ -1712,6 +1707,6 @@ void Play_Draw(void) {
} }
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
func_display_80051B30(); func_display_80051B30();
D_display_800CA224[gPlayerNum] = 0; sPlayersVisible[gPlayerNum] = 0;
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }

View File

@ -638,13 +638,13 @@ void func_edisplay_8005BAB4(ObjectId objId, s32 index) {
case OBJ_ACTOR_TEAM_BOSS: case OBJ_ACTOR_TEAM_BOSS:
case OBJ_ACTOR_EVENT: case OBJ_ACTOR_EVENT:
switch (gActors[index].unk_0B4) { switch (gActors[index].unk_0B4) {
case 3: case EINFO_3:
Matrix_Scale(gGfxMatrix, 2.3f, 0.0f, 2.3f, 1); Matrix_Scale(gGfxMatrix, 2.3f, 0.0f, 2.3f, 1);
Matrix_RotateX(gGfxMatrix, M_PI / 2, 1); Matrix_RotateX(gGfxMatrix, M_PI / 2, 1);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_102A010); gSPDisplayList(gMasterDisp++, D_102A010);
break; break;
case 81: case EINFO_81:
RCP_SetupDL(&gMasterDisp, 0x30); RCP_SetupDL(&gMasterDisp, 0x30);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255); gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255);

View File

@ -2817,10 +2817,10 @@ bool func_effect_8007FD84(Effect* effect) {
s32 i; s32 i;
Actor* actor; Actor* actor;
for (i = 1; i < ARRAY_COUNT(D_enmy2_800CFF80); i++) { for (i = 1; i < ARRAY_COUNT(gTeamEventActorIndex); i++) {
actor = &gActors[D_enmy2_800CFF80[i]]; actor = &gActors[gTeamEventActorIndex[i]];
if (actor->obj.status == OBJ_ACTIVE) { if (actor->obj.status == OBJ_ACTIVE) {
if ((actor->iwork[12] > 0) && (actor->iwork[12] < 6) && if ((actor->iwork[12] >= TEAM_ID_FALCO) && (actor->iwork[12] <= TEAM_ID_BILL) &&
(fabsf(actor->obj.pos.z - effect->obj.pos.z) < 100.0f) && (fabsf(actor->obj.pos.z - effect->obj.pos.z) < 100.0f) &&
(fabsf(actor->obj.pos.x - effect->obj.pos.x) < 100.0f) && (fabsf(actor->obj.pos.x - effect->obj.pos.x) < 100.0f) &&
(fabsf(actor->obj.pos.y - effect->obj.pos.y) < 100.0f)) { (fabsf(actor->obj.pos.y - effect->obj.pos.y) < 100.0f)) {
@ -3394,7 +3394,7 @@ void func_effect_8008165C(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 scal
effect->obj.pos.z = zPos; effect->obj.pos.z = zPos;
AUDIO_PLAY_SFX(0x2940F026, effect->sfxSource, 4); AUDIO_PLAY_SFX(0x2940F026, effect->sfxSource, 4);
D_Timer_80177BD0[0] = 60; gControllerRumbleTimers[0] = 60;
break; break;
} }
} }

View File

@ -384,14 +384,14 @@ void func_enmy_80061F0C(Actor* actor, ObjectInit* objInit, s32 index) {
actor->unk_0F4.z = objInit->rot.z; actor->unk_0F4.z = objInit->rot.z;
actor->obj.id = OBJ_ACTOR_EVENT; actor->obj.id = OBJ_ACTOR_EVENT;
actor->timer_0C2 = 10; actor->timer_0C2 = 10;
actor->unk_0B4 = 4095; actor->unk_0B4 = EINFO_FFF;
actor->aiType = objInit->id - ACTOR_EVENT_ID; actor->aiType = objInit->id - ACTOR_EVENT_ID;
Object_SetInfo(&actor->info, actor->obj.id); Object_SetInfo(&actor->info, actor->obj.id);
actor->info.unk_10 = 3000.0f; actor->info.unk_10 = 3000.0f;
actor->fwork[25] = 20000.0f; actor->fwork[25] = 20000.0f;
actor->iwork[1] = D_ctx_80177E70; actor->iwork[1] = gPrevEventActorIndex;
actor->iwork[10] = gActors[D_ctx_80177E70].aiType; actor->iwork[10] = gActors[gPrevEventActorIndex].aiType;
actor->fwork[22] = D_play_80161A54; actor->fwork[22] = D_play_80161A54;
Matrix_RotateZ(gCalcMatrix, -D_ctx_80177E88.z * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -D_ctx_80177E88.z * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, -D_ctx_80177E88.x * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, -D_ctx_80177E88.x * M_DTOR, 1);
@ -401,7 +401,7 @@ void func_enmy_80061F0C(Actor* actor, ObjectInit* objInit, s32 index) {
sp24.z = actor->obj.pos.z - D_ctx_80177F10.z; sp24.z = actor->obj.pos.z - D_ctx_80177F10.z;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &actor->vwork[28]); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &actor->vwork[28]);
actor->iwork[9] = D_ctx_80177E78; actor->iwork[9] = D_ctx_80177E78;
D_ctx_80177E70 = index; gPrevEventActorIndex = index;
Actor_Update(actor); Actor_Update(actor);
} }
@ -666,10 +666,10 @@ bool func_enmy_80062DBC(Vec3f* pos, f32* hitboxData, Object* obj, f32 xRot, f32
for (i = 0; i < count; i++, hitboxData += 6) { for (i = 0; i < count; i++, hitboxData += 6) {
rotate = 0.0f; rotate = 0.0f;
hitRot.x = hitRot.y = hitRot.z = 0.0f; hitRot.x = hitRot.y = hitRot.z = 0.0f;
if (*hitboxData >= HITBOX_TYPE_3) { if (*hitboxData >= HITBOX_SHADOW) {
return false; return false;
} }
if (*hitboxData == HITBOX_TYPE_2) { if (*hitboxData == HITBOX_ROTATED) {
rotate = 1.0f; rotate = 1.0f;
hitRot.x = hitboxData[1]; hitRot.x = hitboxData[1];
hitRot.y = hitboxData[2]; hitRot.y = hitboxData[2];
@ -2493,7 +2493,7 @@ void Actor_Move(Actor* actor) {
f32 var_fv0 = 4000.0f; f32 var_fv0 = 4000.0f;
if ((actor->obj.id == OBJ_ACTOR_236) || (gCurrentLevel == LEVEL_MACBETH) || if ((actor->obj.id == OBJ_ACTOR_236) || (gCurrentLevel == LEVEL_MACBETH) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == 56))) { ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_56))) {
var_fv0 = 8000.0f; var_fv0 = 8000.0f;
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_8) { } else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_8) {
var_fv0 = 100000.0f; var_fv0 = 100000.0f;
@ -2515,7 +2515,7 @@ void Actor_Move(Actor* actor) {
D_ctx_80176550[actor->unk_046] = 0; D_ctx_80176550[actor->unk_046] = 0;
break; break;
case OBJ_ACTOR_EVENT: case OBJ_ACTOR_EVENT:
if ((actor->unk_0B4 >= 200) && (actor->unk_0B4 < 300)) { if ((actor->unk_0B4 >= EINFO_200) && (actor->unk_0B4 < EINFO_300)) {
D_ctx_80176550[actor->unk_046] = 0; D_ctx_80176550[actor->unk_046] = 0;
} else if ((actor->unk_0B4 == EINFO_38) && (actor->unk_046 != 2)) { } else if ((actor->unk_0B4 == EINFO_38) && (actor->unk_046 != 2)) {
gRingPassCount = -1; gRingPassCount = -1;

View File

@ -21,7 +21,7 @@
#include "assets/ast_ve1_boss.h" #include "assets/ast_ve1_boss.h"
#include "assets/ast_zoness.h" #include "assets/ast_zoness.h"
s32 D_enmy2_800CFF80[4] = { 0, 0, 0, 0 }; s32 gTeamEventActorIndex[4] = { 0, 0, 0, 0 };
s32 gCallVoiceParam = 0; s32 gCallVoiceParam = 0;
s32 gCallTimer; s32 gCallTimer;
@ -1186,7 +1186,7 @@ void ActorEvent_ProcessScript(ActorEvent* this) {
this->iwork[12] = actorScript[this->aiIndex + 1]; this->iwork[12] = actorScript[this->aiIndex + 1];
if (this->iwork[12] <= TEAM_ID_PEPPY) { if (this->iwork[12] <= TEAM_ID_PEPPY) {
D_enmy2_800CFF80[this->iwork[12]] = this->index; gTeamEventActorIndex[this->iwork[12]] = this->index;
} }
this->aiIndex += 2; this->aiIndex += 2;
@ -1373,7 +1373,7 @@ void ActorEvent_ProcessScript(ActorEvent* this) {
case EV_OPC(EVOP_SET_TARGET): case EV_OPC(EVOP_SET_TARGET):
this->state = EVSTATE_WAIT; this->state = EVSTATE_WAIT;
this->iwork[1] = D_enmy2_800CFF80[actorScript[this->aiIndex] & 0x1FF]; this->iwork[1] = gTeamEventActorIndex[actorScript[this->aiIndex] & 0x1FF];
this->fwork[17] = actorScript[this->aiIndex + 1]; this->fwork[17] = actorScript[this->aiIndex + 1];
this->timer_0BC = 0; this->timer_0BC = 0;
this->aiIndex += 2; this->aiIndex += 2;
@ -1646,7 +1646,8 @@ void func_enmy2_8006ECBC(PlayerShotId objId, PlayerShot* shot, s32 unk0E4, f32 x
} else { } else {
AUDIO_PLAY_SFX(0x29002002, shot->sfxSource, 4); AUDIO_PLAY_SFX(0x29002002, shot->sfxSource, 4);
} }
} else if ((unk0E4 < 60) && (gActors[unk0E4].obj.id == OBJ_ACTOR_EVENT) && (gActors[unk0E4].iwork[12] > 0)) { } else if ((unk0E4 < 60) && (gActors[unk0E4].obj.id == OBJ_ACTOR_EVENT) &&
(gActors[unk0E4].iwork[12] >= TEAM_ID_FALCO)) {
AUDIO_PLAY_SFX(0x2900000D, shot->sfxSource, 4); AUDIO_PLAY_SFX(0x2900000D, shot->sfxSource, 4);
} else if (unk0E4 + 100 == 200) { } else if (unk0E4 + 100 == 200) {
shot->playerNum = 100; shot->playerNum = 100;
@ -2281,8 +2282,8 @@ void ActorEvent_ProcessTriggers(ActorEvent* this) {
} }
} }
if (this->iwork[2] >= 100) { if (this->iwork[2] >= EVC_CLOSE_Z) {
if (fabsf(this->obj.pos.z - gPlayer[0].unk_138) <= ((this->iwork[2] - 100) * 100.0f)) { if (fabsf(this->obj.pos.z - gPlayer[0].unk_138) <= ((this->iwork[2] - EVC_CLOSE_Z) * 100.0f)) {
ActorEvent_80070CEC(this); ActorEvent_80070CEC(this);
} }
return; return;

View File

@ -141,28 +141,31 @@ bool func_game_800A1B6C(void) {
return false; return false;
} }
void func_game_800A1C14(Gfx** arg0) { void func_game_800A1C14(Gfx** dList) {
gSPDisplayList((*arg0)++, gRcpInitDL); gSPDisplayList((*dList)++, gRcpInitDL);
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8); gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
gDPSetDepthImage((*arg0)++, &gZBuffer); SCREEN_HEIGHT - SCREEN_MARGIN);
gDPSetColorImage((*arg0)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, &gZBuffer); gDPSetDepthImage((*dList)++, &gZBuffer);
gDPSetFillColor((*arg0)++, FILL_COLOR(GPACK_ZDZ(G_MAXFBZ, 0))); gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, &gZBuffer);
gDPFillRectangle((*arg0)++, 8, 8, SCREEN_WIDTH - 8 - 1, SCREEN_HEIGHT - 8 - 1); gDPSetFillColor((*dList)++, FILL_COLOR(GPACK_ZDZ(G_MAXFBZ, 0)));
gDPSetColorImage((*arg0)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffer); gDPFillRectangle((*dList)++, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN - 1,
SCREEN_HEIGHT - SCREEN_MARGIN - 1);
gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffer);
if (gBlurAlpha < 255) { if (gBlurAlpha < 255) {
gDPPipeSync((*arg0)++); gDPPipeSync((*dList)++);
gDPSetCycleType((*arg0)++, G_CYC_1CYCLE); gDPSetCycleType((*dList)++, G_CYC_1CYCLE);
gDPSetCombineMode((*arg0)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); gDPSetCombineMode((*dList)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
gDPSetRenderMode((*arg0)++, G_RM_XLU_SURF, G_RM_XLU_SURF2); gDPSetRenderMode((*dList)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetPrimColor((*arg0)++, 0x00, 0x00, RGBA16_RED(gBgColor) * 8, RGBA16_GRN(gBgColor) * 8, gDPSetPrimColor((*dList)++, 0x00, 0x00, RGBA16_RED(gBgColor) * 8, RGBA16_GRN(gBgColor) * 8,
RGBA16_BLU(gBgColor) * 8, gBlurAlpha); RGBA16_BLU(gBgColor) * 8, gBlurAlpha);
} else { } else {
gDPSetFillColor((*arg0)++, FILL_COLOR(gBgColor | 1)); gDPSetFillColor((*dList)++, FILL_COLOR(gBgColor | 1));
} }
gDPFillRectangle((*arg0)++, 8, 8, SCREEN_WIDTH - 8 - 1, SCREEN_HEIGHT - 8); gDPFillRectangle((*dList)++, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN - 1,
gDPPipeSync((*arg0)++); SCREEN_HEIGHT - SCREEN_MARGIN);
gDPSetColorDither((*arg0)++, G_CD_MAGICSQ); gDPPipeSync((*dList)++);
gDPSetColorDither((*dList)++, G_CD_MAGICSQ);
} }
void func_game_800A1E68(Gfx** arg0) { void func_game_800A1E68(Gfx** arg0) {
@ -194,7 +197,8 @@ void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2; gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH / 2,
SCREEN_HEIGHT / 2);
break; break;
case 1: case 1:
gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2; gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2;
@ -205,7 +209,8 @@ void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2; gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2); gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_MARGIN,
SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT / 2);
break; break;
case 2: case 2:
gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2; gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2;
@ -216,7 +221,8 @@ void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2; gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 8, SCREEN_HEIGHT / 2, SCREEN_WIDTH / 2, SCREEN_HEIGHT - 8); gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_HEIGHT / 2, SCREEN_WIDTH / 2,
SCREEN_HEIGHT - SCREEN_MARGIN);
break; break;
case 3: case 3:
gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2; gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2;
@ -227,8 +233,8 @@ void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2; gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, SCREEN_WIDTH - 8, gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
SCREEN_HEIGHT - 8); SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT - SCREEN_MARGIN);
break; break;
default: default:
func_game_800A1F44(); func_game_800A1F44();
@ -473,7 +479,8 @@ void Game_Update(void) {
func_game_800A1FB0(&gMasterDisp, gCamCount, 1); func_game_800A1FB0(&gMasterDisp, gCamCount, 1);
Game_Draw(1); Game_Draw(1);
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8); gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN);
} else if ((gCamCount == 4) && (gDrawMode != DRAW_NONE)) { } else if ((gCamCount == 4) && (gDrawMode != DRAW_NONE)) {
func_game_800A1FB0(&gMasterDisp, gCamCount, 3); func_game_800A1FB0(&gMasterDisp, gCamCount, 3);
Game_Draw(3); Game_Draw(3);
@ -482,23 +489,28 @@ void Game_Update(void) {
func_game_800A1FB0(&gMasterDisp, gCamCount, 1); func_game_800A1FB0(&gMasterDisp, gCamCount, 1);
Game_Draw(1); Game_Draw(1);
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8); gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN);
gDPSetColorDither(gMasterDisp++, G_CD_NOISE); gDPSetColorDither(gMasterDisp++, G_CD_NOISE);
gDPSetAlphaDither(gMasterDisp++, G_AD_NOISE); gDPSetAlphaDither(gMasterDisp++, G_AD_NOISE);
gDPSetCycleType(gMasterDisp++, G_CYC_1CYCLE); gDPSetCycleType(gMasterDisp++, G_CYC_1CYCLE);
gDPSetCombineMode(gMasterDisp++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); gDPSetCombineMode(gMasterDisp++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
gDPSetRenderMode(gMasterDisp++, G_RM_XLU_SURF, G_RM_XLU_SURF2); gDPSetRenderMode(gMasterDisp++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 0); gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 0);
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 3, 8, SCREEN_WIDTH / 2 + 2, SCREEN_HEIGHT - 8); gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 2 - 1, SCREEN_MARGIN, SCREEN_WIDTH / 2 + 2,
gDPFillRectangle(gMasterDisp++, 8, SCREEN_HEIGHT / 2 - 3, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2 + 2); SCREEN_HEIGHT - SCREEN_MARGIN);
gDPFillRectangle(gMasterDisp++, SCREEN_MARGIN, SCREEN_HEIGHT / 2 - 2 - 1, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT / 2 + 2);
if (gLevelType == LEVELTYPE_PLANET) { if (gLevelType == LEVELTYPE_PLANET) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 255); gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 255);
} else { } else {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 100, 100, 255, 255); gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 100, 100, 255, 255);
} }
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 2, 8, SCREEN_WIDTH / 2 + 1, SCREEN_HEIGHT - 8); gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 1 - 1, SCREEN_MARGIN, SCREEN_WIDTH / 2 + 1,
gDPFillRectangle(gMasterDisp++, 8, SCREEN_HEIGHT / 2 - 2, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2 + 1); SCREEN_HEIGHT - SCREEN_MARGIN);
gDPFillRectangle(gMasterDisp++, SCREEN_MARGIN, SCREEN_HEIGHT / 2 - 1 - 1, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT / 2 + 1);
func_hud_8008CB8C(); func_hud_8008CB8C();
} }

View File

@ -1028,7 +1028,8 @@ void func_hud_80087788(void) {
TextureRect_16bRGBA(&gMasterDisp, D_800D1D18[j + 1] + (44 * 20 * i), 44, 20, x[j][0], TextureRect_16bRGBA(&gMasterDisp, D_800D1D18[j + 1] + (44 * 20 * i), 44, 20, x[j][0],
y[j][0] + (f32) (20 * i), 1.0f, 1.0f); y[j][0] + (f32) (20 * i), 1.0f, 1.0f);
} }
TextureRect_16bRGBA(&gMasterDisp, D_800D1D18[j + 1] + (44 * 40), 44, 4, x[j][0], y[j][0] + 40.0f, 1.0f, 1.0f); TextureRect_16bRGBA(&gMasterDisp, D_800D1D18[j + 1] + (44 * 20 * 2), 44, 4, x[j][0], y[j][0] + 40.0f, 1.0f,
1.0f);
func_hud_80086110(x[j][2], y[j][2], shield); func_hud_80086110(x[j][2], y[j][2], shield);
} }
@ -1477,7 +1478,7 @@ void func_hud_80088970(void) {
D_80161838[0] = 0; D_80161838[0] = 0;
case 3: case 3:
Graphics_FillRectangle(&gMasterDisp, 0, 0, 319, 239, 0, 0, 0, 255); Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0, 0, 0, 255);
gFillScreenAlphaTarget = 0; gFillScreenAlphaTarget = 0;
@ -1526,7 +1527,7 @@ void func_hud_80088970(void) {
break; break;
case 4: case 4:
Graphics_FillRectangle(&gMasterDisp, 0, 0, 319, 239, 0, 0, 0, 255); Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0, 0, 0, 255);
if (D_80161838[0] < 140) { if (D_80161838[0] < 140) {
break; break;
} }
@ -1544,7 +1545,7 @@ void func_hud_80088970(void) {
} }
case 5: case 5:
Graphics_FillRectangle(&gMasterDisp, 0, 0, 319, 239, 0, 0, 0, 255); Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0, 0, 0, 255);
for (i = 0; i < 6; i++) { for (i = 0; i < 6; i++) {
if (gPrevPlanetTeamShields[i] == -1) { if (gPrevPlanetTeamShields[i] == -1) {
@ -2646,51 +2647,52 @@ void func_hud_8008BD00(u8* texturePtr, s32 xPos, s32 yPos, u8 arg3) {
} }
} }
void func_hud_8008C104(u16* texture, u16* arg1) { void func_hud_8008C104(u16* srcTexture, u16* dstTexture) {
u16 *temp, *dst; u16 *src, *dst;
u16 src[1024]; u16 buffer[1024];
f32 temp1; f32 rowPhase;
f32 angle; f32 angle;
s32 j; s32 j;
s32 i; s32 i;
s32 width = 32; s32 width = 32;
s32 height = 32; s32 height = 32;
s32 temp3; s32 halfHeight;
s32 temp2; s32 offset;
temp = SEGMENTED_TO_VIRTUAL(texture); src = SEGMENTED_TO_VIRTUAL(srcTexture);
dst = SEGMENTED_TO_VIRTUAL(arg1); dst = SEGMENTED_TO_VIRTUAL(dstTexture);
Texture_Scroll(texture, width, height, 1); Texture_Scroll(srcTexture, width, height, 1);
temp3 = height / 2; halfHeight = height / 2;
temp1 = 0.0f; rowPhase = 0.0f;
i = temp3 - 1; i = halfHeight - 1;
while (1) { while (1) {
if ((temp1 += 90.0f / temp3) > 90.0f) { if ((rowPhase += 90.0f / halfHeight) > 90.0f) {
break; break;
} }
angle = (height / 2) * COS_DEG(temp1); angle = (height / 2) * COS_DEG(rowPhase);
temp2 = angle; offset = angle;
if (temp2 >= height) { if (offset >= height) {
temp2 = 0; offset = 0;
} }
for (j = 0; j < width; j++) { for (j = 0; j < width; j++) {
src[(i * width) + j] = temp[(temp2 * width) + j]; buffer[(i * width) + j] = src[(offset * width) + j];
} }
for (j = 0; j < width; j++) { for (j = 0; j < width; j++) {
src[(((temp3 - i) + (temp3 - 1)) * width) + j] = temp[(((temp3 - temp2) + (temp3 - 1)) * width) + j]; buffer[(((halfHeight - i) + (halfHeight - 1)) * width) + j] =
src[(((halfHeight - offset) + (halfHeight - 1)) * width) + j];
} }
i--; i--;
} }
Texture_Mottle(dst, src, 2); Texture_Mottle(dst, buffer, 2);
} }
void func_hud_8008C390(f32 xPos, f32 yPos, f32 scale, s32 number) { void func_hud_8008C390(f32 xPos, f32 yPos, f32 scale, s32 number) {
@ -2722,10 +2724,10 @@ void func_hud_8008C5C8(f32 arg0, f32 arg1, f32 arg2, s32 arg3) {
s32 i; s32 i;
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
TextureRect_16bRGBA(&gMasterDisp, D_800D1EE8[arg3] + (880 * i), 44, 20, arg0, (20 * i * arg2) + arg1, arg2, TextureRect_16bRGBA(&gMasterDisp, D_800D1EE8[arg3] + (44 * 20 * i), 44, 20, arg0, (20 * i * arg2) + arg1, arg2,
arg2); arg2);
} }
TextureRect_16bRGBA(&gMasterDisp, D_800D1EE8[arg3] + 1760, 44, 4, arg0, (40.0f * arg2) + arg1, arg2, arg2); TextureRect_16bRGBA(&gMasterDisp, D_800D1EE8[arg3] + 44 * 20 * 2, 44, 4, arg0, (40.0f * arg2) + arg1, arg2, arg2);
} }
void func_hud_8008C6F4(s32 idx, s32 arg1) { void func_hud_8008C6F4(s32 idx, s32 arg1) {
@ -2874,10 +2876,10 @@ void func_hud_8008CFB8(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
s32 i; s32 i;
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
TextureRect_8bIA(&gMasterDisp, D_versus_3000BC0 + 2 * ((640 * i) / 2), 80, 8, arg0, (8 * i * arg3) + arg1, arg2, TextureRect_8bIA(&gMasterDisp, D_versus_3000BC0 + 2 * ((80 * 8 * i) / 2), 80, 8, arg0, (8 * i * arg3) + arg1,
arg3); arg2, arg3);
} }
TextureRect_8bIA(&gMasterDisp, D_versus_3000BC0 + 2 * ((640 * i) / 2), 80, 2, arg0, (8 * i * arg3) + arg1, arg2, TextureRect_8bIA(&gMasterDisp, D_versus_3000BC0 + 2 * ((80 * 8 * i) / 2), 80, 2, arg0, (8 * i * arg3) + arg1, arg2,
arg3); arg3);
} }
@ -6067,7 +6069,7 @@ void func_hud_80096A74(Player* player) {
func_play_800B2574(player); func_play_800B2574(player);
D_80137E84[0] = 0; gControllerRumbleFlags[0] = 0;
gControllerHold[player->num].button = button; gControllerHold[player->num].button = button;
gCsCamEyeX = player->pos.x; gCsCamEyeX = player->pos.x;

View File

@ -497,7 +497,7 @@ void func_play_800A594C(void) {
} }
if (D_ctx_8017782C == 0) { if (D_ctx_8017782C == 0) {
if (gCurrentLevel == LEVEL_SOLAR) { if (gCurrentLevel == LEVEL_SOLAR) {
func_8001D1C8(0xFF, 1); func_8001D1C8(255, 1);
AUDIO_PLAY_SFX(0x4100C023, gDefaultSfxSource, 4); AUDIO_PLAY_SFX(0x4100C023, gDefaultSfxSource, 4);
Audio_KillSfxBySourceAndId(gPlayer[0].sfxSource, 0x3140807E); Audio_KillSfxBySourceAndId(gPlayer[0].sfxSource, 0x3140807E);
} }
@ -655,7 +655,7 @@ void func_play_800A6148(void) {
PlayerShot_Initialize(&gPlayerShots[i]); PlayerShot_Initialize(&gPlayerShots[i]);
} }
D_ctx_801782B8 = D_ctx_801782BC = D_ctx_801782C0 = D_ctx_801782D0 = gBossActive = D_ctx_8017828C = D_ctx_8017812C = D_ctx_801782B8 = D_ctx_801782BC = D_ctx_801782C0 = D_ctx_801782D0 = gBossActive = D_ctx_8017828C = D_ctx_8017812C =
D_ctx_80177E70 = D_ctx_80177E78 = gRingPassCount = 0; gPrevEventActorIndex = D_ctx_80177E78 = gRingPassCount = 0;
D_ctx_80177F10.x = D_ctx_80177F10.y = D_ctx_80177F10.z = D_ctx_80177E88.x = D_ctx_80177E88.y = D_ctx_80177E88.z = D_ctx_80177F10.x = D_ctx_80177F10.y = D_ctx_80177F10.z = D_ctx_80177E88.x = D_ctx_80177E88.y = D_ctx_80177E88.z =
0.0f; 0.0f;
for (i = 0; i < ARRAY_COUNT(gTeamArrowsViewPos); i++) { for (i = 0; i < ARRAY_COUNT(gTeamArrowsViewPos); i++) {
@ -1085,7 +1085,7 @@ s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f3
hitboxData++; hitboxData++;
for (i = 0; i < count; i++, hitboxData += 6) { for (i = 0; i < count; i++, hitboxData += 6) {
spA0 = 0; spA0 = 0;
if (*hitboxData == HITBOX_TYPE_2) { if (*hitboxData == HITBOX_ROTATED) {
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1);
Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1); Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1);
@ -1095,7 +1095,7 @@ s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f3
hitboxData += 4; hitboxData += 4;
spA0 = 1; spA0 = 1;
} else { } else {
if (*hitboxData >= HITBOX_TYPE_3) { if (*hitboxData >= HITBOX_SHADOW) {
hitboxData++; hitboxData++;
} }
Matrix_RotateZ(gCalcMatrix, -zRot * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -zRot * M_DTOR, 0);
@ -1122,15 +1122,15 @@ s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f3
} }
if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) {
*index = i + 1; *index = i + 1;
if (hitboxData[-1] == HITBOX_TYPE_3) { if (hitboxData[-1] == HITBOX_SHADOW) {
return -1; return -1;
} }
if (hitboxData[-1] == HITBOX_TYPE_4) { if (hitboxData[-1] == HITBOX_WHOOSH) {
return -2; return -2;
} }
return 3; return 3;
} }
if (hitboxData[-1] < HITBOX_TYPE_3) { if (hitboxData[-1] < HITBOX_SHADOW) {
if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && (spA0 == 0)) { if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && (spA0 == 0)) {
var_fv0 = player->hit4.x; var_fv0 = player->hit4.x;
var_fv1 = player->hit4.y; var_fv1 = player->hit4.y;
@ -1658,12 +1658,12 @@ void func_play_800A8BA4(Player* player) {
obj58->obj.pos.y, obj58->obj.pos.z, obj58->obj.rot.x, obj58->obj.pos.y, obj58->obj.pos.z, obj58->obj.rot.x,
obj58->obj.rot.y, obj58->obj.rot.z, 0.0f, 0.0f, 0.0f); obj58->obj.rot.y, obj58->obj.rot.z, 0.0f, 0.0f, 0.0f);
if ((temp_v0 != 0) && (temp_v0 < 0)) { if ((temp_v0 != 0) && (temp_v0 < 0)) {
if (player->unk_22C == 0) { if (player->whooshTimer == 0) {
func_effect_8007A6F0(&obj58->obj.pos, 0x19000001); func_effect_8007A6F0(&obj58->obj.pos, 0x19000001);
} }
player->unk_22C += 2; player->whooshTimer += 2;
if (player->unk_22C >= 4) { if (player->whooshTimer >= 4) {
player->unk_22C = 4; player->whooshTimer = 4;
} }
} }
} }
@ -1673,12 +1673,12 @@ void func_play_800A8BA4(Player* player) {
obj58->obj.rot.y, obj58->obj.rot.z, 0.0f, 0.0f, 0.0f); obj58->obj.rot.y, obj58->obj.rot.z, 0.0f, 0.0f, 0.0f);
if (temp_v0 != 0) { if (temp_v0 != 0) {
if (temp_v0 < 0) { if (temp_v0 < 0) {
if (player->unk_22C == 0) { if (player->whooshTimer == 0) {
func_effect_8007A6F0(&obj58->obj.pos, 0x19000001); func_effect_8007A6F0(&obj58->obj.pos, 0x19000001);
} }
player->unk_22C += 2; player->whooshTimer += 2;
if (player->unk_22C >= 4) { if (player->whooshTimer >= 4) {
player->unk_22C = 4; player->whooshTimer = 4;
} }
} else if ((player->form == FORM_LANDMASTER) || (player->form == FORM_ON_FOOT)) { } else if ((player->form == FORM_LANDMASTER) || (player->form == FORM_ON_FOOT)) {
func_play_800A729C(player, temp_v0, obj58->obj.pos.x, obj58->obj.pos.z); func_play_800A729C(player, temp_v0, obj58->obj.pos.x, obj58->obj.pos.z);
@ -1764,22 +1764,22 @@ void func_play_800A8BA4(Player* player) {
D_ctx_80178570 = 20; D_ctx_80178570 = 20;
D_ctx_80178574 = 20; D_ctx_80178574 = 20;
D_ctx_80178578 = 20; D_ctx_80178578 = 20;
player->unk_23C = 80; player->shadowing = 80;
} }
if (player->unk_22C == 0) { if (player->whooshTimer == 0) {
AUDIO_PLAY_SFX(0x19000001, obj80->sfxSource, 0); AUDIO_PLAY_SFX(0x19000001, obj80->sfxSource, 0);
} }
player->unk_22C += 2; player->whooshTimer += 2;
if (player->unk_22C >= 4) { if (player->whooshTimer >= 4) {
player->unk_22C = 4; player->whooshTimer = 4;
} }
} else if (obj80->obj.id == OBJ_80_54) { } else if (obj80->obj.id == OBJ_80_54) {
if (player->unk_22C == 0) { if (player->whooshTimer == 0) {
AUDIO_PLAY_SFX(0x19832019, obj80->sfxSource, 0); AUDIO_PLAY_SFX(0x19832019, obj80->sfxSource, 0);
} }
player->unk_22C += 2; player->whooshTimer += 2;
if (player->unk_22C >= 4) { if (player->whooshTimer >= 4) {
player->unk_22C = 4; player->whooshTimer = 4;
} }
} else { } else {
Player_ApplyDamage(player, temp_v0, obj80->info.damage); Player_ApplyDamage(player, temp_v0, obj80->info.damage);
@ -1870,12 +1870,12 @@ void func_play_800A8BA4(Player* player) {
0.0f, 0.0f, 0.0f); 0.0f, 0.0f, 0.0f);
if (temp_v0 != 0) { if (temp_v0 != 0) {
if (temp_v0 < 0) { if (temp_v0 < 0) {
if (player->unk_22C == 0) { if (player->whooshTimer == 0) {
AUDIO_PLAY_SFX(0x19000001, boss->sfxSource, 0); AUDIO_PLAY_SFX(0x19000001, boss->sfxSource, 0);
} }
player->unk_22C += 2; player->whooshTimer += 2;
if (player->unk_22C >= 4) { if (player->whooshTimer >= 4) {
player->unk_22C = 4; player->whooshTimer = 4;
} }
} else { } else {
if ((boss->obj.id == OBJ_BOSS_320) && (boss->timer_056 != 0) && (sp98 == 5)) { if ((boss->obj.id == OBJ_BOSS_320) && (boss->timer_056 != 0) && (sp98 == 5)) {
@ -1905,7 +1905,7 @@ void func_play_800A8BA4(Player* player) {
Player_ApplyDamage(player, temp_v0, actor->info.damage); Player_ApplyDamage(player, temp_v0, actor->info.damage);
} }
} else if (actor->obj.id == OBJ_ACTOR_EVENT) { } else if (actor->obj.id == OBJ_ACTOR_EVENT) {
if (actor->unk_0B4 == 42) { if (actor->unk_0B4 == EINFO_42) {
temp_v0 = temp_v0 =
func_play_800A8304(player, ACTOR_EVENT_ID, actor->obj.pos.x, actor->obj.pos.y, func_play_800A8304(player, ACTOR_EVENT_ID, actor->obj.pos.x, actor->obj.pos.y,
actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z); actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z);
@ -1938,12 +1938,12 @@ void func_play_800A8BA4(Player* player) {
AUDIO_PLAY_SFX(0x49008025, gDefaultSfxSource, 4); AUDIO_PLAY_SFX(0x49008025, gDefaultSfxSource, 4);
} }
} else if (temp_v0 < 0) { } else if (temp_v0 < 0) {
if (player->unk_22C == 0) { if (player->whooshTimer == 0) {
AUDIO_PLAY_SFX(0x19000001, actor->sfxSource, 0); AUDIO_PLAY_SFX(0x19000001, actor->sfxSource, 0);
} }
player->unk_22C += 2; player->whooshTimer += 2;
if (player->unk_22C >= 4) { if (player->whooshTimer >= 4) {
player->unk_22C = 4; player->whooshTimer = 4;
} }
} else { } else {
Player_ApplyDamage(player, temp_v0, actor->info.damage); Player_ApplyDamage(player, temp_v0, actor->info.damage);
@ -1971,12 +1971,12 @@ void func_play_800A8BA4(Player* player) {
0.0f, 0.0f, 0.0f); 0.0f, 0.0f, 0.0f);
if (temp_v0 != 0) { if (temp_v0 != 0) {
if (temp_v0 < 0) { if (temp_v0 < 0) {
if (player->unk_22C == 0) { if (player->whooshTimer == 0) {
AUDIO_PLAY_SFX(0x19000001, actor->sfxSource, 0); AUDIO_PLAY_SFX(0x19000001, actor->sfxSource, 0);
} }
player->unk_22C += 2; player->whooshTimer += 2;
if (player->unk_22C >= 4) { if (player->whooshTimer >= 4) {
player->unk_22C = 4; player->whooshTimer = 4;
} }
} else { } else {
actor->unk_0D0 = 3; actor->unk_0D0 = 3;
@ -2297,11 +2297,11 @@ void func_play_800AA800(Player* player) {
} }
hitboxData++; hitboxData++;
for (i = 0; i < count; i++, hitboxData += 6) { for (i = 0; i < count; i++, hitboxData += 6) {
if (*hitboxData >= HITBOX_TYPE_3) { if (*hitboxData >= HITBOX_SHADOW) {
break; break;
} }
if (*hitboxData == HITBOX_TYPE_2) { if (*hitboxData == HITBOX_ROTATED) {
sp100 = hitboxData[1]; sp100 = hitboxData[1];
spFC = hitboxData[2]; spFC = hitboxData[2];
spF8 = hitboxData[3]; spF8 = hitboxData[3];
@ -2412,7 +2412,7 @@ void func_play_800AB334(void) {
0.0f; 0.0f;
break; break;
case LEVEL_AQUAS: case LEVEL_AQUAS:
D_80137E78 = 3; gVIsPerFrame = 3;
D_bg_8015F970 = 1600.0f; D_bg_8015F970 = 1600.0f;
D_AQ_801C4188 = 128.0f; D_AQ_801C4188 = 128.0f;
Aquas_801A9824(); Aquas_801A9824();
@ -2534,7 +2534,7 @@ void Play_Init(void) {
D_play_80161A54 = 40.0f; D_play_80161A54 = 40.0f;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
gControllerRumble[i] = 0; gControllerRumbleEnabled[i] = 0;
} }
if (gExpertMode) { if (gExpertMode) {
@ -2543,7 +2543,7 @@ void Play_Init(void) {
gEnemyShotSpeed = 100; gEnemyShotSpeed = 100;
} }
gPauseEnabled = 0; gPauseEnabled = 0;
D_80137E78 = 2; gVIsPerFrame = 2;
D_ctx_80177C70 = 0; D_ctx_80177C70 = 0;
D_display_800CA234 = NULL; D_display_800CA234 = NULL;
D_display_Timer_800CA238 = 0; D_display_Timer_800CA238 = 0;
@ -2635,7 +2635,7 @@ void Play_Init(void) {
for (i = 0; i < gCamCount; i++) { for (i = 0; i < gCamCount; i++) {
gPlayer[i].state_1C8 = PLAYERSTATE_1C8_1; gPlayer[i].state_1C8 = PLAYERSTATE_1C8_1;
gPlayerFillScreenAlphas[i] = D_ctx_801783C0[i] = 0; gPlayerFillScreenAlphas[i] = D_ctx_801783C0[i] = 0;
D_Timer_80177BD0[i] = 0; gControllerRumbleTimers[i] = 0;
D_ctx_80177C30[i] = 0; D_ctx_80177C30[i] = 0;
} }
if (gLevelMode == LEVELMODE_ALL_RANGE) { if (gLevelMode == LEVELMODE_ALL_RANGE) {
@ -3013,7 +3013,7 @@ bool func_play_800AD1F4(Player* player) {
func_play_800AC650(player, &gPlayerShots[14 - player->num], PLAYERSHOT_8, 70.0f); func_play_800AC650(player, &gPlayerShots[14 - player->num], PLAYERSHOT_8, 70.0f);
} }
func_enmy_80060F30(player->sfxSource, 0x09007029, player->num); func_enmy_80060F30(player->sfxSource, 0x09007029, player->num);
D_Timer_80177BD0[player->num] = 5; gControllerRumbleTimers[player->num] = 5;
return true; return true;
} }
break; break;
@ -3031,7 +3031,7 @@ bool func_play_800AD1F4(Player* player) {
} }
func_enmy_80060F30(player->sfxSource, 0x09007029, player->num); func_enmy_80060F30(player->sfxSource, 0x09007029, player->num);
gChargeTimers[player->num] = 0; gChargeTimers[player->num] = 0;
D_Timer_80177BD0[player->num] = 5; gControllerRumbleTimers[player->num] = 5;
return true; return true;
} }
} }
@ -4996,7 +4996,7 @@ void func_play_800B39E0(Player* player) {
} }
if (player->unk_1F4 > 0) { if (player->unk_1F4 > 0) {
if (player->unk_1F4 > 3) { if (player->unk_1F4 > 3) {
*D_ctx_80177984 = 1; *gControllerRumble = 1;
} }
player->unk_1F4--; player->unk_1F4--;
if (player->form == FORM_ARWING) { if (player->form == FORM_ARWING) {
@ -5287,23 +5287,23 @@ void Player_Update1(Player* player) {
if (gVersusMode) { if (gVersusMode) {
gInputHold = &gControllerHold[player->num]; gInputHold = &gControllerHold[player->num];
gInputPress = &gControllerPress[player->num]; gInputPress = &gControllerPress[player->num];
D_ctx_80177984 = &D_80137E84[player->num]; gControllerRumble = &gControllerRumbleFlags[player->num];
} else { } else {
gInputHold = &gControllerHold[gMainController]; gInputHold = &gControllerHold[gMainController];
gInputPress = &gControllerPress[gMainController]; gInputPress = &gControllerPress[gMainController];
D_ctx_80177984 = &D_80137E84[gMainController]; gControllerRumble = &gControllerRumbleFlags[gMainController];
} }
D_ctx_80177990[player->num] += (s32) D_ctx_801779A8[player->num]; D_ctx_80177990[player->num] += (s32) D_ctx_801779A8[player->num];
Math_SmoothStepToF(&D_ctx_801779A8[player->num], 0.0f, 1.0f, 1.5f, 0.0f); Math_SmoothStepToF(&D_ctx_801779A8[player->num], 0.0f, 1.0f, 1.5f, 0.0f);
if (D_ctx_80177990[player->num] >= 100) { if (D_ctx_80177990[player->num] >= 100) {
D_ctx_80177990[player->num] -= 100; D_ctx_80177990[player->num] -= 100;
*D_ctx_80177984 = 1; *gControllerRumble = 1;
} }
if (D_Timer_80177BD0[player->num] != 0) { if (gControllerRumbleTimers[player->num] != 0) {
D_Timer_80177BD0[player->num]--; gControllerRumbleTimers[player->num]--;
if (((gGameFrameCount % 2) == 0)) { if (((gGameFrameCount % 2) == 0)) {
*D_ctx_80177984 = 1; *gControllerRumble = 1;
} }
} }
if (player->state_1C8 >= PLAYERSTATE_1C8_2) { if (player->state_1C8 >= PLAYERSTATE_1C8_2) {
@ -5325,9 +5325,9 @@ void Player_Update1(Player* player) {
Math_SmoothStepToVec3fArray(sp58, player->jointTable, 1, sp1C4, 0.1f, 1.3f, 0.0f); Math_SmoothStepToVec3fArray(sp58, player->jointTable, 1, sp1C4, 0.1f, 1.3f, 0.0f);
} }
player->sfx.bank = player->sfx.roll = 0; player->sfx.bank = player->sfx.roll = 0;
sp1C4 = player->unk_22C; sp1C4 = player->whooshTimer;
if (sp1C4 != 0) { if (sp1C4 != 0) {
player->unk_22C--; player->whooshTimer--;
} }
switch (player->state_1C8) { switch (player->state_1C8) {
case PLAYERSTATE_1C8_0: case PLAYERSTATE_1C8_0:
@ -5396,7 +5396,7 @@ void Player_Update1(Player* player) {
} }
} else { } else {
gInputPress->stick_x = gInputPress->stick_y = 0; gInputPress->stick_x = gInputPress->stick_y = 0;
D_ctx_80177844 = 0; gVsItemSpawnTimer = 0;
gPauseEnabled = 0; gPauseEnabled = 0;
} }
break; break;
@ -6122,11 +6122,11 @@ void func_play_800B73E0(Player* player) {
} }
void Play_UpdateLevel(void) { void Play_UpdateLevel(void) {
s32 var_v0_2; s32 cycleMask;
s32 sp40; s32 sp40;
f32 sp3C; f32 sp3C;
u8 var_a0; u8 shields;
u8 sp3A; u8 heightParam;
switch (gCurrentLevel) { switch (gCurrentLevel) {
case LEVEL_TRAINING: case LEVEL_TRAINING:
@ -6136,18 +6136,18 @@ void Play_UpdateLevel(void) {
break; break;
case LEVEL_VERSUS: case LEVEL_VERSUS:
func_versus_800C26C8(); func_versus_800C26C8();
D_ctx_80177844++; gVsItemSpawnTimer++;
if ((D_ctx_80177844 == 200) && (gLaserStrength[0] == LASERS_SINGLE) && if ((gVsItemSpawnTimer == 200) && (gLaserStrength[0] == LASERS_SINGLE) &&
(gLaserStrength[1] == LASERS_SINGLE) && (gLaserStrength[2] == LASERS_SINGLE) && (gLaserStrength[1] == LASERS_SINGLE) && (gLaserStrength[2] == LASERS_SINGLE) &&
(gLaserStrength[3] == LASERS_SINGLE)) { (gLaserStrength[3] == LASERS_SINGLE)) {
func_play_800B852C(OBJ_ITEM_LASERS, &gItems[0]); Play_SpawnVsItem(OBJ_ITEM_LASERS, &gItems[0]);
} }
if ((D_ctx_80177844 == 400) && (gBombCount[0] == 0) && (gBombCount[1] == 0) && (gBombCount[2] == 0) && if ((gVsItemSpawnTimer == 400) && (gBombCount[0] == 0) && (gBombCount[1] == 0) && (gBombCount[2] == 0) &&
(gBombCount[3] == 0)) { (gBombCount[3] == 0)) {
func_play_800B852C(OBJ_ITEM_BOMB, &gItems[1]); Play_SpawnVsItem(OBJ_ITEM_BOMB, &gItems[1]);
} }
if (D_ctx_80177844 == 500) { if (gVsItemSpawnTimer == 500) {
D_ctx_80177844 = 0; gVsItemSpawnTimer = 0;
} }
break; break;
case LEVEL_VENOM_2: case LEVEL_VENOM_2:
@ -6219,31 +6219,31 @@ void Play_UpdateLevel(void) {
Texture_Mottle(D_SO_601E1E8, D_SO_6020F60, 3); Texture_Mottle(D_SO_601E1E8, D_SO_6020F60, 3);
if (gPlayer[0].pos.y > 600.0f) { if (gPlayer[0].pos.y > 600.0f) {
var_v0_2 = 8 - 1; cycleMask = 8 - 1;
sp3A = 5; heightParam = 5;
} else if (gPlayer[0].pos.y > 500.0f) { } else if (gPlayer[0].pos.y > 500.0f) {
var_v0_2 = 8 - 1; cycleMask = 8 - 1;
sp3A = 4; heightParam = 4;
} else if (gPlayer[0].pos.y > 400.0f) { } else if (gPlayer[0].pos.y > 400.0f) {
var_v0_2 = 4 - 1; cycleMask = 4 - 1;
sp3A = 3; heightParam = 3;
} else if (gPlayer[0].pos.y > 300.0f) { } else if (gPlayer[0].pos.y > 300.0f) {
var_v0_2 = 4 - 1; cycleMask = 4 - 1;
sp3A = 2; heightParam = 2;
} else if (gPlayer[0].pos.y > 200.0f) { } else if (gPlayer[0].pos.y > 200.0f) {
var_v0_2 = 2 - 1; cycleMask = 2 - 1;
sp3A = 1; heightParam = 1;
} else if (gPlayer[0].pos.y > 100.0f) { } else if (gPlayer[0].pos.y > 100.0f) {
var_v0_2 = 1 - 1; cycleMask = 1 - 1;
sp3A = 0; heightParam = 0;
} else { } else {
var_v0_2 = 1 - 1; cycleMask = 1 - 1;
#ifdef AVOID_UB #ifdef AVOID_UB
sp3A = 0; heightParam = 0;
#endif #endif
} }
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && !(gGameFrameCount & var_v0_2)) { if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && ((gGameFrameCount & cycleMask) == 0)) {
gPlayer[0].shields--; gPlayer[0].shields--;
if (gPlayer[0].shields <= 0) { if (gPlayer[0].shields <= 0) {
gPlayer[0].shields = 0; gPlayer[0].shields = 0;
@ -6256,8 +6256,8 @@ void Play_UpdateLevel(void) {
} }
} }
} }
var_a0 = MIN(gPlayer[0].shields, 255); shields = MIN(gPlayer[0].shields, 255);
func_8001D1C8(var_a0, sp3A); func_8001D1C8(shields, heightParam);
if (((gGameFrameCount % 8) == 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7)) { if (((gGameFrameCount % 8) == 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7)) {
Solar_8019E8B8(RAND_FLOAT_CENTERED(6000.0f), -80.0f, Solar_8019E8B8(RAND_FLOAT_CENTERED(6000.0f), -80.0f,
gPlayer[0].unk_138 + (RAND_FLOAT(2000.0f) + -6000.0f), gPlayer[0].unk_138 + (RAND_FLOAT(2000.0f) + -6000.0f),
@ -6339,21 +6339,21 @@ void Play_Update(void) {
Play_UpdateLevel(); Play_UpdateLevel();
} }
u8 D_800D317C = 255; u8 sVsItemSpawnIndex = -1;
void func_play_800B852C(ObjectId objId, Item* item) { void Play_SpawnVsItem(ObjectId objId, Item* item) {
u8 sp1F = (u8) RAND_FLOAT(5.0f); u8 spawnIndex = (u8) RAND_FLOAT(5.0f);
if (D_800D317C == sp1F) { if (sVsItemSpawnIndex == spawnIndex) {
D_ctx_80177844 -= 1; gVsItemSpawnTimer -= 1;
} else { } else {
D_800D317C = sp1F; sVsItemSpawnIndex = spawnIndex;
if (item->obj.status == OBJ_FREE) { if (item->obj.status == OBJ_FREE) {
Item_Initialize(item); Item_Initialize(item);
item->obj.status = OBJ_INIT; item->obj.status = OBJ_INIT;
item->obj.pos.x = gObjects58[sp1F].obj.pos.x; item->obj.pos.x = gObjects58[spawnIndex].obj.pos.x;
item->obj.pos.y = gObjects58[sp1F].obj.pos.y; item->obj.pos.y = gObjects58[spawnIndex].obj.pos.y;
item->obj.pos.z = gObjects58[sp1F].obj.pos.z; item->obj.pos.z = gObjects58[spawnIndex].obj.pos.z;
item->obj.id = objId; item->obj.id = objId;
Object_SetInfo(&item->info, item->obj.id); Object_SetInfo(&item->info, item->obj.id);
} }

View File

@ -426,20 +426,20 @@ void func_radio_800BAAE8(void) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
if (mirror) { if (mirror) {
for (i = 0, j = 0; i < 2; i++, j += 880) { for (i = 0, j = 0; i < 2; i++, j += 44 * 20) {
TextureRect_16bRGBA_MirX(&gMasterDisp, &sp44[j], 44, 20, D_radio_8017873C, TextureRect_16bRGBA_MirX(&gMasterDisp, &sp44[j], 44, 20, D_radio_8017873C,
D_radio_80178740 + 20.0f + sp38 + (i * 20.0f * D_ctx_80177D38), 1.0f, D_radio_80178740 + 20.0f + sp38 + (i * 20.0f * D_ctx_80177D38), 1.0f,
D_ctx_80177D38); D_ctx_80177D38);
} }
TextureRect_16bRGBA_MirX(&gMasterDisp, &sp44[2 * 880], 44, 4, D_radio_8017873C, TextureRect_16bRGBA_MirX(&gMasterDisp, &sp44[44 * 20 * 2], 44, 4, D_radio_8017873C,
D_radio_80178740 + 20.0f + sp38 + (40.0f * D_ctx_80177D38), 1.0f, D_ctx_80177D38); D_radio_80178740 + 20.0f + sp38 + (40.0f * D_ctx_80177D38), 1.0f, D_ctx_80177D38);
} else { } else {
for (i = 0, j = 0; i < 2; i++, j += 880) { for (i = 0, j = 0; i < 2; i++, j += 44 * 20) {
TextureRect_16bRGBA(&gMasterDisp, &sp44[j], 44, 20, D_radio_8017873C, TextureRect_16bRGBA(&gMasterDisp, &sp44[j], 44, 20, D_radio_8017873C,
D_radio_80178740 + 20.0f + sp38 + (i * 20.0f * D_ctx_80177D38), 1.0f, D_radio_80178740 + 20.0f + sp38 + (i * 20.0f * D_ctx_80177D38), 1.0f,
D_ctx_80177D38); D_ctx_80177D38);
} }
TextureRect_16bRGBA(&gMasterDisp, &sp44[2 * 880], 44, 4, D_radio_8017873C, TextureRect_16bRGBA(&gMasterDisp, &sp44[44 * 20 * 2], 44, 4, D_radio_8017873C,
D_radio_80178740 + 20.0f + sp38 + (40.0f * D_ctx_80177D38), 1.0f, D_ctx_80177D38); D_radio_80178740 + 20.0f + sp38 + (40.0f * D_ctx_80177D38), 1.0f, D_ctx_80177D38);
} }
} }
@ -550,7 +550,7 @@ void func_radio_800BB5D0(void) {
if (D_Timer_801782AC == 0) { if (D_Timer_801782AC == 0) {
gRadioState++; gRadioState++;
temp_v0 = Message_GetWidth(D_ctx_80178308); temp_v0 = Message_GetWidth(D_ctx_80178308);
if (D_80137E78 == 3) { if (gVIsPerFrame == 3) {
D_Timer_801782AC = temp_v0 + 16; D_Timer_801782AC = temp_v0 + 16;
} else { } else {
D_Timer_801782AC = (2 * temp_v0) + 16; D_Timer_801782AC = (2 * temp_v0) + 16;
@ -595,7 +595,7 @@ void func_radio_800BB5D0(void) {
D_ctx_801782A4 = (s32) D_ctx_80177D68 + 1; D_ctx_801782A4 = (s32) D_ctx_80177D68 + 1;
} }
if (!D_80137E78) {} if (!gVIsPerFrame) {}
if (1) { if (1) {
fakeTemp = 0; fakeTemp = 0;

View File

@ -1,7 +1,7 @@
#include "global.h" #include "global.h"
void Graphics_NMIWipe(void) { void Graphics_NMIWipe(void) {
static s16 D_800D4A80 = 0; static s16 sWipeBarLength = 0;
s32 i; s32 i;
gViewport->vp.vscale[0] = SCREEN_WIDTH * 2; gViewport->vp.vscale[0] = SCREEN_WIDTH * 2;
@ -14,24 +14,32 @@ void Graphics_NMIWipe(void) {
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gSPViewport(gMasterDisp++, gViewport); gSPViewport(gMasterDisp++, gViewport);
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8); gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN);
Graphics_FillRectangle(&gMasterDisp, 8, 8, MIN(304, D_800D4A80) + 8, 64, 0, 0, 0, 255); Graphics_FillRectangle(&gMasterDisp, SCREEN_MARGIN, SCREEN_MARGIN,
Graphics_FillRectangle(&gMasterDisp, SCREEN_WIDTH - 8 - MIN(304, D_800D4A80), 64, SCREEN_WIDTH - 8, 120, 0, 0, 0, MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength) + SCREEN_MARGIN,
255); SCREEN_HEIGHT / 4 + SCREEN_MARGIN / 2, 0, 0, 0, 255);
Graphics_FillRectangle(&gMasterDisp, 8, 120, MIN(304, D_800D4A80) + 8, 176, 0, 0, 0, 255); Graphics_FillRectangle(&gMasterDisp,
Graphics_FillRectangle(&gMasterDisp, SCREEN_WIDTH - 8 - MIN(304, D_800D4A80), 176, SCREEN_WIDTH - 8, 232, 0, 0, 0, SCREEN_WIDTH - SCREEN_MARGIN - MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength),
255); SCREEN_HEIGHT / 4 + SCREEN_MARGIN / 2, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2, 0, 0, 0, 255);
if (D_800D4A80 == 0) { Graphics_FillRectangle(&gMasterDisp, SCREEN_MARGIN, SCREEN_HEIGHT / 2,
MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength) + SCREEN_MARGIN,
3 * SCREEN_HEIGHT / 4 - SCREEN_MARGIN / 2, 0, 0, 0, 255);
Graphics_FillRectangle(&gMasterDisp,
SCREEN_WIDTH - SCREEN_MARGIN - MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength),
3 * SCREEN_HEIGHT / 4 - SCREEN_MARGIN / 2, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN, 0, 0, 0, 255);
if (sWipeBarLength == 0) {
AudioThread_PreNMIReset(); AudioThread_PreNMIReset();
} }
D_800D4A80 += 45; sWipeBarLength += SCREEN_WIDTH / 7;
if (D_800D4A80 >= 485) { if (sWipeBarLength >= SCREEN_WIDTH * 85 / 8 / 7) { // Why 85 / 8 == 3400 / 320 == 10.625? Has to do with NMI timing?
osViBlack(1); osViBlack(true);
gStopTasks = 1; gStopTasks = true;
} }
for (i = 0; i < MAXCONTROLLERS; i++) { for (i = 0; i < MAXCONTROLLERS; i++) {
gControllerRumble[i] = 0; gControllerRumbleEnabled[i] = 0;
D_80137E84[i] = 0; gControllerRumbleFlags[i] = 0;
} }
} }

View File

@ -26,100 +26,100 @@ s32 Graphics_Printf(const char* fmt, ...) {
} }
void Texture_Scroll(u16* texture, s32 width, s32 height, u8 mode) { void Texture_Scroll(u16* texture, s32 width, s32 height, u8 mode) {
u16* temp_t0 = SEGMENTED_TO_VIRTUAL(texture); u16* pixel = SEGMENTED_TO_VIRTUAL(texture);
u16 temp_a3; u16 tempPxl;
s32 var_a0; s32 u;
s32 var_t4; s32 v;
switch (mode) { switch (mode) {
case 0: case 0:
for (var_a0 = 0; var_a0 < width; var_a0++) { for (u = 0; u < width; u++) {
temp_a3 = temp_t0[var_a0]; tempPxl = pixel[u];
for (var_t4 = 1; var_t4 < height; var_t4++) { for (v = 1; v < height; v++) {
temp_t0[(var_t4 - 1) * width + var_a0] = temp_t0[(var_t4) *width + var_a0]; pixel[(v - 1) * width + u] = pixel[(v) *width + u];
} }
temp_t0[(height - 1) * width + var_a0] = temp_a3; pixel[(height - 1) * width + u] = tempPxl;
} }
break; break;
case 1: case 1:
for (var_a0 = 0; var_a0 < width; var_a0++) { for (u = 0; u < width; u++) {
temp_a3 = temp_t0[(height - 1) * width + var_a0]; tempPxl = pixel[(height - 1) * width + u];
for (var_t4 = height - 2; var_t4 >= 0; var_t4--) { for (v = height - 2; v >= 0; v--) {
temp_t0[(var_t4 + 1) * width + var_a0] = temp_t0[(var_t4) *width + var_a0]; pixel[(v + 1) * width + u] = pixel[(v) *width + u];
} }
temp_t0[var_a0] = temp_a3; pixel[u] = tempPxl;
} }
break; break;
case 2: case 2:
for (var_t4 = 0; var_t4 < height; var_t4++) { for (v = 0; v < height; v++) {
temp_a3 = temp_t0[var_t4 * width + width - 1]; tempPxl = pixel[v * width + width - 1];
for (var_a0 = width - 2; var_a0 >= 0; var_a0--) { for (u = width - 2; u >= 0; u--) {
temp_t0[var_t4 * width + var_a0 + 1] = temp_t0[var_t4 * width + var_a0]; pixel[v * width + u + 1] = pixel[v * width + u];
} }
temp_t0[var_t4 * width] = temp_a3; pixel[v * width] = tempPxl;
} }
break; break;
case 3: case 3:
for (var_t4 = 0; var_t4 < height; var_t4++) { for (v = 0; v < height; v++) {
temp_a3 = temp_t0[var_t4 * width]; tempPxl = pixel[v * width];
for (var_a0 = 1; var_a0 < width; var_a0++) { for (u = 1; u < width; u++) {
temp_t0[var_t4 * width + var_a0 - 1] = temp_t0[var_t4 * width + var_a0]; pixel[v * width + u - 1] = pixel[v * width + u];
} }
temp_t0[var_t4 * width + width - 1] = temp_a3; pixel[v * width + width - 1] = tempPxl;
} }
break; break;
} }
} }
void Texture_Mottle(u16* dst, u16* src, u8 mode) { void Texture_Mottle(u16* dst, u16* src, u8 mode) {
s32 var_v1; s32 u;
s32 var_s3; s32 v;
u8* var_s0_2; u8* dst8;
u8* var_s4_2; u8* src8;
s32 temp_ft3; s32 offset;
dst = SEGMENTED_TO_VIRTUAL(dst); dst = SEGMENTED_TO_VIRTUAL(dst);
src = SEGMENTED_TO_VIRTUAL(src); src = SEGMENTED_TO_VIRTUAL(src);
switch (mode) { switch (mode) {
case 2: case 2:
for (var_s3 = 0; var_s3 < 32 * 32; var_s3 += 32) { for (v = 0; v < 32 * 32; v += 32) {
temp_ft3 = 3.0f * __sinf((s32) (((var_s3 / 32) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32)); offset = 3.0f * __sinf((s32) (((v / 32) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
for (var_v1 = 0; var_v1 < 32; var_v1++) { for (u = 0; u < 32; u++) {
dst[var_s3 + (temp_ft3 + var_v1) % 32U] = src[var_s3 + var_v1]; dst[v + (offset + u) % 32U] = src[v + u];
} }
} }
break; break;
case 3: case 3:
for (var_s3 = 0; var_s3 < 22 * 64; var_s3 += 64) { for (v = 0; v < 22 * 64; v += 64) { // should be 32 * 64?
temp_ft3 = __sinf((s32) (((var_s3 / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 8)); offset = __sinf((s32) (((v / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 8));
for (var_v1 = 0; var_v1 < 64; var_v1++) { for (u = 0; u < 64; u++) {
dst[var_s3 + (temp_ft3 + var_v1) % 64U] = src[var_s3 + var_v1]; dst[v + (offset + u) % 64U] = src[v + u];
} }
} }
break; break;
case 1: case 1:
for (var_s3 = 0; var_s3 < 16 * 16; var_s3 += 16) { for (v = 0; v < 16 * 16; v += 16) {
temp_ft3 = 2.0f * __sinf((s32) (((var_s3 / 16) + (gGameFrameCount / 2)) % 16U) * (2 * M_PI / 16)); offset = 2.0f * __sinf((s32) (((v / 16) + (gGameFrameCount / 2)) % 16U) * (2 * M_PI / 16));
for (var_v1 = 0; var_v1 < 16; var_v1++) { for (u = 0; u < 16; u++) {
dst[var_s3 + (temp_ft3 + var_v1) % 16U] = src[var_s3 + var_v1]; dst[v + (offset + u) % 16U] = src[v + u];
} }
} }
break; break;
case 0: case 0:
for (var_s3 = 0; var_s3 < 32 * 32; var_s3 += 32) { for (v = 0; v < 32 * 32; v += 32) {
temp_ft3 = 2.0f * __sinf((s32) (((var_s3 / 32) + (gGameFrameCount / 2)) % 32U) * (2 * M_PI / 32)); offset = 2.0f * __sinf((s32) (((v / 32) + (gGameFrameCount / 2)) % 32U) * (2 * M_PI / 32));
for (var_v1 = 0; var_v1 < 32; var_v1++) { for (u = 0; u < 32; u++) {
dst[var_s3 + (temp_ft3 + var_v1) % 32U] = src[var_s3 + var_v1]; dst[v + (offset + u) % 32U] = src[v + u];
} }
} }
break; break;
case 5: case 5:
var_s0_2 = (u8*) dst; dst8 = (u8*) dst;
var_s4_2 = (u8*) src; src8 = (u8*) src;
for (var_s3 = 0; var_s3 < 64 * 64; var_s3 += 64) { for (v = 0; v < 64 * 64; v += 64) {
temp_ft3 = 4.0f * __sinf((s32) (((var_s3 / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32)); offset = 4.0f * __sinf((s32) (((v / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
for (var_v1 = 0; var_v1 < 64; var_v1++) { for (u = 0; u < 64; u++) {
var_s0_2[var_s3 + (temp_ft3 + var_v1) % 64U] = var_s4_2[var_s3 + var_v1]; dst8[v + (offset + u) % 64U] = src8[v + u];
} }
} }
} }

View File

@ -996,7 +996,7 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3
if (spB4 != 0) { if (spB4 != 0) {
for (i = 0; i < spB4; i++, hitboxData += 6) { for (i = 0; i < spB4; i++, hitboxData += 6) {
spA0 = 0; spA0 = 0;
if (hitboxData[0] == HITBOX_TYPE_2) { if (hitboxData[0] == HITBOX_ROTATED) {
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1);
Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1); Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1);
@ -1006,7 +1006,7 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3
hitboxData += 4; hitboxData += 4;
spA0 = 1.0f; spA0 = 1.0f;
} else { } else {
if (hitboxData[0] == HITBOX_TYPE_3) { if (hitboxData[0] == HITBOX_SHADOW) {
hitboxData++; hitboxData++;
} }
Matrix_RotateZ(gCalcMatrix, -zRot * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -zRot * M_DTOR, 0);
@ -1067,13 +1067,13 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3
} }
if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) {
*index = i + 1; *index = i + 1;
if (hitboxData[-1] == HITBOX_TYPE_3) { if (hitboxData[-1] == HITBOX_SHADOW) {
return -1; return -1;
} else { } else {
return 3; return 3;
} }
} }
if (hitboxData[-1] == HITBOX_TYPE_3) { if (hitboxData[-1] == HITBOX_SHADOW) {
return 0; return 0;
} }
if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && (spA0 == 0)) { if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && (spA0 == 0)) {
@ -1358,13 +1358,13 @@ void func_tank_800481F4(Player* player) {
D_ctx_80178570 = 20; D_ctx_80178570 = 20;
D_ctx_80178574 = 20; D_ctx_80178574 = 20;
D_ctx_80178578 = 20; D_ctx_80178578 = 20;
player->unk_23C = 80; player->shadowing = 80;
if (player->unk_22C == 0) { if (player->whooshTimer == 0) {
AUDIO_PLAY_SFX(0x19000001, player->sfxSource, 0); AUDIO_PLAY_SFX(0x19000001, player->sfxSource, 0);
} }
player->unk_22C += 2; player->whooshTimer += 2;
if (player->unk_22C >= 4) { if (player->whooshTimer >= 4) {
player->unk_22C = 4; player->whooshTimer = 4;
} }
} else if (temp_v0 == -2) { } else if (temp_v0 == -2) {
AUDIO_PLAY_SFX(0x19000001, player->sfxSource, 0); AUDIO_PLAY_SFX(0x19000001, player->sfxSource, 0);

View File

@ -88,7 +88,7 @@ void func_versus_800BC8D8(f32 xPos, f32 yPos, f32 scale) {
s32 i; s32 i;
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
TextureRect_8bCI(&gMasterDisp, D_versus_300A470 + (i * 152 * 8), D_versus_300B218, 152, 8, xPos, TextureRect_8bCI(&gMasterDisp, D_versus_300A470 + (152 * 8 * i), D_versus_300B218, 152, 8, xPos,
yPos + (8 * i * scale), scale, scale); yPos + (8 * i * scale), scale, scale);
} }

View File

@ -44,16 +44,17 @@ void Ending_8018CE20(u32 arg0) {
RCP_SetupDL(&gMasterDisp, 0x53); RCP_SetupDL(&gMasterDisp, 0x53);
gDPSetTextureFilter(gMasterDisp++, G_TF_POINT); gDPSetTextureFilter(gMasterDisp++, G_TF_POINT);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, alpha); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, alpha);
TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00, 192, 5, 64.0f, 105.0f, 1.0f, 1.0f); TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 192 * 5 * 0, 192, 5, 64.0f, 105.0f,
TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 960 * 1, 192, 5, 64.0f, 110.0f,
1.0f, 1.0f); 1.0f, 1.0f);
TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 960 * 2, 192, 5, 64.0f, 115.0f, TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 192 * 5 * 1, 192, 5, 64.0f, 110.0f,
1.0f, 1.0f); 1.0f, 1.0f);
TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 960 * 3, 192, 5, 64.0f, 120.0f, TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 192 * 5 * 2, 192, 5, 64.0f, 115.0f,
1.0f, 1.0f); 1.0f, 1.0f);
TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 960 * 4, 192, 5, 64.0f, 125.0f, TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 192 * 5 * 3, 192, 5, 64.0f, 120.0f,
1.0f, 1.0f); 1.0f, 1.0f);
TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 960 * 5, 192, 5, 64.0f, 130.0f, TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 192 * 5 * 4, 192, 5, 64.0f, 125.0f,
1.0f, 1.0f);
TextureRect_8bIA(&gMasterDisp, D_ending_80192E74[i].unk_00 + 192 * 5 * 5, 192, 5, 64.0f, 130.0f,
1.0f, 1.0f); 1.0f, 1.0f);
} else { } else {
xPos = (320 - Graphics_GetSmallTextWidth(D_ending_80192E74[i].unk_00)) / 2; xPos = (320 - Graphics_GetSmallTextWidth(D_ending_80192E74[i].unk_00)) / 2;
@ -71,7 +72,7 @@ void Ending_8018CE20(u32 arg0) {
void Ending_8018D250(u32 arg0, AssetInfo* asset) { void Ending_8018D250(u32 arg0, AssetInfo* asset) {
gOverlayStage = asset->unk_08; gOverlayStage = asset->unk_08;
D_80137E78 = asset->unk_70; gVIsPerFrame = asset->unk_70;
D_ctx_80178410 = asset->unk_14; D_ctx_80178410 = asset->unk_14;
} }
@ -113,8 +114,8 @@ void Ending_8018D398(u32 arg0, AssetInfo* asset) {
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = gFillScreenAlpha = gFillScreenAlphaTarget = gFillScreenRed = gFillScreenGreen = gFillScreenBlue = gFillScreenAlpha = gFillScreenAlphaTarget =
gFillScreenAlphaStep = 0; gFillScreenAlphaStep = 0;
Graphics_FillRectangle(&gMasterDisp, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8, asset->primRed, asset->primGreen, Graphics_FillRectangle(&gMasterDisp, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
asset->primBlue, alpha); SCREEN_HEIGHT - SCREEN_MARGIN, asset->primRed, asset->primGreen, asset->primBlue, alpha);
} }
void Ending_8018D4BC(s32 arg0, AssetInfo* asset) { void Ending_8018D4BC(s32 arg0, AssetInfo* asset) {

View File

@ -1368,7 +1368,7 @@ void Corneria_8018B58C(Actor* actor) {
if ((fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 500.0f) && if ((fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 500.0f) &&
(fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 200.0f) && (fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 200.0f) &&
(fabsf(actor->obj.pos.y - gPlayer[0].pos.y) < 200.0f)) { (fabsf(actor->obj.pos.y - gPlayer[0].pos.y) < 200.0f)) {
*D_Timer_80177BD0 = 25; *gControllerRumbleTimers = 25;
} }
BonusText_Display(actor->obj.pos.x, actor->obj.pos.y + 250.0f, actor->obj.pos.z, 5); BonusText_Display(actor->obj.pos.x, actor->obj.pos.y + 250.0f, actor->obj.pos.z, 5);
gHitCount += 6; gHitCount += 6;
@ -1606,7 +1606,7 @@ void Corneria_8018C19C(Boss* boss) {
D_ctx_80178570 = 20; D_ctx_80178570 = 20;
D_ctx_80178574 = 20; D_ctx_80178574 = 20;
D_ctx_80178578 = 20; D_ctx_80178578 = 20;
gPlayer[0].unk_23C = 100; gPlayer[0].shadowing = 100;
} }
Matrix_MultVec3f(gCalcMatrix, &D_i1_801998CC, &sp84[0]); Matrix_MultVec3f(gCalcMatrix, &D_i1_801998CC, &sp84[0]);
Matrix_MultVec3f(gCalcMatrix, &D_i1_801998D8, &sp84[1]); Matrix_MultVec3f(gCalcMatrix, &D_i1_801998D8, &sp84[1]);

View File

@ -626,7 +626,7 @@ void Venom1_80192CD4(Actor* actor) {
} }
if (actor->iwork[1] > 0) { if (actor->iwork[1] > 0) {
D_80137E84[0] = 1; gControllerRumbleFlags[0] = 1;
actor->iwork[1] -= 1; actor->iwork[1] -= 1;
} }
@ -1134,7 +1134,7 @@ void Venom1_80194398(Boss* boss) {
boss->swork[10]--; boss->swork[10]--;
} }
if (boss->swork[28] > 0) { if (boss->swork[28] > 0) {
D_80137E84[0] = 1; gControllerRumbleFlags[0] = 1;
boss->swork[28]--; boss->swork[28]--;
} }
if (boss->swork[16] > 0) { if (boss->swork[16] > 0) {

View File

@ -1444,7 +1444,7 @@ void Meteo_8018978C(Boss* boss) {
if (boss->timer_050 == 20) { if (boss->timer_050 == 20) {
func_effect_8007A568(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, 80.0f); func_effect_8007A568(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, 80.0f);
AUDIO_PLAY_SFX(0x2940F026U, boss->sfxSource, 4U); AUDIO_PLAY_SFX(0x2940F026U, boss->sfxSource, 4U);
D_Timer_80177BD0[0] = 60; gControllerRumbleTimers[0] = 60;
for (i = 0; i < ARRAY_COUNT(gActors); i++) { for (i = 0; i < ARRAY_COUNT(gActors); i++) {
if (gActors[i].obj.id == OBJ_ACTOR_TEAM_BOSS) { if (gActors[i].obj.id == OBJ_ACTOR_TEAM_BOSS) {
Object_Kill(&gActors[i].obj, gActors[i].sfxSource); Object_Kill(&gActors[i].obj, gActors[i].sfxSource);

View File

@ -1247,7 +1247,7 @@ void Aquas_801AC274(Player* player) {
for (i = 0, actor = gActors; i < 60; i++, actor++) { for (i = 0, actor = gActors; i < 60; i++, actor++) {
if ((actor->obj.status == OBJ_ACTIVE) && (actor->obj.id != OBJ_ACTOR_189)) { if ((actor->obj.status == OBJ_ACTIVE) && (actor->obj.id != OBJ_ACTOR_189)) {
var_v1 = 1; var_v1 = 1;
if (actor->info.hitbox[1] == HITBOX_TYPE_2) { if (actor->info.hitbox[1] == HITBOX_ROTATED) {
var_v1 = 5; var_v1 = 5;
} }

View File

@ -1128,7 +1128,7 @@ void Solar_801A10F4(Player* player) {
player->camAt.z = player->unk_138; player->camAt.z = player->unk_138;
D_ctx_80177950 = 1.0f; D_ctx_80177950 = 1.0f;
func_8001D1C8(0xFF, 3); func_8001D1C8(255, 3);
AUDIO_PLAY_SFX(0x4100C023, gDefaultSfxSource, 4); AUDIO_PLAY_SFX(0x4100C023, gDefaultSfxSource, 4);
D_ctx_80178488 = 1; D_ctx_80178488 = 1;
gFillScreenAlphaTarget = 0; gFillScreenAlphaTarget = 0;
@ -1479,8 +1479,8 @@ void Solar_801A2C98(Boss* bossSO) {
Math_SmoothStepToAngle(&bossSO->obj.rot.y, 181.0f, 1.0f, 3.0f, 1.0f); Math_SmoothStepToAngle(&bossSO->obj.rot.y, 181.0f, 1.0f, 3.0f, 1.0f);
if (bossSO->unk_04C == 50) { if (bossSO->unk_04C == 50) {
Solar_801A0CEC(&gActors[10], bossSO->obj.pos.x, bossSO->obj.pos.z + 1000.0f, 20.0f, 1); Solar_801A0CEC(&gActors[10], bossSO->obj.pos.x, bossSO->obj.pos.z + 1000.0f, 20.0f, 1);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 70; gControllerRumbleTimers[gMainController] = 70;
} }
if (bossSO->unk_04C == 60) { if (bossSO->unk_04C == 60) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
@ -1570,8 +1570,8 @@ void Solar_801A3128(Boss* bossSO) {
} else { } else {
if (bossSO->swork[SO_SWK_11] == 80) { if (bossSO->swork[SO_SWK_11] == 80) {
Solar_801A0CEC(&gActors[9], bossSO->obj.pos.x, bossSO->obj.pos.z + 850.0f, 20.0f, 1); Solar_801A0CEC(&gActors[9], bossSO->obj.pos.x, bossSO->obj.pos.z + 850.0f, 20.0f, 1);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 70; gControllerRumbleTimers[gMainController] = 70;
D_i3_801C2740[2]++; D_i3_801C2740[2]++;
if ((D_i3_801C2740[2] % 2) != 0) { if ((D_i3_801C2740[2] % 2) != 0) {
if (D_i3_801C2740[2] & 2) { if (D_i3_801C2740[2] & 2) {
@ -1672,8 +1672,8 @@ void Solar_801A3510(Boss* bossSO) {
} }
if (bossSO->unk_04C == 60) { if (bossSO->unk_04C == 60) {
Solar_801A0D90(bossSO->obj.pos.x, bossSO->obj.pos.z + 1600.0f, 80.0f, 2); Solar_801A0D90(bossSO->obj.pos.x, bossSO->obj.pos.z + 1600.0f, 80.0f, 2);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 100; gControllerRumbleTimers[gMainController] = 100;
} }
break; break;
case 5: case 5:
@ -1809,8 +1809,8 @@ void Solar_801A3C4C(Boss* bossSO) {
gFillScreenAlphaTarget = 0; gFillScreenAlphaTarget = 0;
gFillScreenAlphaStep = 255; gFillScreenAlphaStep = 255;
gCsFrameCount = 0; gCsFrameCount = 0;
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 10; gControllerRumbleTimers[gMainController] = 10;
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 1); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 1);
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 1); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 1);
Audio_KillSfxById(0x4100C023); Audio_KillSfxById(0x4100C023);
@ -1966,8 +1966,8 @@ void Solar_801A48B8(Boss* bossSO) {
s32 i; s32 i;
AUDIO_PLAY_SFX(0x29434075, bossSO->sfxSource, 4); AUDIO_PLAY_SFX(0x29434075, bossSO->sfxSource, 4);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 10; gControllerRumbleTimers[gMainController] = 10;
if (bossSO->swork[SO_SWK_0] != 6) { if (bossSO->swork[SO_SWK_0] != 6) {
bossSO->swork[SO_SWK_5] = bossSO->swork[SO_SWK_0]; bossSO->swork[SO_SWK_5] = bossSO->swork[SO_SWK_0];
bossSO->swork[SO_SWK_6] = bossSO->swork[SO_SWK_1]; bossSO->swork[SO_SWK_6] = bossSO->swork[SO_SWK_1];
@ -2086,8 +2086,8 @@ void Solar_801A4EF8(Boss* bossSO) {
} }
if (bossSO->swork[SO_SWK_11] == 30) { if (bossSO->swork[SO_SWK_11] == 30) {
Solar_801A0CEC(&gActors[10], bossSO->obj.pos.x, bossSO->obj.pos.z + 1000.0f, 20.0f, 1); Solar_801A0CEC(&gActors[10], bossSO->obj.pos.x, bossSO->obj.pos.z + 1000.0f, 20.0f, 1);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 70; gControllerRumbleTimers[gMainController] = 70;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
Solar_8019F038(bossSO->obj.pos.x + 100.0f, 100.0f, bossSO->obj.pos.z + 1100.0f, Solar_8019F038(bossSO->obj.pos.x + 100.0f, 100.0f, bossSO->obj.pos.z + 1100.0f,
D_i3_801BF8F0[i].x + RAND_FLOAT_CENTERED(2.0f), D_i3_801BF8F0[i].x + RAND_FLOAT_CENTERED(2.0f),
@ -2116,8 +2116,8 @@ void Solar_801A4EF8(Boss* bossSO) {
case 2: case 2:
bossSO->unk_04C = 0; bossSO->unk_04C = 0;
if (bossSO->swork[SO_SWK_11] == 300) { if (bossSO->swork[SO_SWK_11] == 300) {
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 170; gControllerRumbleTimers[gMainController] = 170;
gCameraShake = 130; gCameraShake = 130;
} }
if (bossSO->swork[SO_SWK_11] == 200) { if (bossSO->swork[SO_SWK_11] == 200) {
@ -2140,8 +2140,8 @@ void Solar_801A4EF8(Boss* bossSO) {
} }
if (bossSO->swork[SO_SWK_11] == 50) { if (bossSO->swork[SO_SWK_11] == 50) {
Solar_801A0CEC(&gActors[10], bossSO->obj.pos.x, bossSO->obj.pos.z + 1000.0f, 80.0f, 2); Solar_801A0CEC(&gActors[10], bossSO->obj.pos.x, bossSO->obj.pos.z + 1000.0f, 80.0f, 2);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 100; gControllerRumbleTimers[gMainController] = 100;
gCameraShake = 10; gCameraShake = 10;
} }
if (bossSO->obj.pos.y < -1500.0f) { if (bossSO->obj.pos.y < -1500.0f) {

View File

@ -14,12 +14,12 @@
// { { -397.8f, 130.0f }, { 1284.3999f, 262.59998f }, { 0.0f, 80.6f } }, // { { -397.8f, 130.0f }, { 1284.3999f, 262.59998f }, { 0.0f, 80.6f } },
// { { -223.59999f, 197.59999f }, { 904.8f, 145.59999f }, { 0.0f, 140.4f } }, // { { -223.59999f, 197.59999f }, { 904.8f, 145.59999f }, { 0.0f, 140.4f } },
// { // {
// HITBOX_TYPE_2, // HITBOX_ROTATED,
// { 40.0f, 0.0f, 0.0f }, // { 40.0f, 0.0f, 0.0f },
// { { -561.6f, 119.6f }, { 600.6f, 319.8f }, { 338.0f, 104.0f } }, // { { -561.6f, 119.6f }, { 600.6f, 319.8f }, { 338.0f, 104.0f } },
// }, // },
// { // {
// HITBOX_TYPE_2, // HITBOX_ROTATED,
// { 40.0f, 0.0f, 0.0f }, // { 40.0f, 0.0f, 0.0f },
// { { -561.6f, 119.6f }, { 600.6f, 319.8f }, { -338.0f, 104.0f } }, // { { -561.6f, 119.6f }, { 600.6f, 319.8f }, { -338.0f, 104.0f } },
// }, // },

View File

@ -2450,8 +2450,8 @@ void Macbeth_801A2DD8(Object_80* obj80) {
break; break;
case 1: case 1:
func_effect_8007A6F0(&obj80->obj.pos, 0x2903B009); func_effect_8007A6F0(&obj80->obj.pos, 0x2903B009);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 15; gControllerRumbleTimers[gMainController] = 15;
for (i = 0; i < 6; i++) { for (i = 0; i < 6; i++) {
func_effect_8007D2C8(obj80->obj.pos.x + D_i5_801BE6A0[i].x, obj80->obj.pos.y + D_i5_801BE6A0[i].y, func_effect_8007D2C8(obj80->obj.pos.x + D_i5_801BE6A0[i].x, obj80->obj.pos.y + D_i5_801BE6A0[i].y,
obj80->obj.pos.z + D_i5_801BE6A0[i].z, 18.0f); obj80->obj.pos.z + D_i5_801BE6A0[i].z, 18.0f);
@ -4501,8 +4501,8 @@ void Macbeth_801A7E7C(Actor* actor) {
RAND_FLOAT(7.0f) + 7.0f, 2.0f, RAND_FLOAT(360.0f), RAND_FLOAT(360.0f), RAND_FLOAT(7.0f) + 7.0f, 2.0f, RAND_FLOAT(360.0f), RAND_FLOAT(360.0f),
RAND_FLOAT(360.0f), RAND_FLOAT_CENTERED(10.0f), RAND_FLOAT_CENTERED(10.0f), RAND_FLOAT(360.0f), RAND_FLOAT_CENTERED(10.0f), RAND_FLOAT_CENTERED(10.0f),
RAND_FLOAT_CENTERED(10.0f), (s32) (RAND_FLOAT(50.0f) + 70.0f), 11, 1.0f); RAND_FLOAT_CENTERED(10.0f), (s32) (RAND_FLOAT(50.0f) + 70.0f), 11, 1.0f);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 15; gControllerRumbleTimers[gMainController] = 15;
AUDIO_PLAY_SFX(0x2940C00A, actor->sfxSource, 4); AUDIO_PLAY_SFX(0x2940C00A, actor->sfxSource, 4);
actor->state = 21; actor->state = 21;
} }
@ -5205,8 +5205,8 @@ void Macbeth_801AD6F0(Actor* actor) {
func_beam_800365E4(actor->obj.pos.x, 3.0f, actor->obj.pos.z, actor->obj.pos.x, actor->obj.pos.z, func_beam_800365E4(actor->obj.pos.x, 3.0f, actor->obj.pos.z, actor->obj.pos.x, actor->obj.pos.z,
0.0f, 0.0f, 90.0f, 5.0f, 0, 0); 0.0f, 0.0f, 90.0f, 5.0f, 0, 0);
} }
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 10; gControllerRumbleTimers[gMainController] = 10;
} }
break; break;
case 1: case 1:
@ -5326,8 +5326,8 @@ void Macbeth_801ADD68(Actor* actor) {
if ((func_enmy_8006351C(actor->index, &actor->obj.pos, &sp3C, 1) != 0) || if ((func_enmy_8006351C(actor->index, &actor->obj.pos, &sp3C, 1) != 0) ||
(actor->obj.pos.y < (gGroundLevel + 200.0f))) { (actor->obj.pos.y < (gGroundLevel + 200.0f))) {
AUDIO_PLAY_SFX(0x19032064, actor->sfxSource, 4); AUDIO_PLAY_SFX(0x19032064, actor->sfxSource, 4);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 5; gControllerRumbleTimers[gMainController] = 5;
actor->vel.x = 0.0f; actor->vel.x = 0.0f;
actor->vel.y = 0.0f; actor->vel.y = 0.0f;
actor->vel.z = 0.0f; actor->vel.z = 0.0f;
@ -6040,8 +6040,8 @@ void Macbeth_801AF8F4(Player* player) {
player->timer_210 = 10000; player->timer_210 = 10000;
D_ctx_80177A48[0] = 1.0f; D_ctx_80177A48[0] = 1.0f;
D_i5_801BA1DC = 0.0f; D_i5_801BA1DC = 0.0f;
D_80137E84[0] = 1; gControllerRumbleFlags[0] = 1;
D_Timer_80177BD0[0] = 10; gControllerRumbleTimers[0] = 10;
gCameraShake = 10; gCameraShake = 10;
D_ctx_80177A48[4] = -70.0f; D_ctx_80177A48[4] = -70.0f;
D_ctx_80177A48[5] = 280.0f; D_ctx_80177A48[5] = 280.0f;
@ -6176,8 +6176,8 @@ void Macbeth_801AF8F4(Player* player) {
} }
} }
if (gCsFrameCount == 880) { if (gCsFrameCount == 880) {
D_80137E84[0] = 1; gControllerRumbleFlags[0] = 1;
D_Timer_80177BD0[0] = 10; gControllerRumbleTimers[0] = 10;
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255; gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255;
gFillScreenAlphaTarget = 255; gFillScreenAlphaTarget = 255;
gFillScreenAlphaStep = 20; gFillScreenAlphaStep = 20;
@ -6731,7 +6731,7 @@ void Macbeth_801B38E0(void) {
} }
D_ctx_801782B8 = D_ctx_801782BC = D_ctx_801782C0 = D_ctx_801782D0 = gBossActive = D_ctx_8017828C = D_ctx_8017812C = D_ctx_801782B8 = D_ctx_801782BC = D_ctx_801782C0 = D_ctx_801782D0 = gBossActive = D_ctx_8017828C = D_ctx_8017812C =
D_ctx_80177E70 = D_ctx_80177E78 = gRingPassCount = 0; gPrevEventActorIndex = D_ctx_80177E78 = gRingPassCount = 0;
D_ctx_80177F10.x = D_ctx_80177F10.y = D_ctx_80177F10.z = D_ctx_80177E88.x = D_ctx_80177E88.y = D_ctx_80177E88.z = D_ctx_80177F10.x = D_ctx_80177F10.y = D_ctx_80177F10.z = D_ctx_80177E88.x = D_ctx_80177E88.y = D_ctx_80177E88.z =
0.0f; 0.0f;

View File

@ -1291,7 +1291,7 @@ void Titania_8018C8A8(Actor* actor) {
if (actor->iwork[4] > 0) { if (actor->iwork[4] > 0) {
actor->iwork[4]--; actor->iwork[4]--;
} else if ((gPlayer[0].unk_1D4 != 0) && (actor->iwork[3] > 0)) { } else if ((gPlayer[0].unk_1D4 != 0) && (actor->iwork[3] > 0)) {
D_80137E84[0] = 1; gControllerRumbleFlags[0] = 1;
actor->iwork[3]--; actor->iwork[3]--;
} }
@ -1596,7 +1596,7 @@ void Titania_8018C8A8(Actor* actor) {
} }
AUDIO_PLAY_SFX(0x2940C00A, actor->sfxSource, 4); AUDIO_PLAY_SFX(0x2940C00A, actor->sfxSource, 4);
gCameraShake = 20; gCameraShake = 20;
D_Timer_80177BD0[0] = 16; gControllerRumbleTimers[0] = 16;
Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, 0); Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, 1);
Matrix_RotateZ(gCalcMatrix, actor->obj.rot.z * M_DTOR, 1); Matrix_RotateZ(gCalcMatrix, actor->obj.rot.z * M_DTOR, 1);
@ -1856,7 +1856,7 @@ void Titania_8018E5F8(Actor* actor) {
if (actor->iwork[7] > 0) { if (actor->iwork[7] > 0) {
actor->iwork[7]--; actor->iwork[7]--;
} else if ((gPlayer[0].unk_1D4 != 0) && (actor->iwork[8] > 0)) { } else if ((gPlayer[0].unk_1D4 != 0) && (actor->iwork[8] > 0)) {
D_80137E84[0] = 1; gControllerRumbleFlags[0] = 1;
actor->iwork[8]--; actor->iwork[8]--;
} }
break; break;
@ -2103,7 +2103,7 @@ void Titania_8018F4D8(Object_80* obj80) {
if (obj80->obj.rot.x >= 90.0f) { if (obj80->obj.rot.x >= 90.0f) {
obj80->obj.rot.x = 90.0f; obj80->obj.rot.x = 90.0f;
obj80->state++; obj80->state++;
D_Timer_80177BD0[0] = 7; gControllerRumbleTimers[0] = 7;
gCameraShake = 12; gCameraShake = 12;
Titania_8018F134(obj80); Titania_8018F134(obj80);
AUDIO_PLAY_SFX(0x19130003, obj80->sfxSource, 4); AUDIO_PLAY_SFX(0x19130003, obj80->sfxSource, 4);
@ -2113,7 +2113,7 @@ void Titania_8018F4D8(Object_80* obj80) {
obj80->obj.rot.z += obj80->vel.x; obj80->obj.rot.z += obj80->vel.x;
if (obj80->obj.rot.z >= 90.0f) { if (obj80->obj.rot.z >= 90.0f) {
obj80->obj.rot.z = 90.0f; obj80->obj.rot.z = 90.0f;
D_Timer_80177BD0[0] = 7; gControllerRumbleTimers[0] = 7;
gCameraShake = 12; gCameraShake = 12;
Titania_8018F134(obj80); Titania_8018F134(obj80);
AUDIO_PLAY_SFX(0x19130003, obj80->sfxSource, 4); AUDIO_PLAY_SFX(0x19130003, obj80->sfxSource, 4);
@ -2124,7 +2124,7 @@ void Titania_8018F4D8(Object_80* obj80) {
obj80->obj.rot.z -= obj80->vel.x; obj80->obj.rot.z -= obj80->vel.x;
if (obj80->obj.rot.z <= -90.0f) { if (obj80->obj.rot.z <= -90.0f) {
obj80->obj.rot.z = -90.0f; obj80->obj.rot.z = -90.0f;
D_Timer_80177BD0[0] = 7; gControllerRumbleTimers[0] = 7;
gCameraShake = 12; gCameraShake = 12;
Titania_8018F134(obj80); Titania_8018F134(obj80);
AUDIO_PLAY_SFX(0x19130003, obj80->sfxSource, 4); AUDIO_PLAY_SFX(0x19130003, obj80->sfxSource, 4);
@ -4739,7 +4739,7 @@ void Titania_80197A94(Boss* boss) {
boss->dmgType = DMG_NONE; boss->dmgType = DMG_NONE;
} }
if ((gPlayer[0].unk_1D4 != 0) && (boss->swork[39] > 0)) { if ((gPlayer[0].unk_1D4 != 0) && (boss->swork[39] > 0)) {
D_80137E84[0] = 1; gControllerRumbleFlags[0] = 1;
boss->swork[39]--; boss->swork[39]--;
} }
if (boss->swork[28] == 2) { if (boss->swork[28] == 2) {

View File

@ -2270,7 +2270,7 @@ void Andross_8018DBF0(Boss* boss) {
if ((boss->unk_04C > 35) && (boss->unk_04C < 150) && ((boss->unk_04C % 32) == 0)) { if ((boss->unk_04C > 35) && (boss->unk_04C < 150) && ((boss->unk_04C % 32) == 0)) {
AUDIO_PLAY_SFX(0x29022089, boss->sfxSource, 4); AUDIO_PLAY_SFX(0x29022089, boss->sfxSource, 4);
if (player->state_1C8 == PLAYERSTATE_1C8_11) { if (player->state_1C8 == PLAYERSTATE_1C8_11) {
D_Timer_80177BD0[0] = 10; gControllerRumbleTimers[0] = 10;
} }
} }
if ((boss->unk_04C == 20) && (player->state_1C8 == PLAYERSTATE_1C8_11)) { if ((boss->unk_04C == 20) && (player->state_1C8 == PLAYERSTATE_1C8_11)) {
@ -2334,7 +2334,7 @@ void Andross_8018DBF0(Boss* boss) {
player->timer_1F8 = 60; player->timer_1F8 = 60;
player->timer_498 = 50; player->timer_498 = 50;
boss->swork[8] = 0; boss->swork[8] = 0;
D_Timer_80177BD0[0] = 30; gControllerRumbleTimers[0] = 30;
if (player->wings.rightState == 2) { if (player->wings.rightState == 2) {
gRightWingHealth[0] = 0; gRightWingHealth[0] = 0;
player->wings.rightState = 1; player->wings.rightState = 1;
@ -3678,7 +3678,7 @@ void Andross_80193C4C(Player* player) {
AUDIO_PLAY_SFX(0x2940F026, boss->sfxSource, 4); AUDIO_PLAY_SFX(0x2940F026, boss->sfxSource, 4);
gCameraShake = 30; gCameraShake = 30;
gOverlayStage = 1; gOverlayStage = 1;
D_Timer_80177BD0[0] = 30; gControllerRumbleTimers[0] = 30;
} }
if (gCsFrameCount > 40) { if (gCsFrameCount > 40) {
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {

View File

@ -539,8 +539,8 @@ void SectorY_80199438(Boss* boss) {
} }
if (boss->timer_058 == 50) { if (boss->timer_058 == 50) {
AUDIO_PLAY_SFX(0x2903A060, boss->sfxSource, 4); AUDIO_PLAY_SFX(0x2903A060, boss->sfxSource, 4);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 20; gControllerRumbleTimers[gMainController] = 20;
D_ctx_80177850 = 15; D_ctx_80177850 = 15;
boss->swork[36]++; boss->swork[36]++;
func_effect_8007BFFC(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, boss->vel.x, boss->vel.y, func_effect_8007BFFC(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, boss->vel.x, boss->vel.y,
@ -1587,7 +1587,7 @@ void SectorY_8019C888(Boss* boss) {
if (gBossFrameCount == 250) { if (gBossFrameCount == 250) {
for (i = 59; i >= 0; i--) { for (i = 59; i >= 0; i--) {
if (gActors[i].obj.status == OBJ_ACTIVE) { if (gActors[i].obj.status == OBJ_ACTIVE) {
D_enmy2_800CFF80[gActors[i].iwork[12]] = i; gTeamEventActorIndex[gActors[i].iwork[12]] = i;
} }
} }
} }
@ -3098,8 +3098,8 @@ void SectorY_801A0AC0(Player* player) {
player->unk_194 = 10.0f; player->unk_194 = 10.0f;
player->unk_190 = 10.0f; player->unk_190 = 10.0f;
AUDIO_PLAY_SFX(0x09000002, player->sfxSource, 0); AUDIO_PLAY_SFX(0x09000002, player->sfxSource, 0);
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
D_Timer_80177BD0[gMainController] = 5; gControllerRumbleTimers[gMainController] = 5;
break; break;
case 500: case 500:
case 510: case 510:

View File

@ -1268,7 +1268,7 @@ void Map_8019E99C(void) {
Audio_SetAudioSpec(0, 0x118); Audio_SetAudioSpec(0, 0x118);
D_80137E78 = 2; gVIsPerFrame = 2;
gGameFrameCount = 0; gGameFrameCount = 0;
Title_80188010(); Title_80188010();
@ -2195,7 +2195,7 @@ void Map_801A0D14(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, D_menu_801CD9E4); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, D_menu_801CD9E4);
for (i = 0; i < 13; i++) { for (i = 0; i < 13; i++) {
TextureRect_16bRGBA(&gMasterDisp, D_menu_801B6954[D_menu_801CD9F0 + 1] + (i * 96 * 4), 96, 4, 109.0f, TextureRect_16bRGBA(&gMasterDisp, D_menu_801B6954[D_menu_801CD9F0 + 1] + (96 * 4 * i), 96, 4, 109.0f,
24.0f + (i * 4.0f), 1.0f, 1.0f); 24.0f + (i * 4.0f), 1.0f, 1.0f);
} }
@ -2378,9 +2378,9 @@ void Map_801A19A8(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, (s32) D_menu_801CEA9C); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, (s32) D_menu_801CEA9C);
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
TextureRect_8bIA(&gMasterDisp, D_MAP_600D590 + (i * 168 * 4), 168, 4, 72.0f, 104.0f + (4.0f * i), 1.0f, 1.0f); TextureRect_8bIA(&gMasterDisp, D_MAP_600D590 + (168 * 4 * i), 168, 4, 72.0f, 104.0f + (4.0f * i), 1.0f, 1.0f);
} }
TextureRect_8bIA(&gMasterDisp, D_MAP_600D590 + (168 * 16), 168, 3, 72.0f, 104.0f + 16.0f, 1.0f, 1.0f); TextureRect_8bIA(&gMasterDisp, D_MAP_600D590 + (168 * 4 * 4), 168, 3, 72.0f, 104.0f + 16.0f, 1.0f, 1.0f);
} }
void Map_801A1AE8(void) { void Map_801A1AE8(void) {
@ -5964,10 +5964,10 @@ void Map_801AB978(s32 arg0) {
yPos = 77.0f; yPos = 77.0f;
for (i = 0; i < 12; i++) { for (i = 0; i < 12; i++) {
TextureRect_16bRGBA(&gMasterDisp, D_MAP_6044820 + (i * 92 * 4), 92, 4, xPos, yPos + (i * 4.0f), TextureRect_16bRGBA(&gMasterDisp, D_MAP_6044820 + (92 * 4 * i), 92, 4, xPos, yPos + (i * 4.0f),
1.0f, 1.0f); 1.0f, 1.0f);
} }
TextureRect_16bRGBA(&gMasterDisp, D_MAP_6044820 + (92 * 12 * 4), 92, 3, xPos, yPos + 48.0f, 1.0f, 1.0f); TextureRect_16bRGBA(&gMasterDisp, D_MAP_6044820 + (92 * 4 * 12), 92, 3, xPos, yPos + 48.0f, 1.0f, 1.0f);
if (arg0 == 21) { if (arg0 == 21) {
TextureRect_16bRGBA(&gMasterDisp, D_MAP_6046CD0, 32, 34, xPos + 47.0, yPos, 1.0f, 1.0f); TextureRect_16bRGBA(&gMasterDisp, D_MAP_6046CD0, 32, 34, xPos + 47.0, yPos, 1.0f, 1.0f);

View File

@ -365,7 +365,7 @@ void Option_Setup(void) {
bool playedExpertMode; bool playedExpertMode;
s32 i; s32 i;
D_80137E78 = 2; gVIsPerFrame = 2;
sOptionCardList[0].unk_00.unk_08 = D_OPT_8003B50; sOptionCardList[0].unk_00.unk_08 = D_OPT_8003B50;
sOptionCardList[0].unk_00.unk_10 = 72; sOptionCardList[0].unk_00.unk_10 = 72;
@ -1853,7 +1853,7 @@ void Option_DataUpdate(void) {
if (D_ctx_80177990[gMainController] >= 100) { if (D_ctx_80177990[gMainController] >= 100) {
D_ctx_80177990[gMainController] -= 100; D_ctx_80177990[gMainController] -= 100;
D_80137E84[gMainController] = 1; gControllerRumbleFlags[gMainController] = 1;
} }
if (temp_fv0 == 0.0f) { if (temp_fv0 == 0.0f) {
@ -1947,11 +1947,11 @@ void Option_DataDraw(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
TextureRect_8bIA(&gMasterDisp, D_OPT_80084B0 + (i * 176 * 4), 176, 4, D_menu_801AF094[0], TextureRect_8bIA(&gMasterDisp, D_OPT_80084B0 + (176 * 4 * i), 176, 4, D_menu_801AF094[0],
D_menu_801AF0AC[0] + (4.0f * i), 1.0f, 1.0f); D_menu_801AF0AC[0] + (4.0f * i), 1.0f, 1.0f);
} }
TextureRect_8bIA(&gMasterDisp, D_OPT_80084B0 + 1408, 176, 5, D_menu_801AF094[0], D_menu_801AF0AC[0] + 8.0f, 1.0f, TextureRect_8bIA(&gMasterDisp, D_OPT_80084B0 + 176 * 4 * 2, 176, 5, D_menu_801AF094[0], D_menu_801AF0AC[0] + 8.0f,
1.0f); 1.0f, 1.0f);
if (D_menu_801B91CC < 2) { if (D_menu_801B91CC < 2) {
TextureRect_8bIA_MirX(&gMasterDisp, D_OPT_800E130, 8, 8, D_menu_801AF084[D_menu_801B91C0], 140.0f, 1.0f, 1.0f); TextureRect_8bIA_MirX(&gMasterDisp, D_OPT_800E130, 8, 8, D_menu_801AF084[D_menu_801B91C0], 140.0f, 1.0f, 1.0f);
@ -1991,8 +1991,8 @@ void Option_DataDraw(void) {
TextureRect_8bIA(&gMasterDisp, D_OPT_8008DA0 + (160 * 2 * i), 160, 2, D_menu_801AF094[3], TextureRect_8bIA(&gMasterDisp, D_OPT_8008DA0 + (160 * 2 * i), 160, 2, D_menu_801AF094[3],
D_menu_801AF0AC[3] + (2.0f * i), 1.0f, 1.0f); D_menu_801AF0AC[3] + (2.0f * i), 1.0f, 1.0f);
} }
TextureRect_8bIA(&gMasterDisp, D_OPT_8008DA0 + 2880, 160, 1, D_menu_801AF094[3], D_menu_801AF0AC[3] + 18.0f, TextureRect_8bIA(&gMasterDisp, D_OPT_8008DA0 + 160 * 2 * 9, 160, 1, D_menu_801AF094[3],
1.0f, 1.0f); D_menu_801AF0AC[3] + 18.0f, 1.0f, 1.0f);
break; break;
case 1: case 1:
@ -2003,8 +2003,8 @@ void Option_DataDraw(void) {
TextureRect_8bIA(&gMasterDisp, D_OPT_8009CE0 + (160 * 2 * i), 160, 2, D_menu_801AF094[4], TextureRect_8bIA(&gMasterDisp, D_OPT_8009CE0 + (160 * 2 * i), 160, 2, D_menu_801AF094[4],
D_menu_801AF0AC[4] + (2.0f * i), 1.0f, 1.0f); D_menu_801AF0AC[4] + (2.0f * i), 1.0f, 1.0f);
} }
TextureRect_8bIA(&gMasterDisp, D_OPT_8009CE0 + 6400, 160, 1, D_menu_801AF094[4], D_menu_801AF0AC[4] + 40.0f, TextureRect_8bIA(&gMasterDisp, D_OPT_8009CE0 + 160 * 2 * 20, 160, 1, D_menu_801AF094[4],
1.0f, 1.0f); D_menu_801AF0AC[4] + 40.0f, 1.0f, 1.0f);
break; break;
case 3: case 3:
@ -2835,13 +2835,14 @@ void Option_80199820(s32 arg0) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
TextureRect_16bRGBA(&gMasterDisp, D_menu_801AF20C[arg0] + (44 * i * 20), 44, 20, TextureRect_16bRGBA(&gMasterDisp, D_menu_801AF20C[arg0] + (44 * 20 * i), 44, 20,
D_menu_801AF148[arg0] + D_menu_801AF1B4, D_menu_801AF148[arg0] + D_menu_801AF1B4,
D_menu_801AF158[arg0] + D_menu_801AF1B8 + (i * 20.0f * 0.7f), 0.7f, 0.7f); D_menu_801AF158[arg0] + D_menu_801AF1B8 + (i * 20.0f * 0.7f), 0.7f, 0.7f);
} }
TextureRect_16bRGBA(&gMasterDisp, D_menu_801AF20C[arg0] + 1760, 44, 4, D_menu_801AF148[arg0] + D_menu_801AF1B4, TextureRect_16bRGBA(&gMasterDisp, D_menu_801AF20C[arg0] + 44 * 20 * 2, 44, 4,
D_menu_801AF158[arg0] + D_menu_801AF1B8 + 28.0f, 0.7f, 0.7f); D_menu_801AF148[arg0] + D_menu_801AF1B4, D_menu_801AF158[arg0] + D_menu_801AF1B8 + 28.0f, 0.7f,
0.7f);
var_a2 = 24; var_a2 = 24;
if (arg0 == 0) { if (arg0 == 0) {
@ -4412,7 +4413,7 @@ void Option_InvoiceDraw(void) {
static f32 D_menu_801AF3F0[8] = { 24.0f, 57.0f, 92.0f, 162.0f, 163.0f, 171.0f, 103.0f, 131.0f }; static f32 D_menu_801AF3F0[8] = { 24.0f, 57.0f, 92.0f, 162.0f, 163.0f, 171.0f, 103.0f, 131.0f };
static s32 D_menu_801AF410 = 0; static s32 D_menu_801AF410 = 0;
Graphics_FillRectangle(&gMasterDisp, 25, 18, 295, 222, 255, 255, 255, 255); Graphics_FillRectangle(&gMasterDisp, 25, 18, SCREEN_WIDTH - 25, SCREEN_HEIGHT - 18, 255, 255, 255, 255);
RCP_SetupDL(&gMasterDisp, 0x4E); RCP_SetupDL(&gMasterDisp, 0x4E);
@ -4421,7 +4422,7 @@ void Option_InvoiceDraw(void) {
TextureRect_4bCI(&gMasterDisp, D_OPT_8000000, D_OPT_8000680, 128, 16, D_menu_801AF3D0[0], D_menu_801AF3F0[0], 1.0f, TextureRect_4bCI(&gMasterDisp, D_OPT_8000000, D_OPT_8000680, 128, 16, D_menu_801AF3D0[0], D_menu_801AF3F0[0], 1.0f,
1.0f); 1.0f);
TextureRect_4bCI(&gMasterDisp, D_OPT_8000000 + 1024, D_OPT_8000680, 128, 10, D_menu_801AF3D0[0], TextureRect_4bCI(&gMasterDisp, D_OPT_8000000 + 128 * 16 / 2, D_OPT_8000680, 128, 10, D_menu_801AF3D0[0],
D_menu_801AF3F0[0] + 16.0f, 1.0f, 1.0f); D_menu_801AF3F0[0] + 16.0f, 1.0f, 1.0f);
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
@ -4429,7 +4430,7 @@ void Option_InvoiceDraw(void) {
D_menu_801AF3F0[1] + (16 * i), 1.0f, 1.0f); D_menu_801AF3F0[1] + (16 * i), 1.0f, 1.0f);
} }
TextureRect_4bCI(&gMasterDisp, D_OPT_80006A0 + 256 * 16, D_OPT_80017A0, 256, 2, D_menu_801AF3D0[1], TextureRect_4bCI(&gMasterDisp, D_OPT_80006A0 + 256 * 32 / 2, D_OPT_80017A0, 256, 2, D_menu_801AF3D0[1],
D_menu_801AF3F0[1] + 32.0f, 1.0f, 1.0f); D_menu_801AF3F0[1] + 32.0f, 1.0f, 1.0f);
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
@ -4437,7 +4438,7 @@ void Option_InvoiceDraw(void) {
D_menu_801AF3F0[2] + (16 * i), 1.0f, 1.0f); D_menu_801AF3F0[2] + (16 * i), 1.0f, 1.0f);
} }
TextureRect_4bCI(&gMasterDisp, D_OPT_80017C0 + 8192, D_OPT_80038C0, 256, 2, D_menu_801AF3D0[2], TextureRect_4bCI(&gMasterDisp, D_OPT_80017C0 + 256 * 16 * 4 / 2, D_OPT_80038C0, 256, 2, D_menu_801AF3D0[2],
D_menu_801AF3F0[2] + 64.0f, 1.0f, 1.0f); D_menu_801AF3F0[2] + 64.0f, 1.0f, 1.0f);
RCP_SetupDL(&gMasterDisp, 0x4C); RCP_SetupDL(&gMasterDisp, 0x4C);

View File

@ -162,7 +162,7 @@ u16* D_menu_801ADA30[5] = {
}; };
void Title_801875E0(void) { void Title_801875E0(void) {
D_80137E78 = 2; gVIsPerFrame = 2;
gGameFrameCount = 0; gGameFrameCount = 0;
@ -2819,7 +2819,7 @@ void Title_8018F680(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
for (i = 0; i < 30; i++) { for (i = 0; i < 30; i++) {
TextureRect_16bRGBA(&gMasterDisp, gTitleStarfoxLogo + (i * 472), 236, 2, D_menu_801B9054, TextureRect_16bRGBA(&gMasterDisp, gTitleStarfoxLogo + (236 * 2 * i), 236, 2, D_menu_801B9054,
D_menu_801B9058 + (i * 2.0f), 1.0f, 1.0f); D_menu_801B9058 + (i * 2.0f), 1.0f, 1.0f);
} }
} }
@ -2874,7 +2874,7 @@ void Title_8018F8E4(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, (s32) D_menu_801B7BC8, (s32) D_menu_801B7BC8, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, (s32) D_menu_801B7BC8, (s32) D_menu_801B7BC8, 255);
for (i = 0; i < 6; i++) { for (i = 0; i < 6; i++) {
TextureRect_8bIA(&gMasterDisp, gTitleNoController + (704 * i), 176, 4, D_menu_801AE474, TextureRect_8bIA(&gMasterDisp, gTitleNoController + (176 * 4 * i), 176, 4, D_menu_801AE474,
D_menu_801AE478 + (i * 4.0f), 1.0f, 1.0f); D_menu_801AE478 + (i * 4.0f), 1.0f, 1.0f);
} }
} else { } else {
@ -2882,10 +2882,10 @@ void Title_8018F8E4(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, (s32) D_menu_801B7BC8, (s32) D_menu_801B7BC8, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, (s32) D_menu_801B7BC8, (s32) D_menu_801B7BC8, 255);
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
TextureRect_8bIA(&gMasterDisp, gTitlePressStart + (i * 720), 120, 6, 101.0f, temp2 + (i * 6.0f), 1.0f, TextureRect_8bIA(&gMasterDisp, gTitlePressStart + (120 * 6 * i), 120, 6, 101.0f, temp2 + (i * 6.0f),
1.0f); 1.0f, 1.0f);
} }
TextureRect_8bIA(&gMasterDisp, gTitlePressStart + 1440, 120, 1, 101.0f, temp2 + 12, 1.0f, 1.0f); TextureRect_8bIA(&gMasterDisp, gTitlePressStart + 120 * 6 * 2, 120, 1, 101.0f, temp2 + 12, 1.0f, 1.0f);
} }
} }
} }
@ -2897,8 +2897,8 @@ void Title_8018FC14(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
TextureRect_8bIA(&gMasterDisp, gTitleNintendoCopyright + (i * 720), 120, 6, 102.0f, 209.0f + (i * 6.0f), 1.0f, TextureRect_8bIA(&gMasterDisp, gTitleNintendoCopyright + (120 * 6 * i), 120, 6, 102.0f, 209.0f + (i * 6.0f),
1.0f); 1.0f, 1.0f);
} }
} }
@ -2929,17 +2929,18 @@ void Title_8018FD08(void) {
case 2: case 2:
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
TextureRect_8bIA(&gMasterDisp, gTitleFalcoCard + (704 * i), 176, 4, temp_fs2, temp + (i * 4), 1.0f, TextureRect_8bIA(&gMasterDisp, gTitleFalcoCard + (176 * 4 * i), 176, 4, temp_fs2, temp + (i * 4), 1.0f,
1.0f); 1.0f);
} }
TextureRect_8bIA(&gMasterDisp, gTitleFalcoCard + 2112, 176, 1, temp_fs2, temp + 12.0f, 1.0f, 1.0f); TextureRect_8bIA(&gMasterDisp, gTitleFalcoCard + 176 * 4 * 3, 176, 1, temp_fs2, temp + 12.0f, 1.0f, 1.0f);
break; break;
case 3: case 3:
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
TextureRect_8bIA(&gMasterDisp, gTitleFoxCard + (i * 704), 176, 4, temp_fs2, temp + (i * 4), 1.0f, 1.0f); TextureRect_8bIA(&gMasterDisp, gTitleFoxCard + (176 * 4 * i), 176, 4, temp_fs2, temp + (i * 4), 1.0f,
1.0f);
} }
TextureRect_8bIA(&gMasterDisp, gTitleFoxCard + 2112, 176, 1, temp_fs2, temp + 12, 1.0f, 1.0f); TextureRect_8bIA(&gMasterDisp, gTitleFoxCard + 176 * 4 * 3, 176, 1, temp_fs2, temp + 12, 1.0f, 1.0f);
break; break;
} }
} }
@ -3107,10 +3108,10 @@ void Title_801906A0(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, (s32) D_menu_801B7BDC); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, (s32) D_menu_801B7BDC);
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
TextureRect_16bRGBA(&gMasterDisp, gTitleNintendo64Logo + (2048 * i), 128, 16, D_menu_801B9070, TextureRect_16bRGBA(&gMasterDisp, gTitleNintendo64Logo + (128 * 16 * i), 128, 16, D_menu_801B9070,
D_menu_801B9074 + (16 * i * D_menu_801B907C), D_menu_801B9078, D_menu_801B907C); D_menu_801B9074 + (16 * i * D_menu_801B907C), D_menu_801B9078, D_menu_801B907C);
} }
TextureRect_16bRGBA(&gMasterDisp, gTitleNintendo64Logo + (2048 * 5), 128, 8, D_menu_801B9070, TextureRect_16bRGBA(&gMasterDisp, gTitleNintendo64Logo + (128 * 16 * 5), 128, 8, D_menu_801B9070,
(80.0f * D_menu_801B907C) + D_menu_801B9074, D_menu_801B9078, D_menu_801B907C); (80.0f * D_menu_801B907C) + D_menu_801B9074, D_menu_801B9078, D_menu_801B907C);
case -1: case -1:
@ -3181,10 +3182,10 @@ void Title_80190C9C(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
TextureRect_8bIA(&gMasterDisp, gTitleArwingCard + (672 * i), 112, 6, D_menu_801AE564, TextureRect_8bIA(&gMasterDisp, gTitleArwingCard + (112 * 6 * i), 112, 6, D_menu_801AE564,
D_menu_801AE568 + (6.0f * i), 1.0f, 1.0f); D_menu_801AE568 + (6.0f * i), 1.0f, 1.0f);
} }
TextureRect_8bIA(&gMasterDisp, gTitleArwingCard + (112 * 24), 112, 2, D_menu_801AE564, TextureRect_8bIA(&gMasterDisp, gTitleArwingCard + (112 * 6 * 4), 112, 2, D_menu_801AE564,
D_menu_801AE568 + (6.0f * 4), 1.0f, 1.0f); D_menu_801AE568 + (6.0f * 4), 1.0f, 1.0f);
} }
} }

View File

@ -199,21 +199,21 @@ void func_80007910(OSThread* thread) {
func_800077F8(210, 210, 28, &context->fp28.f.f_even); func_800077F8(210, 210, 28, &context->fp28.f.f_even);
func_800077F8(30, 220, 30, &context->fp30.f.f_even); func_800077F8(30, 220, 30, &context->fp30.f.f_even);
osWritebackDCacheAll(); osWritebackDCacheAll();
osViBlack(0); osViBlack(false);
osViRepeatLine(0); osViRepeatLine(false);
osViSwapBuffer(gFaultMgr.fb); osViSwapBuffer(gFaultMgr.fb);
} }
OSThread* func_80007CEC(void) { OSThread* func_80007CEC(void) {
OSThread* var_v1; OSThread* queue;
var_v1 = __osGetActiveQueue(); queue = __osGetActiveQueue();
while (var_v1->priority != -1) { while (queue->priority != -1) {
if ((var_v1->priority > 0) && (var_v1->priority < 0x7F) && (var_v1->flags & 3)) { if ((queue->priority > 0) && (queue->priority < 0x7F) && (queue->flags & 3)) {
return var_v1; return queue;
} }
var_v1 = var_v1->tlnext; queue = queue->tlnext;
} }
return NULL; return NULL;
} }

View File

@ -4,7 +4,7 @@ OSContPad gControllerHold[4];
OSContPad gControllerPress[4]; OSContPad gControllerPress[4];
u8 gControllerPlugged[4]; u8 gControllerPlugged[4];
u32 gControllerLock; u32 gControllerLock;
u8 gControllerRumble[4]; u8 gControllerRumbleEnabled[4];
OSContPad sNextController[4]; // OSContPad sNextController[4]; //
OSContPad sPrevController[4]; // OSContPad sPrevController[4]; //
OSContStatus sControllerStatus[4]; // OSContStatus sControllerStatus[4]; //
@ -55,7 +55,7 @@ void Controller_Init(void) {
osContInit(&gSerialEventQueue, &sp1F, sControllerStatus); osContInit(&gSerialEventQueue, &sp1F, sControllerStatus);
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
gControllerPlugged[i] = (sp1F >> i) & 1; gControllerPlugged[i] = (sp1F >> i) & 1;
gControllerRumble[i] = 0; gControllerRumbleEnabled[i] = 0;
} }
} }
@ -120,30 +120,30 @@ void Controller_Rumble(void) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
if ((gControllerPlugged[i] != 0) && (sControllerStatus[i].errno == 0)) { if ((gControllerPlugged[i] != 0) && (sControllerStatus[i].errno == 0)) {
if (sControllerStatus[i].status & 1) { if (sControllerStatus[i].status & 1) {
if (gControllerRumble[i] == 0) { if (gControllerRumbleEnabled[i] == 0) {
if (osMotorInit(&gSerialEventQueue, &sControllerMotor[i], i)) { if (osMotorInit(&gSerialEventQueue, &sControllerMotor[i], i)) {
gControllerRumble[i] = 0; gControllerRumbleEnabled[i] = 0;
} else { } else {
gControllerRumble[i] = 1; gControllerRumbleEnabled[i] = 1;
} }
} }
if (gControllerRumble[i] == 1) { if (gControllerRumbleEnabled[i] == 1) {
if (D_80137E84[i] != 0) { if (gControllerRumbleFlags[i] != 0) {
if (osMotorStart(&sControllerMotor[i])) { if (osMotorStart(&sControllerMotor[i])) {
gControllerRumble[i] = 0; gControllerRumbleEnabled[i] = 0;
} }
} else { } else {
if (osMotorStop(&sControllerMotor[i])) { if (osMotorStop(&sControllerMotor[i])) {
gControllerRumble[i] = 0; gControllerRumbleEnabled[i] = 0;
} }
} }
} }
} else { } else {
gControllerRumble[i] = 0; gControllerRumbleEnabled[i] = 0;
} }
} }
} }
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
D_80137E84[i] = 0; gControllerRumbleFlags[i] = 0;
} }
} }

View File

@ -124,20 +124,20 @@ void Lib_FillScreen(u8 setFill) {
if (setFill == true) { if (setFill == true) {
if (gFillScreen == false) { if (gFillScreen == false) {
if (gFillScreenColor == 1) { if (gFillScreenColor == 1) {
osViBlack(1); osViBlack(true);
} else { } else {
for (i = 0; i < 3 * SCREEN_WIDTH; i++) { for (i = 0; i < 3 * SCREEN_WIDTH; i++) {
gFillBuffer[i] = gFillScreenColor; gFillBuffer[i] = gFillScreenColor;
} }
osWritebackDCacheAll(); osWritebackDCacheAll();
osViSwapBuffer(&gFillBuffer[SCREEN_WIDTH]); osViSwapBuffer(&gFillBuffer[SCREEN_WIDTH]);
osViRepeatLine(1); osViRepeatLine(true);
} }
gFillScreen = true; gFillScreen = true;
} }
} else if (gFillScreen == true) { } else if (gFillScreen == true) {
osViRepeatLine(0); osViRepeatLine(false);
osViBlack(0); osViBlack(false);
gFillScreen = false; gFillScreen = false;
} }
} }

View File

@ -53,11 +53,11 @@ Lightsn* gLight;
FrameBuffer* gFrameBuffer; FrameBuffer* gFrameBuffer;
u16* gTextureRender; u16* gTextureRender;
u8 D_80137E78; u8 gVIsPerFrame;
u32 gSysFrameCount; u32 gSysFrameCount;
u8 gStartNMI; u8 gStartNMI;
u8 gStopTasks; u8 gStopTasks;
u8 D_80137E84[4]; u8 gControllerRumbleFlags[4];
u16 gFillScreenColor; u16 gFillScreenColor;
u16 gFillScreen; u16 gFillScreen;
@ -78,7 +78,7 @@ u8 gSerialThreadStack[0x1000]; // 800E0FB0
void Main_Initialize(void) { void Main_Initialize(void) {
u8 i; u8 i;
D_80137E78 = 0; gVIsPerFrame = 0;
gSysFrameCount = 0; gSysFrameCount = 0;
gStartNMI = false; gStartNMI = false;
gStopTasks = false; gStopTasks = false;
@ -230,8 +230,8 @@ void Timer_ThreadEntry(void* arg0) {
void Graphics_ThreadEntry(void* arg0) { void Graphics_ThreadEntry(void* arg0) {
u8 i; u8 i;
u8 var_v1; u8 visPerFrame;
u8 var_v2; u8 validVIsPerFrame;
Game_Initialize(); Game_Initialize();
osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_PRI_NORMAL); osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_PRI_NORMAL);
@ -277,9 +277,9 @@ void Graphics_ThreadEntry(void* arg0) {
} }
func_80007FE4(&gFrameBuffers[(gSysFrameCount - 1) % 3], SCREEN_WIDTH, 16); func_80007FE4(&gFrameBuffers[(gSysFrameCount - 1) % 3], SCREEN_WIDTH, 16);
var_v1 = MIN(D_80137E78, 4); visPerFrame = MIN(gVIsPerFrame, 4);
var_v2 = MAX(var_v1, gGfxVImsgQueue.validCount + 1); validVIsPerFrame = MAX(visPerFrame, gGfxVImsgQueue.validCount + 1);
for (i = 0; i < var_v2; i += 1) { // Can't be ++ for (i = 0; i < validVIsPerFrame; i += 1) { // Can't be ++
osRecvMesg(&gGfxVImsgQueue, NULL, OS_MESG_BLOCK); osRecvMesg(&gGfxVImsgQueue, NULL, OS_MESG_BLOCK);
} }
@ -343,58 +343,58 @@ void Main_HandleRSP(void) {
void Main_GetNewTasks(void) { void Main_GetNewTasks(void) {
u8 i; u8 i;
SPTask** var_a0; SPTask** audioTask;
SPTask** var_a1; SPTask** gfxTask;
SPTask** var_s0_2; SPTask** newAudioTask;
SPTask** var_s1_2; SPTask** newGfxTask;
OSMesg sp40; OSMesg spTaskMsg;
SPTask* sp3C; SPTask* newTask;
var_s0_2 = sNewAudioTasks; newAudioTask = sNewAudioTasks;
var_s1_2 = sNewGfxTasks; newGfxTask = sNewGfxTasks;
for (i = 0; i < ARRAY_COUNT(sNewAudioTasks); i += 1) { for (i = 0; i < ARRAY_COUNT(sNewAudioTasks); i += 1) {
*(var_s0_2++) = NULL; *(newAudioTask++) = NULL;
} }
for (i = 0; i < ARRAY_COUNT(sNewGfxTasks); i += 1) { for (i = 0; i < ARRAY_COUNT(sNewGfxTasks); i += 1) {
*(var_s1_2++) = NULL; *(newGfxTask++) = NULL;
} }
var_s0_2 = sNewAudioTasks; newAudioTask = sNewAudioTasks;
var_s1_2 = sNewGfxTasks; newGfxTask = sNewGfxTasks;
while (osRecvMesg(&gTaskMsgQueue, &sp40, OS_MESG_NOBLOCK) != MSG_QUEUE_EMPTY) { while (osRecvMesg(&gTaskMsgQueue, &spTaskMsg, OS_MESG_NOBLOCK) != MSG_QUEUE_EMPTY) {
sp3C = (SPTask*) sp40; newTask = (SPTask*) spTaskMsg;
sp3C->state = SPTASK_STATE_NOT_STARTED; newTask->state = SPTASK_STATE_NOT_STARTED;
switch (sp3C->task.t.type) { switch (newTask->task.t.type) {
case M_AUDTASK: case M_AUDTASK:
*(var_s0_2++) = sp3C; *(newAudioTask++) = newTask;
break; break;
case M_GFXTASK: case M_GFXTASK:
*(var_s1_2++) = sp3C; *(newGfxTask++) = newTask;
break; break;
} }
} }
var_s0_2 = sNewAudioTasks; newAudioTask = sNewAudioTasks;
var_s1_2 = sNewGfxTasks; newGfxTask = sNewGfxTasks;
var_a0 = sAudioTasks; audioTask = sAudioTasks;
var_a1 = sGfxTasks; gfxTask = sGfxTasks;
for (i = 0; i < ARRAY_COUNT(sAudioTasks); i += 1, var_a0++) { for (i = 0; i < ARRAY_COUNT(sAudioTasks); i += 1, audioTask++) {
if (*var_a0 == NULL) { if (*audioTask == NULL) {
break; break;
} }
} }
for (i; i < ARRAY_COUNT(sAudioTasks); i += 1) { for (i; i < ARRAY_COUNT(sAudioTasks); i += 1) {
*(var_a0++) = *(var_s0_2++); *(audioTask++) = *(newAudioTask++);
} }
for (i = 0; i < ARRAY_COUNT(sGfxTasks); i += 1, var_a1++) { for (i = 0; i < ARRAY_COUNT(sGfxTasks); i += 1, gfxTask++) {
if (*var_a1 == NULL) { if (*gfxTask == NULL) {
break; break;
} }
} }
for (i; i < ARRAY_COUNT(sGfxTasks); i += 1) { for (i; i < ARRAY_COUNT(sGfxTasks); i += 1) {
*(var_a1++) = *(var_s1_2++); *(gfxTask++) = *(newGfxTask++);
} }
} }

@ -1 +1 @@
Subproject commit b1d39534f3ee1f04601cdadffbc8a96bcbf0b4a6 Subproject commit 8dda6f54595cf3b04a08ef13b7c799961f533b6e