Script and hitbox docs, update torch (#210)

* script2

* more docs and such

* torch update
This commit is contained in:
petrie911
2024-04-11 13:55:32 -03:00
committed by GitHub
parent 4362338efb
commit c532f31e24
47 changed files with 586 additions and 503 deletions
+4 -4
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 GameState gGameState;
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 s32 gPlayState; // pause-related state
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 s32 gGameFrameCount;
extern s32 D_ctx_80177DC8;
extern s32 D_ctx_80177E70;
extern s32 gPrevEventActorIndex;
extern s32 D_ctx_80177E78;
extern s32 gRingPassCount;
extern Vec3f D_ctx_80177E88;
@@ -267,7 +267,7 @@ extern f32 D_ctx_80177958[4];
extern s32 D_ctx_8017796C;
extern OSContPad* gInputHold;
extern OSContPad* gInputPress;
extern u8* D_ctx_80177984;
extern u8* gControllerRumble;
extern s32 D_ctx_80177990[4];
extern f32 D_ctx_801779A8[4];
extern u8 gPauseEnabled;
@@ -288,7 +288,7 @@ extern u8 D_ctx_80177B4C;
extern u8 D_ctx_80177B6C;
extern u8 gGreatFoxIntact;
extern u8 D_ctx_80177BAC;
extern u16 D_Timer_80177BD0[4];
extern u16 gControllerRumbleTimers[4];
extern u16 D_ctx_80177C30[4];
extern s32 D_ctx_80177C50;
extern s32 D_ctx_80177C70;
+1 -1
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_800B7184(Player*, s32);
void func_play_800B73E0(Player*);
void func_play_800B852C(ObjectId , Item*);
void Play_SpawnVsItem(ObjectId , Item*);
void Play_Main(void);
void func_play_800A668C(f32 xPos, f32 yPos, f32 zPos);
void func_play_800AD7F0(Player* player);
+1
View File
@@ -5,6 +5,7 @@
#define SCREEN_WIDTH 320
#define SCREEN_HEIGHT 240
#define SCREEN_MARGIN 8
#define RAND_FLOAT(max) (Rand_ZeroOne()*(max))
#define RAND_INT(max) ((s32)(Rand_ZeroOne()*(max)))
+70 -11
View File
@@ -1,6 +1,63 @@
#ifndef 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_MASK(cmd) ((cmd) & (0x7F << 9))
#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_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_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_LOOP(count, cmd) EVENT_CMD(EVOP_LOOP, cmd, count)
#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_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_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_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_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_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_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_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_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_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_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_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_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_DAMAGE_TEAM(teamId, damage) EVENT_CMD(EVOP_DAMAGE_TEAM, damage, teamId)
@@ -176,7 +234,7 @@ typedef enum EventCondition {
/* 67 */ EVC_EXPERT_MODE,
/* 68 */ EVC_68,
/* 69 */ EVC_69,
/* 100 */ EVC_100=100,
/* 100 */ EVC_CLOSE_Z=100,
} EventCondition;
typedef enum EventState {
@@ -334,6 +392,7 @@ typedef enum EventActorInfo {
/* 107 */ EINFO_107,
/* 200 */ EINFO_200 = 200,
/* 300 */ EINFO_300 = 300,
/* 4095*/ EINFO_FFF = 4095,
} EventActorInfo;
typedef enum EventSfx {
+3 -3
View File
@@ -4,9 +4,9 @@
#include "libultra/ultra64.h"
#include "sf64math.h"
#define HITBOX_TYPE_2 200000.0f
#define HITBOX_TYPE_3 300000.0f
#define HITBOX_TYPE_4 400000.0f
#define HITBOX_ROTATED 200000.0f
#define HITBOX_SHADOW 300000.0f
#define HITBOX_WHOOSH 400000.0f
typedef struct {
/* 0x0 */ f32 offset;
+2 -2
View File
@@ -271,11 +271,11 @@ typedef struct Player {
/* 0x220 */ s32 timer_220;
/* 0x224 */ s32 timer_224;
/* 0x228 */ s32 flags_228;
/* 0x22C */ s32 unk_22C;
/* 0x22C */ s32 whooshTimer;
/* 0x230 */ s32 unk_230;
/* 0x234 */ s32 unk_234;
/* 0x238 */ s32 cockpitView;
/* 0x23C */ s32 unk_23C;
/* 0x23C */ s32 shadowing;
/* 0x240 */ s32 unk_240;
/* 0x244 */ s32 timer_244;
/* 0x248 */ f32 unk_248;
+3 -3
View File
@@ -103,7 +103,7 @@ extern OSContPad gControllerHold[4];
extern OSContPad gControllerPress[4];
extern u8 gControllerPlugged[4];
extern u32 gControllerLock;
extern u8 gControllerRumble[4];
extern u8 gControllerRumbleEnabled[4];
extern OSContPad sNextController[4]; //
extern OSContPad sPrevController[4]; //
extern OSContStatus sControllerStatus[4]; //
@@ -167,11 +167,11 @@ extern Lightsn* gLight;
extern FrameBuffer* gFrameBuffer;
extern u16* gTextureRender;
extern u8 D_80137E78;
extern u8 gVIsPerFrame;
extern u32 gSysFrameCount;
extern u8 gStartNMI;
extern u8 gStopTasks;
extern u8 D_80137E84[4];
extern u8 gControllerRumbleFlags[4];
extern u16 gFillScreenColor;
extern u16 gFillScreen;
+1 -1
View File
@@ -78,7 +78,7 @@ extern ObjectInit* gLevelObjectInits[];
extern u32 D_enmy_800CFF54[9];
// fox_enmy2
extern s32 D_enmy2_800CFF80[4];
extern s32 gTeamEventActorIndex[4];
extern s32 gCallVoiceParam;
// fox_hud
+1 -1
View File
@@ -60,7 +60,7 @@ D_800C45E0 = 0x800C45E0;
D_edisplay_801615D0 = 0x801615D0;//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_800CA23C = 0x800CA23C;//size:0x18
+3 -3
View File
@@ -516,7 +516,7 @@ D_ctx_80177B50 = 0x80177B50;
D_ctx_80177B70 = 0x80177B70;
D_ctx_80177B90 = 0x80177B90;
D_ctx_80177BB0 = 0x80177BB0;
D_Timer_80177BD0 = 0x80177BD0;
gControllerRumbleTimers = 0x80177BD0;
D_ctx_80177BD8 = 0x80177BD8;
D_ctx_80177C30 = 0x80177C30;
D_ctx_80177C50 = 0x80177C50;
@@ -550,7 +550,7 @@ D_ctx_80177D88 = 0x80177D88;
gBombCount = 0x80177DA0;
gGameFrameCount = 0x80177DB0;
D_ctx_80177DC8 = 0x80177DC8;
D_ctx_80177E70 = 0x80177E70;
gPrevEventActorIndex = 0x80177E70;
D_ctx_80177E78 = 0x80177E78;
gRingPassCount = 0x80177E80;
D_ctx_80177E88 = 0x80177E88; // size:0xC
@@ -763,7 +763,7 @@ Player_Update2 = 0x800B71E4;
func_play_800B73E0 = 0x800B73E0;
Play_UpdateLevel = 0x800B79B0;
Play_Update = 0x800B832C;
func_play_800B852C = 0x800B852C;
Play_SpawnVsItem = 0x800B852C;
func_play_800B86A4 = 0x800B86A4;
Play_Main = 0x800B86CC;
+3 -3
View File
@@ -11,7 +11,7 @@ gControllerHold = 0x800DD880; // size:0x18
gControllerPress = 0x800DD898; // size:0x18
gControllerPlugged = 0x800DD8B0; // size:0x4
gControllerLock = 0x800DD8B4; // size:0x4
gControllerRumble = 0x800DD8B8; // size:0x4
gControllerRumbleEnabled = 0x800DD8B8; // size:0x4
D_800DD8BC = 0x800DD8BC; // ignore:true
sNextController = 0x800DD8C0; // size:0x18
sPrevController = 0x800DD8D8; // size:0x18
@@ -75,11 +75,11 @@ gUnkDisp2 = 0x80137E68;
gLight = 0x80137E6C;
gFrameBuffer = 0x80137E70;
gTextureRender = 0x80137E74;
D_80137E78 = 0x80137E78;
gVIsPerFrame = 0x80137E78;
gSysFrameCount = 0x80137E7C;
gStartNMI = 0x80137E80;
gStopTasks = 0x80137E81;
D_80137E84 = 0x80137E84; // size:0x4
gControllerRumbleFlags = 0x80137E84; // size:0x4
gFillScreenColor = 0x80137E88;
gFillScreen = 0x80137E8A;
+14 -13
View File
@@ -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
View File
@@ -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);
+4 -4
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?
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;
+1 -1
View File
@@ -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
View File
@@ -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);
}
+2 -2
View File
@@ -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);
+4 -4
View File
@@ -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;
}
}
+8 -8
View File
@@ -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;
+7 -6
View File
@@ -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;

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