mirror of
https://github.com/HarbourMasters/Starship
synced 2026-08-15 05:10:26 -04:00
Script and hitbox docs, update torch (#210)
* script2 * more docs and such * torch update
This commit is contained in:
+14
-13
@@ -266,10 +266,10 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) {
|
||||
boxRotZ = 0.0f;
|
||||
boxRotY = 0.0f;
|
||||
boxRotX = 0.0f;
|
||||
if (hitboxData[0] >= HITBOX_TYPE_3) {
|
||||
if (hitboxData[0] >= HITBOX_SHADOW) {
|
||||
return 0;
|
||||
}
|
||||
if (hitboxData[0] == HITBOX_TYPE_2) {
|
||||
if (hitboxData[0] == HITBOX_ROTATED) {
|
||||
rotateBox = 1.0f;
|
||||
boxRotX = hitboxData[1];
|
||||
boxRotY = hitboxData[2];
|
||||
@@ -378,7 +378,7 @@ s32 func_beam_80036F88(PlayerShot* shot, Actor* actor) {
|
||||
shotPy = shot->obj.pos.y;
|
||||
shotPz = shot->obj.pos.z;
|
||||
} else {
|
||||
if (hitboxData[0] == HITBOX_TYPE_2) {
|
||||
if (hitboxData[0] == HITBOX_ROTATED) {
|
||||
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0);
|
||||
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * 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;
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
@@ -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.z = shot->obj.pos.z;
|
||||
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_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->state < 3) || (actor->state >= 5))) ||
|
||||
((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;
|
||||
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)) {
|
||||
actor->unk_0D0 = 1;
|
||||
actor->unk_0D2 = shot->playerNum;
|
||||
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.y = fabsf(actor->obj.pos.y - shot->obj.pos.y);
|
||||
test.z = fabsf(actor->obj.pos.z - shot->obj.pos.z);
|
||||
@@ -1109,9 +1110,9 @@ void func_beam_80039210(PlayerShot* shot) {
|
||||
} else {
|
||||
var_a1 = 0;
|
||||
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;
|
||||
} else if (gActors[shot->playerNum - 100].iwork[12] == 5) {
|
||||
} else if (gActors[shot->playerNum - 100].iwork[12] == TEAM_ID_BILL) {
|
||||
var_a1 = 2;
|
||||
}
|
||||
} else if (gCurrentLevel == LEVEL_KATINA) {
|
||||
@@ -1771,7 +1772,7 @@ void func_beam_8003C008(PlayerShot* shot) {
|
||||
count = *hitboxData++;
|
||||
if (count != 0) {
|
||||
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_RotateX(gCalcMatrix, -hitboxData[1] * 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) ||
|
||||
(actor->obj.id == OBJ_ACTOR_190) || (actor->obj.id == OBJ_ACTOR_202) ||
|
||||
(actor->obj.id == OBJ_ACTOR_201) || (actor->obj.id == OBJ_ACTOR_187) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == 78)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == 38)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_78)) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_38)) ||
|
||||
(actor->obj.id == OBJ_ACTOR_196)) {
|
||||
actor->unk_0D0 = 2;
|
||||
actor->unk_0D2 = 0;
|
||||
|
||||
+16
-15
@@ -117,17 +117,17 @@ void func_bg_8003DAF0(void) {
|
||||
gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
|
||||
var_s2 = D_ctx_80178410;
|
||||
if (var_s2 != 0) {
|
||||
if (D_ctx_80178420 >= 480.0f) {
|
||||
D_ctx_80178420 -= 480.0f;
|
||||
if (D_ctx_80178420 >= 1.5f * SCREEN_WIDTH) {
|
||||
D_ctx_80178420 -= 1.5f * SCREEN_WIDTH;
|
||||
}
|
||||
if (D_ctx_80178424 >= 360.0f) {
|
||||
D_ctx_80178424 -= 360.0f;
|
||||
if (D_ctx_80178424 >= 1.5f * SCREEN_HEIGHT) {
|
||||
D_ctx_80178424 -= 1.5f * SCREEN_HEIGHT;
|
||||
}
|
||||
if (D_ctx_80178420 < 0.0f) {
|
||||
D_ctx_80178420 += 480.0f;
|
||||
D_ctx_80178420 += 1.5f * SCREEN_WIDTH;
|
||||
}
|
||||
if (D_ctx_80178424 < 0.0f) {
|
||||
D_ctx_80178424 += 360.0f;
|
||||
D_ctx_80178424 += 1.5f * SCREEN_HEIGHT;
|
||||
}
|
||||
spf68 = D_ctx_80178420;
|
||||
spf64 = D_ctx_80178424;
|
||||
@@ -144,17 +144,18 @@ void func_bg_8003DAF0(void) {
|
||||
for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) {
|
||||
var_fv1 = *sp60 + spf68;
|
||||
var_fa0 = *sp5C + spf64;
|
||||
if (var_fv1 >= 400.0f) {
|
||||
var_fv1 -= 480.0f;
|
||||
if (var_fv1 >= 1.25f * SCREEN_WIDTH) {
|
||||
var_fv1 -= 1.5f * SCREEN_WIDTH;
|
||||
}
|
||||
var_fv1 -= 160.0f;
|
||||
if (var_fa0 >= 300.0f) {
|
||||
var_fa0 -= 360.0f;
|
||||
}
|
||||
var_fa0 -= 120.0f;
|
||||
var_fv1 -= SCREEN_WIDTH / 2.0f;
|
||||
|
||||
temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + 160.0f;
|
||||
temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + 120.0f;
|
||||
if (var_fa0 >= 1.25f * SCREEN_HEIGHT) {
|
||||
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)) {
|
||||
gDPPipeSync(gMasterDisp++);
|
||||
gDPSetFillColor(gMasterDisp++, *sp58);
|
||||
|
||||
@@ -10,7 +10,7 @@ s32 D_ctx_80177824; // some sort of flag
|
||||
s32 D_ctx_8017782C; // some sort of flag. all range related?
|
||||
GameState gGameState;
|
||||
s32 gNextGameStateTimer; // next game state timer?
|
||||
s32 D_ctx_80177844; // timer for vs item spawn
|
||||
s32 gVsItemSpawnTimer; // timer for vs item spawn
|
||||
OptionState gOptionMenuStatus;
|
||||
s32 gPlayState; // pause-related state
|
||||
s32 D_ctx_80177868; // some sort of state. pause-related?
|
||||
@@ -73,7 +73,7 @@ UNK_TYPE F_80177D80;
|
||||
UNK_TYPE F_80177DE8;
|
||||
s32 gGameFrameCount;
|
||||
s32 D_ctx_80177DC8;
|
||||
s32 D_ctx_80177E70;
|
||||
s32 gPrevEventActorIndex;
|
||||
s32 D_ctx_80177E78;
|
||||
s32 gRingPassCount;
|
||||
Vec3f D_ctx_80177E88;
|
||||
@@ -286,7 +286,7 @@ f32 D_ctx_80177958[4];
|
||||
s32 D_ctx_8017796C;
|
||||
OSContPad* gInputHold;
|
||||
OSContPad* gInputPress;
|
||||
u8* D_ctx_80177984;
|
||||
u8* gControllerRumble;
|
||||
s32 D_ctx_80177990[4];
|
||||
f32 D_ctx_801779A8[4];
|
||||
u8 gPauseEnabled;
|
||||
@@ -307,7 +307,7 @@ u8 D_ctx_80177B4C;
|
||||
u8 D_ctx_80177B6C;
|
||||
u8 gGreatFoxIntact;
|
||||
u8 D_ctx_80177BAC;
|
||||
u16 D_Timer_80177BD0[4];
|
||||
u16 gControllerRumbleTimers[4];
|
||||
u16 D_ctx_80177C30[4];
|
||||
s32 D_ctx_80177C50;
|
||||
s32 D_ctx_80177C70;
|
||||
|
||||
@@ -1894,7 +1894,7 @@ void func_demo_8004E3D8(Player* player) {
|
||||
player->unk_280 = 0;
|
||||
|
||||
if ((gGameFrameCount % 2) != 0) {
|
||||
D_80137E84[gPlayerNum] = 1;
|
||||
gControllerRumbleFlags[gPlayerNum] = 1;
|
||||
}
|
||||
|
||||
switch (player->form) {
|
||||
|
||||
+22
-27
@@ -16,9 +16,9 @@ f32 D_display_801615A8[4];
|
||||
f32 D_display_801615B8[4];
|
||||
|
||||
s32 D_display_800CA220 = 0;
|
||||
u8 D_display_800CA224[] = { 0, 0, 0, 0 }; //
|
||||
s32 D_display_800CA228 = 0; //
|
||||
s32 D_display_800CA22C = 0; //
|
||||
u8 sPlayersVisible[] = { 0, 0, 0, 0 }; //
|
||||
s32 D_display_800CA228 = 0; //
|
||||
s32 D_display_800CA22C = 0; //
|
||||
f32 D_display_800CA230 = 0.0f;
|
||||
Actor* D_display_800CA234 = NULL;
|
||||
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_800CA290 = 13.0f;
|
||||
f32 D_display_800CA294 = -10.0f;
|
||||
f32 D_display_800CA298[] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
f32 D_display_800CA2A8 = 0.0f;
|
||||
f32 sCrosshairScales[] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
f32 sPlayerShadowing = 0.0f;
|
||||
|
||||
void func_display_80052B80(Player* player) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
@@ -652,22 +652,22 @@ void func_display_80053C38(Player* player, s32 arg1) {
|
||||
}
|
||||
|
||||
void func_display_80053F7C(Player* player) {
|
||||
Vec3f* pad;
|
||||
Vec3f* translate;
|
||||
s32 i;
|
||||
|
||||
if ((gPlayerNum == player->num) && ((player->form == FORM_ARWING) || (player->form == FORM_LANDMASTER)) &&
|
||||
(player->unk_234 != 0) &&
|
||||
(((gGameState == GSTATE_PLAY) && (player->state_1C8 == PLAYERSTATE_1C8_3)) || (gGameState == GSTATE_MENU))) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
pad = &D_display_801613E0[i];
|
||||
translate = &D_display_801613E0[i];
|
||||
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) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x3F);
|
||||
if (i == 1) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 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 {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255);
|
||||
gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255);
|
||||
@@ -676,8 +676,8 @@ void func_display_80053F7C(Player* player) {
|
||||
RCP_SetupDL_36();
|
||||
}
|
||||
if (i == 1) {
|
||||
Matrix_Scale(gGfxMatrix, D_display_800CA298[player->num], D_display_800CA298[player->num], 1.0f, 1);
|
||||
Math_SmoothStepToF(&D_display_800CA298[player->num], 1.0f, 1.0f, 0.2f, 0.0f);
|
||||
Matrix_Scale(gGfxMatrix, sCrosshairScales[player->num], sCrosshairScales[player->num], 1.0f, 1);
|
||||
Math_SmoothStepToF(&sCrosshairScales[player->num], 1.0f, 1.0f, 0.2f, 0.0f);
|
||||
}
|
||||
Matrix_Scale(gGfxMatrix, 4.0f, 4.0f, 4.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
@@ -705,16 +705,16 @@ void func_display_80054280(Player* player, s32 arg1) {
|
||||
}
|
||||
|
||||
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);
|
||||
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) {
|
||||
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
|
||||
}
|
||||
if ((gGroundType == GROUNDTYPE_WATER) && (player->unk_068 < 10.0f)) {
|
||||
player->unk_23C = 90;
|
||||
player->shadowing = 90;
|
||||
} else {
|
||||
player->unk_23C = 180;
|
||||
player->shadowing = 180;
|
||||
}
|
||||
switch (player->form) {
|
||||
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.y) < (fabsf(sp20.z * 0.5f) + 500.0f)) {
|
||||
if (arg1 == 0) {
|
||||
D_display_800CA224[index] = 1;
|
||||
sPlayersVisible[index] = 1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (arg1 == 0) {
|
||||
D_display_800CA224[index] = 0;
|
||||
sPlayersVisible[index] = 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -1303,12 +1303,7 @@ Gfx* D_display_800CA354[] = {
|
||||
f32 D_display_800CA380 = 0.0f;
|
||||
f32 D_display_800CA384 = 0.0f;
|
||||
f32 D_display_800CA388 = -300.0f;
|
||||
f32 D_display_800CA38C[] = {
|
||||
0.0f,
|
||||
-300.0f,
|
||||
-150.0f,
|
||||
-50.0f,
|
||||
};
|
||||
f32 D_display_800CA38C[] = { 0.0f, -300.0f, -150.0f, -50.0f };
|
||||
|
||||
void func_display_80056E2C(Player* player) {
|
||||
f32 sp34;
|
||||
@@ -1648,7 +1643,7 @@ void Play_Draw(void) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, 1);
|
||||
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_80056230(opponent);
|
||||
}
|
||||
@@ -1670,7 +1665,7 @@ void Play_Draw(void) {
|
||||
}
|
||||
gReflectY = 1;
|
||||
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_80055B58(opponent);
|
||||
func_display_80056230(opponent);
|
||||
@@ -1691,7 +1686,7 @@ void Play_Draw(void) {
|
||||
func_display_80053B18();
|
||||
}
|
||||
for (i = 0, opponent = gPlayer; i < gCamCount; i++, opponent++) {
|
||||
if (D_display_800CA224[i] != 0) {
|
||||
if (sPlayersVisible[i] != 0) {
|
||||
if (gShowCrosshairs[i]) {
|
||||
func_display_80053F7C(opponent);
|
||||
}
|
||||
@@ -1712,6 +1707,6 @@ void Play_Draw(void) {
|
||||
}
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
func_display_80051B30();
|
||||
D_display_800CA224[gPlayerNum] = 0;
|
||||
sPlayersVisible[gPlayerNum] = 0;
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
|
||||
@@ -638,13 +638,13 @@ void func_edisplay_8005BAB4(ObjectId objId, s32 index) {
|
||||
case OBJ_ACTOR_TEAM_BOSS:
|
||||
case OBJ_ACTOR_EVENT:
|
||||
switch (gActors[index].unk_0B4) {
|
||||
case 3:
|
||||
case EINFO_3:
|
||||
Matrix_Scale(gGfxMatrix, 2.3f, 0.0f, 2.3f, 1);
|
||||
Matrix_RotateX(gGfxMatrix, M_PI / 2, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_102A010);
|
||||
break;
|
||||
case 81:
|
||||
case EINFO_81:
|
||||
RCP_SetupDL(&gMasterDisp, 0x30);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
|
||||
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255);
|
||||
|
||||
@@ -2817,10 +2817,10 @@ bool func_effect_8007FD84(Effect* effect) {
|
||||
s32 i;
|
||||
Actor* actor;
|
||||
|
||||
for (i = 1; i < ARRAY_COUNT(D_enmy2_800CFF80); i++) {
|
||||
actor = &gActors[D_enmy2_800CFF80[i]];
|
||||
for (i = 1; i < ARRAY_COUNT(gTeamEventActorIndex); i++) {
|
||||
actor = &gActors[gTeamEventActorIndex[i]];
|
||||
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.x - effect->obj.pos.x) < 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;
|
||||
|
||||
AUDIO_PLAY_SFX(0x2940F026, effect->sfxSource, 4);
|
||||
D_Timer_80177BD0[0] = 60;
|
||||
gControllerRumbleTimers[0] = 60;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -384,14 +384,14 @@ void func_enmy_80061F0C(Actor* actor, ObjectInit* objInit, s32 index) {
|
||||
actor->unk_0F4.z = objInit->rot.z;
|
||||
actor->obj.id = OBJ_ACTOR_EVENT;
|
||||
actor->timer_0C2 = 10;
|
||||
actor->unk_0B4 = 4095;
|
||||
actor->unk_0B4 = EINFO_FFF;
|
||||
actor->aiType = objInit->id - ACTOR_EVENT_ID;
|
||||
|
||||
Object_SetInfo(&actor->info, actor->obj.id);
|
||||
actor->info.unk_10 = 3000.0f;
|
||||
actor->fwork[25] = 20000.0f;
|
||||
actor->iwork[1] = D_ctx_80177E70;
|
||||
actor->iwork[10] = gActors[D_ctx_80177E70].aiType;
|
||||
actor->iwork[1] = gPrevEventActorIndex;
|
||||
actor->iwork[10] = gActors[gPrevEventActorIndex].aiType;
|
||||
actor->fwork[22] = D_play_80161A54;
|
||||
Matrix_RotateZ(gCalcMatrix, -D_ctx_80177E88.z * M_DTOR, 0);
|
||||
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;
|
||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &actor->vwork[28]);
|
||||
actor->iwork[9] = D_ctx_80177E78;
|
||||
D_ctx_80177E70 = index;
|
||||
gPrevEventActorIndex = index;
|
||||
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) {
|
||||
rotate = 0.0f;
|
||||
hitRot.x = hitRot.y = hitRot.z = 0.0f;
|
||||
if (*hitboxData >= HITBOX_TYPE_3) {
|
||||
if (*hitboxData >= HITBOX_SHADOW) {
|
||||
return false;
|
||||
}
|
||||
if (*hitboxData == HITBOX_TYPE_2) {
|
||||
if (*hitboxData == HITBOX_ROTATED) {
|
||||
rotate = 1.0f;
|
||||
hitRot.x = hitboxData[1];
|
||||
hitRot.y = hitboxData[2];
|
||||
@@ -2493,7 +2493,7 @@ void Actor_Move(Actor* actor) {
|
||||
f32 var_fv0 = 4000.0f;
|
||||
|
||||
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;
|
||||
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_8) {
|
||||
var_fv0 = 100000.0f;
|
||||
@@ -2515,7 +2515,7 @@ void Actor_Move(Actor* actor) {
|
||||
D_ctx_80176550[actor->unk_046] = 0;
|
||||
break;
|
||||
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;
|
||||
} else if ((actor->unk_0B4 == EINFO_38) && (actor->unk_046 != 2)) {
|
||||
gRingPassCount = -1;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "assets/ast_ve1_boss.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 gCallTimer;
|
||||
|
||||
@@ -1186,7 +1186,7 @@ void ActorEvent_ProcessScript(ActorEvent* this) {
|
||||
this->iwork[12] = actorScript[this->aiIndex + 1];
|
||||
|
||||
if (this->iwork[12] <= TEAM_ID_PEPPY) {
|
||||
D_enmy2_800CFF80[this->iwork[12]] = this->index;
|
||||
gTeamEventActorIndex[this->iwork[12]] = this->index;
|
||||
}
|
||||
|
||||
this->aiIndex += 2;
|
||||
@@ -1373,7 +1373,7 @@ void ActorEvent_ProcessScript(ActorEvent* this) {
|
||||
|
||||
case EV_OPC(EVOP_SET_TARGET):
|
||||
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->timer_0BC = 0;
|
||||
this->aiIndex += 2;
|
||||
@@ -1646,7 +1646,8 @@ void func_enmy2_8006ECBC(PlayerShotId objId, PlayerShot* shot, s32 unk0E4, f32 x
|
||||
} else {
|
||||
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);
|
||||
} else if (unk0E4 + 100 == 200) {
|
||||
shot->playerNum = 100;
|
||||
@@ -2281,8 +2282,8 @@ void ActorEvent_ProcessTriggers(ActorEvent* this) {
|
||||
}
|
||||
}
|
||||
|
||||
if (this->iwork[2] >= 100) {
|
||||
if (fabsf(this->obj.pos.z - gPlayer[0].unk_138) <= ((this->iwork[2] - 100) * 100.0f)) {
|
||||
if (this->iwork[2] >= EVC_CLOSE_Z) {
|
||||
if (fabsf(this->obj.pos.z - gPlayer[0].unk_138) <= ((this->iwork[2] - EVC_CLOSE_Z) * 100.0f)) {
|
||||
ActorEvent_80070CEC(this);
|
||||
}
|
||||
return;
|
||||
|
||||
+40
-28
@@ -141,28 +141,31 @@ bool func_game_800A1B6C(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void func_game_800A1C14(Gfx** arg0) {
|
||||
gSPDisplayList((*arg0)++, gRcpInitDL);
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8);
|
||||
gDPSetDepthImage((*arg0)++, &gZBuffer);
|
||||
gDPSetColorImage((*arg0)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, &gZBuffer);
|
||||
gDPSetFillColor((*arg0)++, FILL_COLOR(GPACK_ZDZ(G_MAXFBZ, 0)));
|
||||
gDPFillRectangle((*arg0)++, 8, 8, SCREEN_WIDTH - 8 - 1, SCREEN_HEIGHT - 8 - 1);
|
||||
gDPSetColorImage((*arg0)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffer);
|
||||
void func_game_800A1C14(Gfx** dList) {
|
||||
gSPDisplayList((*dList)++, gRcpInitDL);
|
||||
gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
|
||||
SCREEN_HEIGHT - SCREEN_MARGIN);
|
||||
gDPSetDepthImage((*dList)++, &gZBuffer);
|
||||
gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, &gZBuffer);
|
||||
gDPSetFillColor((*dList)++, FILL_COLOR(GPACK_ZDZ(G_MAXFBZ, 0)));
|
||||
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) {
|
||||
gDPPipeSync((*arg0)++);
|
||||
gDPSetCycleType((*arg0)++, G_CYC_1CYCLE);
|
||||
gDPSetCombineMode((*arg0)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
|
||||
gDPSetRenderMode((*arg0)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
gDPSetPrimColor((*arg0)++, 0x00, 0x00, RGBA16_RED(gBgColor) * 8, RGBA16_GRN(gBgColor) * 8,
|
||||
gDPPipeSync((*dList)++);
|
||||
gDPSetCycleType((*dList)++, G_CYC_1CYCLE);
|
||||
gDPSetCombineMode((*dList)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
|
||||
gDPSetRenderMode((*dList)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
gDPSetPrimColor((*dList)++, 0x00, 0x00, RGBA16_RED(gBgColor) * 8, RGBA16_GRN(gBgColor) * 8,
|
||||
RGBA16_BLU(gBgColor) * 8, gBlurAlpha);
|
||||
} else {
|
||||
gDPSetFillColor((*arg0)++, FILL_COLOR(gBgColor | 1));
|
||||
gDPSetFillColor((*dList)++, FILL_COLOR(gBgColor | 1));
|
||||
}
|
||||
gDPFillRectangle((*arg0)++, 8, 8, SCREEN_WIDTH - 8 - 1, SCREEN_HEIGHT - 8);
|
||||
gDPPipeSync((*arg0)++);
|
||||
gDPSetColorDither((*arg0)++, G_CD_MAGICSQ);
|
||||
gDPFillRectangle((*dList)++, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN - 1,
|
||||
SCREEN_HEIGHT - SCREEN_MARGIN);
|
||||
gDPPipeSync((*dList)++);
|
||||
gDPSetColorDither((*dList)++, G_CD_MAGICSQ);
|
||||
}
|
||||
|
||||
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[2] = G_MAXZ / 2;
|
||||
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;
|
||||
case 1:
|
||||
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[2] = G_MAXZ / 2;
|
||||
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;
|
||||
case 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[2] = G_MAXZ / 2;
|
||||
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;
|
||||
case 3:
|
||||
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[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vtrans[3] = 0;
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, SCREEN_WIDTH - 8,
|
||||
SCREEN_HEIGHT - 8);
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
|
||||
SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT - SCREEN_MARGIN);
|
||||
break;
|
||||
default:
|
||||
func_game_800A1F44();
|
||||
@@ -473,7 +479,8 @@ void Game_Update(void) {
|
||||
func_game_800A1FB0(&gMasterDisp, gCamCount, 1);
|
||||
Game_Draw(1);
|
||||
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)) {
|
||||
func_game_800A1FB0(&gMasterDisp, gCamCount, 3);
|
||||
Game_Draw(3);
|
||||
@@ -482,23 +489,28 @@ void Game_Update(void) {
|
||||
func_game_800A1FB0(&gMasterDisp, gCamCount, 1);
|
||||
Game_Draw(1);
|
||||
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);
|
||||
gDPSetAlphaDither(gMasterDisp++, G_AD_NOISE);
|
||||
gDPSetCycleType(gMasterDisp++, G_CYC_1CYCLE);
|
||||
gDPSetCombineMode(gMasterDisp++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
|
||||
gDPSetRenderMode(gMasterDisp++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 0);
|
||||
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 3, 8, SCREEN_WIDTH / 2 + 2, SCREEN_HEIGHT - 8);
|
||||
gDPFillRectangle(gMasterDisp++, 8, SCREEN_HEIGHT / 2 - 3, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2 + 2);
|
||||
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 2 - 1, SCREEN_MARGIN, SCREEN_WIDTH / 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) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 255);
|
||||
} else {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 100, 100, 255, 255);
|
||||
}
|
||||
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 2, 8, SCREEN_WIDTH / 2 + 1, SCREEN_HEIGHT - 8);
|
||||
gDPFillRectangle(gMasterDisp++, 8, SCREEN_HEIGHT / 2 - 2, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2 + 1);
|
||||
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 1 - 1, SCREEN_MARGIN, SCREEN_WIDTH / 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();
|
||||
}
|
||||
|
||||
+32
-30
@@ -1028,7 +1028,8 @@ void func_hud_80087788(void) {
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
@@ -1477,7 +1478,7 @@ void func_hud_80088970(void) {
|
||||
D_80161838[0] = 0;
|
||||
|
||||
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;
|
||||
|
||||
@@ -1526,7 +1527,7 @@ void func_hud_80088970(void) {
|
||||
break;
|
||||
|
||||
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) {
|
||||
break;
|
||||
}
|
||||
@@ -1544,7 +1545,7 @@ void func_hud_80088970(void) {
|
||||
}
|
||||
|
||||
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++) {
|
||||
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) {
|
||||
u16 *temp, *dst;
|
||||
u16 src[1024];
|
||||
f32 temp1;
|
||||
void func_hud_8008C104(u16* srcTexture, u16* dstTexture) {
|
||||
u16 *src, *dst;
|
||||
u16 buffer[1024];
|
||||
f32 rowPhase;
|
||||
f32 angle;
|
||||
s32 j;
|
||||
s32 i;
|
||||
s32 width = 32;
|
||||
s32 height = 32;
|
||||
s32 temp3;
|
||||
s32 temp2;
|
||||
s32 halfHeight;
|
||||
s32 offset;
|
||||
|
||||
temp = SEGMENTED_TO_VIRTUAL(texture);
|
||||
dst = SEGMENTED_TO_VIRTUAL(arg1);
|
||||
src = SEGMENTED_TO_VIRTUAL(srcTexture);
|
||||
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) {
|
||||
if ((temp1 += 90.0f / temp3) > 90.0f) {
|
||||
if ((rowPhase += 90.0f / halfHeight) > 90.0f) {
|
||||
break;
|
||||
}
|
||||
|
||||
angle = (height / 2) * COS_DEG(temp1);
|
||||
temp2 = angle;
|
||||
angle = (height / 2) * COS_DEG(rowPhase);
|
||||
offset = angle;
|
||||
|
||||
if (temp2 >= height) {
|
||||
temp2 = 0;
|
||||
if (offset >= height) {
|
||||
offset = 0;
|
||||
}
|
||||
|
||||
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++) {
|
||||
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--;
|
||||
}
|
||||
Texture_Mottle(dst, src, 2);
|
||||
Texture_Mottle(dst, buffer, 2);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
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);
|
||||
}
|
||||
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) {
|
||||
@@ -2874,10 +2876,10 @@ void func_hud_8008CFB8(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
|
||||
s32 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,
|
||||
arg3);
|
||||
TextureRect_8bIA(&gMasterDisp, D_versus_3000BC0 + 2 * ((80 * 8 * i) / 2), 80, 8, arg0, (8 * i * arg3) + arg1,
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -6067,7 +6069,7 @@ void func_hud_80096A74(Player* player) {
|
||||
|
||||
func_play_800B2574(player);
|
||||
|
||||
D_80137E84[0] = 0;
|
||||
gControllerRumbleFlags[0] = 0;
|
||||
gControllerHold[player->num].button = button;
|
||||
|
||||
gCsCamEyeX = player->pos.x;
|
||||
|
||||
+91
-91
@@ -497,7 +497,7 @@ void func_play_800A594C(void) {
|
||||
}
|
||||
if (D_ctx_8017782C == 0) {
|
||||
if (gCurrentLevel == LEVEL_SOLAR) {
|
||||
func_8001D1C8(0xFF, 1);
|
||||
func_8001D1C8(255, 1);
|
||||
AUDIO_PLAY_SFX(0x4100C023, gDefaultSfxSource, 4);
|
||||
Audio_KillSfxBySourceAndId(gPlayer[0].sfxSource, 0x3140807E);
|
||||
}
|
||||
@@ -655,7 +655,7 @@ void func_play_800A6148(void) {
|
||||
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_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 =
|
||||
0.0f;
|
||||
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++;
|
||||
for (i = 0; i < count; i++, hitboxData += 6) {
|
||||
spA0 = 0;
|
||||
if (*hitboxData == HITBOX_TYPE_2) {
|
||||
if (*hitboxData == HITBOX_ROTATED) {
|
||||
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0);
|
||||
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * 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;
|
||||
spA0 = 1;
|
||||
} else {
|
||||
if (*hitboxData >= HITBOX_TYPE_3) {
|
||||
if (*hitboxData >= HITBOX_SHADOW) {
|
||||
hitboxData++;
|
||||
}
|
||||
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)) {
|
||||
*index = i + 1;
|
||||
if (hitboxData[-1] == HITBOX_TYPE_3) {
|
||||
if (hitboxData[-1] == HITBOX_SHADOW) {
|
||||
return -1;
|
||||
}
|
||||
if (hitboxData[-1] == HITBOX_TYPE_4) {
|
||||
if (hitboxData[-1] == HITBOX_WHOOSH) {
|
||||
return -2;
|
||||
}
|
||||
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)) {
|
||||
var_fv0 = player->hit4.x;
|
||||
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.rot.y, obj58->obj.rot.z, 0.0f, 0.0f, 0.0f);
|
||||
if ((temp_v0 != 0) && (temp_v0 < 0)) {
|
||||
if (player->unk_22C == 0) {
|
||||
if (player->whooshTimer == 0) {
|
||||
func_effect_8007A6F0(&obj58->obj.pos, 0x19000001);
|
||||
}
|
||||
player->unk_22C += 2;
|
||||
if (player->unk_22C >= 4) {
|
||||
player->unk_22C = 4;
|
||||
player->whooshTimer += 2;
|
||||
if (player->whooshTimer >= 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);
|
||||
if (temp_v0 != 0) {
|
||||
if (temp_v0 < 0) {
|
||||
if (player->unk_22C == 0) {
|
||||
if (player->whooshTimer == 0) {
|
||||
func_effect_8007A6F0(&obj58->obj.pos, 0x19000001);
|
||||
}
|
||||
player->unk_22C += 2;
|
||||
if (player->unk_22C >= 4) {
|
||||
player->unk_22C = 4;
|
||||
player->whooshTimer += 2;
|
||||
if (player->whooshTimer >= 4) {
|
||||
player->whooshTimer = 4;
|
||||
}
|
||||
} 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);
|
||||
@@ -1764,22 +1764,22 @@ void func_play_800A8BA4(Player* player) {
|
||||
D_ctx_80178570 = 20;
|
||||
D_ctx_80178574 = 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);
|
||||
}
|
||||
player->unk_22C += 2;
|
||||
if (player->unk_22C >= 4) {
|
||||
player->unk_22C = 4;
|
||||
player->whooshTimer += 2;
|
||||
if (player->whooshTimer >= 4) {
|
||||
player->whooshTimer = 4;
|
||||
}
|
||||
} else if (obj80->obj.id == OBJ_80_54) {
|
||||
if (player->unk_22C == 0) {
|
||||
if (player->whooshTimer == 0) {
|
||||
AUDIO_PLAY_SFX(0x19832019, obj80->sfxSource, 0);
|
||||
}
|
||||
player->unk_22C += 2;
|
||||
if (player->unk_22C >= 4) {
|
||||
player->unk_22C = 4;
|
||||
player->whooshTimer += 2;
|
||||
if (player->whooshTimer >= 4) {
|
||||
player->whooshTimer = 4;
|
||||
}
|
||||
} else {
|
||||
Player_ApplyDamage(player, temp_v0, obj80->info.damage);
|
||||
@@ -1870,12 +1870,12 @@ void func_play_800A8BA4(Player* player) {
|
||||
0.0f, 0.0f, 0.0f);
|
||||
if (temp_v0 != 0) {
|
||||
if (temp_v0 < 0) {
|
||||
if (player->unk_22C == 0) {
|
||||
if (player->whooshTimer == 0) {
|
||||
AUDIO_PLAY_SFX(0x19000001, boss->sfxSource, 0);
|
||||
}
|
||||
player->unk_22C += 2;
|
||||
if (player->unk_22C >= 4) {
|
||||
player->unk_22C = 4;
|
||||
player->whooshTimer += 2;
|
||||
if (player->whooshTimer >= 4) {
|
||||
player->whooshTimer = 4;
|
||||
}
|
||||
} else {
|
||||
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);
|
||||
}
|
||||
} else if (actor->obj.id == OBJ_ACTOR_EVENT) {
|
||||
if (actor->unk_0B4 == 42) {
|
||||
if (actor->unk_0B4 == EINFO_42) {
|
||||
temp_v0 =
|
||||
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);
|
||||
@@ -1938,12 +1938,12 @@ void func_play_800A8BA4(Player* player) {
|
||||
AUDIO_PLAY_SFX(0x49008025, gDefaultSfxSource, 4);
|
||||
}
|
||||
} else if (temp_v0 < 0) {
|
||||
if (player->unk_22C == 0) {
|
||||
if (player->whooshTimer == 0) {
|
||||
AUDIO_PLAY_SFX(0x19000001, actor->sfxSource, 0);
|
||||
}
|
||||
player->unk_22C += 2;
|
||||
if (player->unk_22C >= 4) {
|
||||
player->unk_22C = 4;
|
||||
player->whooshTimer += 2;
|
||||
if (player->whooshTimer >= 4) {
|
||||
player->whooshTimer = 4;
|
||||
}
|
||||
} else {
|
||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||
@@ -1971,12 +1971,12 @@ void func_play_800A8BA4(Player* player) {
|
||||
0.0f, 0.0f, 0.0f);
|
||||
if (temp_v0 != 0) {
|
||||
if (temp_v0 < 0) {
|
||||
if (player->unk_22C == 0) {
|
||||
if (player->whooshTimer == 0) {
|
||||
AUDIO_PLAY_SFX(0x19000001, actor->sfxSource, 0);
|
||||
}
|
||||
player->unk_22C += 2;
|
||||
if (player->unk_22C >= 4) {
|
||||
player->unk_22C = 4;
|
||||
player->whooshTimer += 2;
|
||||
if (player->whooshTimer >= 4) {
|
||||
player->whooshTimer = 4;
|
||||
}
|
||||
} else {
|
||||
actor->unk_0D0 = 3;
|
||||
@@ -2297,11 +2297,11 @@ void func_play_800AA800(Player* player) {
|
||||
}
|
||||
hitboxData++;
|
||||
for (i = 0; i < count; i++, hitboxData += 6) {
|
||||
if (*hitboxData >= HITBOX_TYPE_3) {
|
||||
if (*hitboxData >= HITBOX_SHADOW) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (*hitboxData == HITBOX_TYPE_2) {
|
||||
if (*hitboxData == HITBOX_ROTATED) {
|
||||
sp100 = hitboxData[1];
|
||||
spFC = hitboxData[2];
|
||||
spF8 = hitboxData[3];
|
||||
@@ -2412,7 +2412,7 @@ void func_play_800AB334(void) {
|
||||
0.0f;
|
||||
break;
|
||||
case LEVEL_AQUAS:
|
||||
D_80137E78 = 3;
|
||||
gVIsPerFrame = 3;
|
||||
D_bg_8015F970 = 1600.0f;
|
||||
D_AQ_801C4188 = 128.0f;
|
||||
Aquas_801A9824();
|
||||
@@ -2534,7 +2534,7 @@ void Play_Init(void) {
|
||||
|
||||
D_play_80161A54 = 40.0f;
|
||||
for (i = 0; i < 4; i++) {
|
||||
gControllerRumble[i] = 0;
|
||||
gControllerRumbleEnabled[i] = 0;
|
||||
}
|
||||
|
||||
if (gExpertMode) {
|
||||
@@ -2543,7 +2543,7 @@ void Play_Init(void) {
|
||||
gEnemyShotSpeed = 100;
|
||||
}
|
||||
gPauseEnabled = 0;
|
||||
D_80137E78 = 2;
|
||||
gVIsPerFrame = 2;
|
||||
D_ctx_80177C70 = 0;
|
||||
D_display_800CA234 = NULL;
|
||||
D_display_Timer_800CA238 = 0;
|
||||
@@ -2635,7 +2635,7 @@ void Play_Init(void) {
|
||||
for (i = 0; i < gCamCount; i++) {
|
||||
gPlayer[i].state_1C8 = PLAYERSTATE_1C8_1;
|
||||
gPlayerFillScreenAlphas[i] = D_ctx_801783C0[i] = 0;
|
||||
D_Timer_80177BD0[i] = 0;
|
||||
gControllerRumbleTimers[i] = 0;
|
||||
D_ctx_80177C30[i] = 0;
|
||||
}
|
||||
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_enmy_80060F30(player->sfxSource, 0x09007029, player->num);
|
||||
D_Timer_80177BD0[player->num] = 5;
|
||||
gControllerRumbleTimers[player->num] = 5;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
@@ -3031,7 +3031,7 @@ bool func_play_800AD1F4(Player* player) {
|
||||
}
|
||||
func_enmy_80060F30(player->sfxSource, 0x09007029, player->num);
|
||||
gChargeTimers[player->num] = 0;
|
||||
D_Timer_80177BD0[player->num] = 5;
|
||||
gControllerRumbleTimers[player->num] = 5;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -4996,7 +4996,7 @@ void func_play_800B39E0(Player* player) {
|
||||
}
|
||||
if (player->unk_1F4 > 0) {
|
||||
if (player->unk_1F4 > 3) {
|
||||
*D_ctx_80177984 = 1;
|
||||
*gControllerRumble = 1;
|
||||
}
|
||||
player->unk_1F4--;
|
||||
if (player->form == FORM_ARWING) {
|
||||
@@ -5287,23 +5287,23 @@ void Player_Update1(Player* player) {
|
||||
if (gVersusMode) {
|
||||
gInputHold = &gControllerHold[player->num];
|
||||
gInputPress = &gControllerPress[player->num];
|
||||
D_ctx_80177984 = &D_80137E84[player->num];
|
||||
gControllerRumble = &gControllerRumbleFlags[player->num];
|
||||
} else {
|
||||
gInputHold = &gControllerHold[gMainController];
|
||||
gInputPress = &gControllerPress[gMainController];
|
||||
D_ctx_80177984 = &D_80137E84[gMainController];
|
||||
gControllerRumble = &gControllerRumbleFlags[gMainController];
|
||||
}
|
||||
|
||||
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);
|
||||
if (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) {
|
||||
D_Timer_80177BD0[player->num]--;
|
||||
if (gControllerRumbleTimers[player->num] != 0) {
|
||||
gControllerRumbleTimers[player->num]--;
|
||||
if (((gGameFrameCount % 2) == 0)) {
|
||||
*D_ctx_80177984 = 1;
|
||||
*gControllerRumble = 1;
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
player->sfx.bank = player->sfx.roll = 0;
|
||||
sp1C4 = player->unk_22C;
|
||||
sp1C4 = player->whooshTimer;
|
||||
if (sp1C4 != 0) {
|
||||
player->unk_22C--;
|
||||
player->whooshTimer--;
|
||||
}
|
||||
switch (player->state_1C8) {
|
||||
case PLAYERSTATE_1C8_0:
|
||||
@@ -5396,7 +5396,7 @@ void Player_Update1(Player* player) {
|
||||
}
|
||||
} else {
|
||||
gInputPress->stick_x = gInputPress->stick_y = 0;
|
||||
D_ctx_80177844 = 0;
|
||||
gVsItemSpawnTimer = 0;
|
||||
gPauseEnabled = 0;
|
||||
}
|
||||
break;
|
||||
@@ -6122,11 +6122,11 @@ void func_play_800B73E0(Player* player) {
|
||||
}
|
||||
|
||||
void Play_UpdateLevel(void) {
|
||||
s32 var_v0_2;
|
||||
s32 cycleMask;
|
||||
s32 sp40;
|
||||
f32 sp3C;
|
||||
u8 var_a0;
|
||||
u8 sp3A;
|
||||
u8 shields;
|
||||
u8 heightParam;
|
||||
|
||||
switch (gCurrentLevel) {
|
||||
case LEVEL_TRAINING:
|
||||
@@ -6136,18 +6136,18 @@ void Play_UpdateLevel(void) {
|
||||
break;
|
||||
case LEVEL_VERSUS:
|
||||
func_versus_800C26C8();
|
||||
D_ctx_80177844++;
|
||||
if ((D_ctx_80177844 == 200) && (gLaserStrength[0] == LASERS_SINGLE) &&
|
||||
gVsItemSpawnTimer++;
|
||||
if ((gVsItemSpawnTimer == 200) && (gLaserStrength[0] == LASERS_SINGLE) &&
|
||||
(gLaserStrength[1] == LASERS_SINGLE) && (gLaserStrength[2] == 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)) {
|
||||
func_play_800B852C(OBJ_ITEM_BOMB, &gItems[1]);
|
||||
Play_SpawnVsItem(OBJ_ITEM_BOMB, &gItems[1]);
|
||||
}
|
||||
if (D_ctx_80177844 == 500) {
|
||||
D_ctx_80177844 = 0;
|
||||
if (gVsItemSpawnTimer == 500) {
|
||||
gVsItemSpawnTimer = 0;
|
||||
}
|
||||
break;
|
||||
case LEVEL_VENOM_2:
|
||||
@@ -6219,31 +6219,31 @@ void Play_UpdateLevel(void) {
|
||||
Texture_Mottle(D_SO_601E1E8, D_SO_6020F60, 3);
|
||||
|
||||
if (gPlayer[0].pos.y > 600.0f) {
|
||||
var_v0_2 = 8 - 1;
|
||||
sp3A = 5;
|
||||
cycleMask = 8 - 1;
|
||||
heightParam = 5;
|
||||
} else if (gPlayer[0].pos.y > 500.0f) {
|
||||
var_v0_2 = 8 - 1;
|
||||
sp3A = 4;
|
||||
cycleMask = 8 - 1;
|
||||
heightParam = 4;
|
||||
} else if (gPlayer[0].pos.y > 400.0f) {
|
||||
var_v0_2 = 4 - 1;
|
||||
sp3A = 3;
|
||||
cycleMask = 4 - 1;
|
||||
heightParam = 3;
|
||||
} else if (gPlayer[0].pos.y > 300.0f) {
|
||||
var_v0_2 = 4 - 1;
|
||||
sp3A = 2;
|
||||
cycleMask = 4 - 1;
|
||||
heightParam = 2;
|
||||
} else if (gPlayer[0].pos.y > 200.0f) {
|
||||
var_v0_2 = 2 - 1;
|
||||
sp3A = 1;
|
||||
cycleMask = 2 - 1;
|
||||
heightParam = 1;
|
||||
} else if (gPlayer[0].pos.y > 100.0f) {
|
||||
var_v0_2 = 1 - 1;
|
||||
sp3A = 0;
|
||||
cycleMask = 1 - 1;
|
||||
heightParam = 0;
|
||||
} else {
|
||||
var_v0_2 = 1 - 1;
|
||||
cycleMask = 1 - 1;
|
||||
#ifdef AVOID_UB
|
||||
sp3A = 0;
|
||||
heightParam = 0;
|
||||
#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--;
|
||||
if (gPlayer[0].shields <= 0) {
|
||||
gPlayer[0].shields = 0;
|
||||
@@ -6256,8 +6256,8 @@ void Play_UpdateLevel(void) {
|
||||
}
|
||||
}
|
||||
}
|
||||
var_a0 = MIN(gPlayer[0].shields, 255);
|
||||
func_8001D1C8(var_a0, sp3A);
|
||||
shields = MIN(gPlayer[0].shields, 255);
|
||||
func_8001D1C8(shields, heightParam);
|
||||
if (((gGameFrameCount % 8) == 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7)) {
|
||||
Solar_8019E8B8(RAND_FLOAT_CENTERED(6000.0f), -80.0f,
|
||||
gPlayer[0].unk_138 + (RAND_FLOAT(2000.0f) + -6000.0f),
|
||||
@@ -6339,21 +6339,21 @@ void Play_Update(void) {
|
||||
Play_UpdateLevel();
|
||||
}
|
||||
|
||||
u8 D_800D317C = 255;
|
||||
u8 sVsItemSpawnIndex = -1;
|
||||
|
||||
void func_play_800B852C(ObjectId objId, Item* item) {
|
||||
u8 sp1F = (u8) RAND_FLOAT(5.0f);
|
||||
void Play_SpawnVsItem(ObjectId objId, Item* item) {
|
||||
u8 spawnIndex = (u8) RAND_FLOAT(5.0f);
|
||||
|
||||
if (D_800D317C == sp1F) {
|
||||
D_ctx_80177844 -= 1;
|
||||
if (sVsItemSpawnIndex == spawnIndex) {
|
||||
gVsItemSpawnTimer -= 1;
|
||||
} else {
|
||||
D_800D317C = sp1F;
|
||||
sVsItemSpawnIndex = spawnIndex;
|
||||
if (item->obj.status == OBJ_FREE) {
|
||||
Item_Initialize(item);
|
||||
item->obj.status = OBJ_INIT;
|
||||
item->obj.pos.x = gObjects58[sp1F].obj.pos.x;
|
||||
item->obj.pos.y = gObjects58[sp1F].obj.pos.y;
|
||||
item->obj.pos.z = gObjects58[sp1F].obj.pos.z;
|
||||
item->obj.pos.x = gObjects58[spawnIndex].obj.pos.x;
|
||||
item->obj.pos.y = gObjects58[spawnIndex].obj.pos.y;
|
||||
item->obj.pos.z = gObjects58[spawnIndex].obj.pos.z;
|
||||
item->obj.id = objId;
|
||||
Object_SetInfo(&item->info, item->obj.id);
|
||||
}
|
||||
|
||||
@@ -426,20 +426,20 @@ void func_radio_800BAAE8(void) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||
|
||||
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,
|
||||
D_radio_80178740 + 20.0f + sp38 + (i * 20.0f * D_ctx_80177D38), 1.0f,
|
||||
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);
|
||||
} 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,
|
||||
D_radio_80178740 + 20.0f + sp38 + (i * 20.0f * D_ctx_80177D38), 1.0f,
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -550,7 +550,7 @@ void func_radio_800BB5D0(void) {
|
||||
if (D_Timer_801782AC == 0) {
|
||||
gRadioState++;
|
||||
temp_v0 = Message_GetWidth(D_ctx_80178308);
|
||||
if (D_80137E78 == 3) {
|
||||
if (gVIsPerFrame == 3) {
|
||||
D_Timer_801782AC = temp_v0 + 16;
|
||||
} else {
|
||||
D_Timer_801782AC = (2 * temp_v0) + 16;
|
||||
@@ -595,7 +595,7 @@ void func_radio_800BB5D0(void) {
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68 + 1;
|
||||
}
|
||||
|
||||
if (!D_80137E78) {}
|
||||
if (!gVIsPerFrame) {}
|
||||
|
||||
if (1) {
|
||||
fakeTemp = 0;
|
||||
|
||||
+23
-15
@@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
|
||||
void Graphics_NMIWipe(void) {
|
||||
static s16 D_800D4A80 = 0;
|
||||
static s16 sWipeBarLength = 0;
|
||||
s32 i;
|
||||
|
||||
gViewport->vp.vscale[0] = SCREEN_WIDTH * 2;
|
||||
@@ -14,24 +14,32 @@ void Graphics_NMIWipe(void) {
|
||||
gViewport->vp.vtrans[3] = 0;
|
||||
gSPViewport(gMasterDisp++, gViewport);
|
||||
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_WIDTH - 8 - MIN(304, D_800D4A80), 64, SCREEN_WIDTH - 8, 120, 0, 0, 0,
|
||||
255);
|
||||
Graphics_FillRectangle(&gMasterDisp, 8, 120, MIN(304, D_800D4A80) + 8, 176, 0, 0, 0, 255);
|
||||
Graphics_FillRectangle(&gMasterDisp, SCREEN_WIDTH - 8 - MIN(304, D_800D4A80), 176, SCREEN_WIDTH - 8, 232, 0, 0, 0,
|
||||
255);
|
||||
if (D_800D4A80 == 0) {
|
||||
Graphics_FillRectangle(&gMasterDisp, SCREEN_MARGIN, SCREEN_MARGIN,
|
||||
MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength) + SCREEN_MARGIN,
|
||||
SCREEN_HEIGHT / 4 + SCREEN_MARGIN / 2, 0, 0, 0, 255);
|
||||
Graphics_FillRectangle(&gMasterDisp,
|
||||
SCREEN_WIDTH - SCREEN_MARGIN - MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength),
|
||||
SCREEN_HEIGHT / 4 + SCREEN_MARGIN / 2, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2, 0, 0, 0, 255);
|
||||
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();
|
||||
}
|
||||
D_800D4A80 += 45;
|
||||
if (D_800D4A80 >= 485) {
|
||||
osViBlack(1);
|
||||
gStopTasks = 1;
|
||||
sWipeBarLength += SCREEN_WIDTH / 7;
|
||||
if (sWipeBarLength >= SCREEN_WIDTH * 85 / 8 / 7) { // Why 85 / 8 == 3400 / 320 == 10.625? Has to do with NMI timing?
|
||||
osViBlack(true);
|
||||
gStopTasks = true;
|
||||
}
|
||||
for (i = 0; i < MAXCONTROLLERS; i++) {
|
||||
gControllerRumble[i] = 0;
|
||||
D_80137E84[i] = 0;
|
||||
gControllerRumbleEnabled[i] = 0;
|
||||
gControllerRumbleFlags[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
+51
-51
@@ -26,100 +26,100 @@ s32 Graphics_Printf(const char* fmt, ...) {
|
||||
}
|
||||
|
||||
void Texture_Scroll(u16* texture, s32 width, s32 height, u8 mode) {
|
||||
u16* temp_t0 = SEGMENTED_TO_VIRTUAL(texture);
|
||||
u16 temp_a3;
|
||||
s32 var_a0;
|
||||
s32 var_t4;
|
||||
u16* pixel = SEGMENTED_TO_VIRTUAL(texture);
|
||||
u16 tempPxl;
|
||||
s32 u;
|
||||
s32 v;
|
||||
|
||||
switch (mode) {
|
||||
case 0:
|
||||
for (var_a0 = 0; var_a0 < width; var_a0++) {
|
||||
temp_a3 = temp_t0[var_a0];
|
||||
for (var_t4 = 1; var_t4 < height; var_t4++) {
|
||||
temp_t0[(var_t4 - 1) * width + var_a0] = temp_t0[(var_t4) *width + var_a0];
|
||||
for (u = 0; u < width; u++) {
|
||||
tempPxl = pixel[u];
|
||||
for (v = 1; v < height; v++) {
|
||||
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;
|
||||
case 1:
|
||||
for (var_a0 = 0; var_a0 < width; var_a0++) {
|
||||
temp_a3 = temp_t0[(height - 1) * width + var_a0];
|
||||
for (var_t4 = height - 2; var_t4 >= 0; var_t4--) {
|
||||
temp_t0[(var_t4 + 1) * width + var_a0] = temp_t0[(var_t4) *width + var_a0];
|
||||
for (u = 0; u < width; u++) {
|
||||
tempPxl = pixel[(height - 1) * width + u];
|
||||
for (v = height - 2; v >= 0; v--) {
|
||||
pixel[(v + 1) * width + u] = pixel[(v) *width + u];
|
||||
}
|
||||
temp_t0[var_a0] = temp_a3;
|
||||
pixel[u] = tempPxl;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (var_t4 = 0; var_t4 < height; var_t4++) {
|
||||
temp_a3 = temp_t0[var_t4 * width + width - 1];
|
||||
for (var_a0 = width - 2; var_a0 >= 0; var_a0--) {
|
||||
temp_t0[var_t4 * width + var_a0 + 1] = temp_t0[var_t4 * width + var_a0];
|
||||
for (v = 0; v < height; v++) {
|
||||
tempPxl = pixel[v * width + width - 1];
|
||||
for (u = width - 2; u >= 0; u--) {
|
||||
pixel[v * width + u + 1] = pixel[v * width + u];
|
||||
}
|
||||
temp_t0[var_t4 * width] = temp_a3;
|
||||
pixel[v * width] = tempPxl;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (var_t4 = 0; var_t4 < height; var_t4++) {
|
||||
temp_a3 = temp_t0[var_t4 * width];
|
||||
for (var_a0 = 1; var_a0 < width; var_a0++) {
|
||||
temp_t0[var_t4 * width + var_a0 - 1] = temp_t0[var_t4 * width + var_a0];
|
||||
for (v = 0; v < height; v++) {
|
||||
tempPxl = pixel[v * width];
|
||||
for (u = 1; u < width; u++) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
void Texture_Mottle(u16* dst, u16* src, u8 mode) {
|
||||
s32 var_v1;
|
||||
s32 var_s3;
|
||||
u8* var_s0_2;
|
||||
u8* var_s4_2;
|
||||
s32 temp_ft3;
|
||||
s32 u;
|
||||
s32 v;
|
||||
u8* dst8;
|
||||
u8* src8;
|
||||
s32 offset;
|
||||
|
||||
dst = SEGMENTED_TO_VIRTUAL(dst);
|
||||
src = SEGMENTED_TO_VIRTUAL(src);
|
||||
switch (mode) {
|
||||
case 2:
|
||||
for (var_s3 = 0; var_s3 < 32 * 32; var_s3 += 32) {
|
||||
temp_ft3 = 3.0f * __sinf((s32) (((var_s3 / 32) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
|
||||
for (var_v1 = 0; var_v1 < 32; var_v1++) {
|
||||
dst[var_s3 + (temp_ft3 + var_v1) % 32U] = src[var_s3 + var_v1];
|
||||
for (v = 0; v < 32 * 32; v += 32) {
|
||||
offset = 3.0f * __sinf((s32) (((v / 32) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
|
||||
for (u = 0; u < 32; u++) {
|
||||
dst[v + (offset + u) % 32U] = src[v + u];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (var_s3 = 0; var_s3 < 22 * 64; var_s3 += 64) {
|
||||
temp_ft3 = __sinf((s32) (((var_s3 / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 8));
|
||||
for (var_v1 = 0; var_v1 < 64; var_v1++) {
|
||||
dst[var_s3 + (temp_ft3 + var_v1) % 64U] = src[var_s3 + var_v1];
|
||||
for (v = 0; v < 22 * 64; v += 64) { // should be 32 * 64?
|
||||
offset = __sinf((s32) (((v / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 8));
|
||||
for (u = 0; u < 64; u++) {
|
||||
dst[v + (offset + u) % 64U] = src[v + u];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
for (var_s3 = 0; var_s3 < 16 * 16; var_s3 += 16) {
|
||||
temp_ft3 = 2.0f * __sinf((s32) (((var_s3 / 16) + (gGameFrameCount / 2)) % 16U) * (2 * M_PI / 16));
|
||||
for (var_v1 = 0; var_v1 < 16; var_v1++) {
|
||||
dst[var_s3 + (temp_ft3 + var_v1) % 16U] = src[var_s3 + var_v1];
|
||||
for (v = 0; v < 16 * 16; v += 16) {
|
||||
offset = 2.0f * __sinf((s32) (((v / 16) + (gGameFrameCount / 2)) % 16U) * (2 * M_PI / 16));
|
||||
for (u = 0; u < 16; u++) {
|
||||
dst[v + (offset + u) % 16U] = src[v + u];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
for (var_s3 = 0; var_s3 < 32 * 32; var_s3 += 32) {
|
||||
temp_ft3 = 2.0f * __sinf((s32) (((var_s3 / 32) + (gGameFrameCount / 2)) % 32U) * (2 * M_PI / 32));
|
||||
for (var_v1 = 0; var_v1 < 32; var_v1++) {
|
||||
dst[var_s3 + (temp_ft3 + var_v1) % 32U] = src[var_s3 + var_v1];
|
||||
for (v = 0; v < 32 * 32; v += 32) {
|
||||
offset = 2.0f * __sinf((s32) (((v / 32) + (gGameFrameCount / 2)) % 32U) * (2 * M_PI / 32));
|
||||
for (u = 0; u < 32; u++) {
|
||||
dst[v + (offset + u) % 32U] = src[v + u];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
var_s0_2 = (u8*) dst;
|
||||
var_s4_2 = (u8*) src;
|
||||
for (var_s3 = 0; var_s3 < 64 * 64; var_s3 += 64) {
|
||||
temp_ft3 = 4.0f * __sinf((s32) (((var_s3 / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
|
||||
for (var_v1 = 0; var_v1 < 64; var_v1++) {
|
||||
var_s0_2[var_s3 + (temp_ft3 + var_v1) % 64U] = var_s4_2[var_s3 + var_v1];
|
||||
dst8 = (u8*) dst;
|
||||
src8 = (u8*) src;
|
||||
for (v = 0; v < 64 * 64; v += 64) {
|
||||
offset = 4.0f * __sinf((s32) (((v / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
|
||||
for (u = 0; u < 64; u++) {
|
||||
dst8[v + (offset + u) % 64U] = src8[v + u];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -996,7 +996,7 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3
|
||||
if (spB4 != 0) {
|
||||
for (i = 0; i < spB4; i++, hitboxData += 6) {
|
||||
spA0 = 0;
|
||||
if (hitboxData[0] == HITBOX_TYPE_2) {
|
||||
if (hitboxData[0] == HITBOX_ROTATED) {
|
||||
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0);
|
||||
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * 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;
|
||||
spA0 = 1.0f;
|
||||
} else {
|
||||
if (hitboxData[0] == HITBOX_TYPE_3) {
|
||||
if (hitboxData[0] == HITBOX_SHADOW) {
|
||||
hitboxData++;
|
||||
}
|
||||
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)) {
|
||||
*index = i + 1;
|
||||
if (hitboxData[-1] == HITBOX_TYPE_3) {
|
||||
if (hitboxData[-1] == HITBOX_SHADOW) {
|
||||
return -1;
|
||||
} else {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
if (hitboxData[-1] == HITBOX_TYPE_3) {
|
||||
if (hitboxData[-1] == HITBOX_SHADOW) {
|
||||
return 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_80178574 = 20;
|
||||
D_ctx_80178578 = 20;
|
||||
player->unk_23C = 80;
|
||||
if (player->unk_22C == 0) {
|
||||
player->shadowing = 80;
|
||||
if (player->whooshTimer == 0) {
|
||||
AUDIO_PLAY_SFX(0x19000001, player->sfxSource, 0);
|
||||
}
|
||||
player->unk_22C += 2;
|
||||
if (player->unk_22C >= 4) {
|
||||
player->unk_22C = 4;
|
||||
player->whooshTimer += 2;
|
||||
if (player->whooshTimer >= 4) {
|
||||
player->whooshTimer = 4;
|
||||
}
|
||||
} else if (temp_v0 == -2) {
|
||||
AUDIO_PLAY_SFX(0x19000001, player->sfxSource, 0);
|
||||
|
||||
@@ -88,7 +88,7 @@ void func_versus_800BC8D8(f32 xPos, f32 yPos, f32 scale) {
|
||||
s32 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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user