This commit is contained in:
fgsfds committed 2023-08-06 18:52:09 +02:00
commit eb8c4e9ee9
113 files changed
+1523 -1597

No files matched your search

+1 -1
View File
@@ -208,7 +208,7 @@ struct fx {
s16 unk00;
s16 unk02;
s32 unk04;
s16 unk08[8];
s16 unk08[16];
};
typedef struct N_ALVoiceState_s {
+1 -1
View File
@@ -325,7 +325,7 @@ void mainLoop(void)
argGetLevel(&g_StageNum);
if (g_DoBootPakMenu) {
g_Vars.unk0004e4 = 0xfd;
g_Vars.pakstocheck = 0xfd;
g_StageNum = STAGE_BOOTPAKMENU;
}
+1 -24
View File
@@ -11,17 +11,6 @@
#include "romdata.h"
#include "game/setuputils.h"
/*
#define PD_SWAP_VAL(x)
#define PD_SWAP_VAL(x)
#define PD_SWAP_VAL(u32 *)&x)
#define PD_SWAP_PTR(x) x = (void *)PD_BE32((u32)x)
#define PD_SWAP_VAL(v) \
PD_SWAP_VAL(v.x); \
PD_SWAP_VAL(v.y); \
PD_SWAP_VAL(v.z)
*/
static inline f32 swapF32(f32 x) { *(u32 *)&x = PD_BE32(*(u32 *)&x); return x; }
static inline u32 swapU32(u32 x) { return PD_BE32(x); }
static inline s32 swapS32(s32 x) { return PD_BE32(x); }
@@ -489,19 +478,7 @@ static inline void preprocessTvScreenPropObj(struct tvscreen *scr)
static inline void preprocessHovPropObj(struct hov *hov)
{
PD_SWAP_VAL(hov->unk04);
PD_SWAP_VAL(hov->unk08);
PD_SWAP_VAL(hov->unk0c);
PD_SWAP_VAL(hov->unk10);
PD_SWAP_VAL(hov->unk14);
PD_SWAP_VAL(hov->unk18);
PD_SWAP_VAL(hov->unk1c);
PD_SWAP_VAL(hov->unk20);
PD_SWAP_VAL(hov->unk24);
PD_SWAP_VAL(hov->unk28);
PD_SWAP_VAL(hov->unk2c);
PD_SWAP_VAL(hov->unk30);
PD_SWAP_VAL(hov->ground);
// don't think anything actually has to be swapped here
}
static void preprocessPropObj(struct defaultobj *obj)
+25 -25
View File
@@ -89,12 +89,12 @@ u32 var800a4920;
u32 g_BgSection3;
struct room *g_Rooms;
u8 *g_MpRoomVisibility;
s16 g_BgForceOnscreenRooms[350];
RoomNum g_BgForceOnscreenRooms[350];
s32 g_BgNumForceOnscreenRooms;
u16 g_BgUnloadDelay240;
u16 g_BgUnloadDelay240_2;
u32 var800a4bf4;
s16 g_GlareRooms[100];
RoomNum g_GlareRooms[100];
u32 *g_BgPrimaryData2;
struct bgroom *g_BgRooms;
struct bgportal *g_BgPortals;
@@ -138,7 +138,7 @@ void bgUnpausePropsInRoom(u32 roomnum, bool tintedglassonly)
struct prop *prop;
struct defaultobj *obj;
s16 *propnumptr;
s16 rooms[2];
RoomNum rooms[2];
s16 propnums[256];
rooms[0] = roomnum;
@@ -872,11 +872,11 @@ Gfx *bgRenderRoomInXray(Gfx *gdl, s32 roomnum)
Gfx *bgRenderSceneInXray(Gfx *gdl)
{
s16 *roomnumptr;
s16 *room;
RoomNum *roomnumptr;
RoomNum *room;
s16 i;
s32 j;
s16 roomnumsbyprop[200];
RoomNum roomnumsbyprop[200];
struct prop *prop;
struct prop **ptr;
s32 k;
@@ -972,15 +972,15 @@ Gfx *bgRenderScene(Gfx *gdl)
s32 firstroomnum = -1;
s32 i;
s32 roomnum;
s16 roomnumsbyprop[200];
RoomNum roomnumsbyprop[200];
struct prop **ptr;
struct drawslot *thing;
s16 *roomnumptr;
RoomNum *roomnumptr;
struct prop *prop;
s16 tmp;
s16 *room;
RoomNum *room;
s16 roomorder[60];
s16 roomnums[60];
RoomNum roomnums[60];
g_NumRoomsWithGlares = 0;
@@ -4649,7 +4649,7 @@ bool bgRoomIsLoaded(s32 room)
return g_Rooms[room].loaded240;
}
bool bgRoomContainsCoord(struct coord *pos, s16 roomnum)
bool bgRoomContainsCoord(struct coord *pos, RoomNum roomnum)
{
struct coord copy;
copy.x = pos->x;
@@ -4676,7 +4676,7 @@ bool bgRoomContainsCoord(struct coord *pos, s16 roomnum)
* - The normal points towards the front of the portal.
* - The room on the front side is roomnum2.
*/
bool bgTestPosInRoomCheap(struct coord *pos, s16 roomnum)
bool bgTestPosInRoomCheap(struct coord *pos, RoomNum roomnum)
{
s32 i;
@@ -4702,7 +4702,7 @@ bool bgTestPosInRoomCheap(struct coord *pos, s16 roomnum)
return true;
}
bool bgTestPosInRoomExpensive(struct coord *pos, s16 roomnum)
bool bgTestPosInRoomExpensive(struct coord *pos, RoomNum roomnum)
{
s32 t5;
struct coord *next;
@@ -4810,7 +4810,7 @@ bool bgTestPosInRoomExpensive(struct coord *pos, s16 roomnum)
return true;
}
bool bgTestPosInRoom(struct coord *pos, s16 roomnum)
bool bgTestPosInRoom(struct coord *pos, RoomNum roomnum)
{
if (g_Rooms[roomnum].flags & ROOMFLAG_COMPLICATEDPORTALS) {
return bgTestPosInRoomExpensive(pos, roomnum);
@@ -4839,7 +4839,7 @@ bool bgTestPosInRoom(struct coord *pos, s16 roomnum)
* to pos and writes the room number to the bestroom pointer. The bestroom
* pointer is a pointer to a single s16 rather than an array.
*/
void bgFindRoomsByPos(struct coord *posarg, s16 *inrooms, s16 *aboverooms, s32 max, s16 *bestroom)
void bgFindRoomsByPos(struct coord *posarg, RoomNum *inrooms, RoomNum *aboverooms, s32 max, RoomNum *bestroom)
{
s32 inlen = 0;
s32 abovelen = 0;
@@ -5362,7 +5362,7 @@ void bgTickPortalsXray(void)
bgChooseRoomsToLoad();
}
void bgAddToSnake(s16 fromroomnum, s16 roomnum, s16 depth, struct screenbox *box)
void bgAddToSnake(RoomNum fromroomnum, RoomNum roomnum, s16 depth, struct screenbox *box)
{
struct bgsnakeitem *item;
s32 i;
@@ -5449,10 +5449,10 @@ void bgConsumeSnakeItem(struct bgsnakeitem *item)
s32 i;
s16 portalnum;
s16 prevvalidcount;
s16 prevfoundroom;
s16 newfoundroom;
RoomNum prevfoundroom;
RoomNum newfoundroom;
s16 side;
s16 tmp;
RoomNum tmp;
bool pass;
struct portalmetric *metric;
struct screenbox prevbox;
@@ -5862,7 +5862,7 @@ Gfx *bgRenderSceneAndLoadCandidate(Gfx *gdl)
return gdl;
}
s32 bgGetForceOnscreenRooms(s16 *rooms, s32 len)
s32 bgGetForceOnscreenRooms(RoomNum *rooms, s32 len)
{
s32 i;
@@ -5875,7 +5875,7 @@ s32 bgGetForceOnscreenRooms(s16 *rooms, s32 len)
return i;
}
s32 bgRoomGetNeighbours(s32 roomnum, s16 *dstrooms, s32 len)
s32 bgRoomGetNeighbours(s32 roomnum, RoomNum *dstrooms, s32 len)
{
s32 count = 0;
s32 i;
@@ -6021,7 +6021,7 @@ bool bgPortalExists(s32 portalnum)
void bgPortalSwapRooms(s32 portal)
{
s16 tmp = g_BgPortals[portal].roomnum1;
RoomNum tmp = g_BgPortals[portal].roomnum1;
g_BgPortals[portal].roomnum1 = g_BgPortals[portal].roomnum2;
g_BgPortals[portal].roomnum2 = tmp;
}
@@ -6240,10 +6240,10 @@ void bgCalculatePortalBbox(s32 portalnum, struct coord *bbmin, struct coord *bbm
}
}
void bgFindEnteredRooms(struct coord *bbmin, struct coord *bbmax, s16 *rooms, s32 maxlen, bool arg4)
void bgFindEnteredRooms(struct coord *bbmin, struct coord *bbmax, RoomNum *rooms, s32 maxlen, bool arg4)
{
s16 room;
s16 otherroom;
RoomNum room;
RoomNum otherroom;
s32 portalnum;
struct coord propbbmin;
struct coord propbbmax;
+3 -3
View File
@@ -346,7 +346,7 @@ s32 bodyChooseHead(s32 bodynum)
void bodyAllocateChr(s32 stagenum, struct packedchr *packed, s32 cmdindex)
{
struct pad pad;
s16 rooms[2];
RoomNum rooms[2];
struct chrdata *chr;
struct modeldef *headmodeldef;
struct model *model;
@@ -531,9 +531,9 @@ void bodyAllocateChr(s32 stagenum, struct packedchr *packed, s32 cmdindex)
}
}
struct prop *bodyAllocateEyespy(struct pad *pad, s16 room)
struct prop *bodyAllocateEyespy(struct pad *pad, RoomNum room)
{
s16 rooms[2];
RoomNum rooms[2];
struct prop *prop;
struct chrdata *chr;
struct model *model;
+7 -7
View File
@@ -107,7 +107,7 @@ void bbikeTryDismountAngle(f32 relativeangle, f32 distance)
struct hoverbikeobj *bike;
f32 angle;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
s32 result;
f32 ymax;
f32 ymin;
@@ -281,10 +281,10 @@ void bbikeApplyMoveData(struct movedata *data)
sp3c = -bike->exreal;
if (bike->hov.unk14 < M_PI) {
sp3c += -bike->hov.unk14 * 0.8f;
if (bike->hov.bobpitchcur < M_PI) {
sp3c += -bike->hov.bobpitchcur * 0.8f;
} else {
sp3c += (M_BADTAU - bike->hov.unk14) * 0.8f;
sp3c += (M_BADTAU - bike->hov.bobpitchcur) * 0.8f;
}
if (sp3c < 0) {
@@ -371,11 +371,11 @@ s32 bbikeCalculateNewPosition(struct coord *vel, f32 angledelta)
{
s32 result = CDRESULT_NOCOLLISION;
struct coord dstpos;
s16 dstrooms[8];
RoomNum dstrooms[8];
struct hov hov;
bool hasvel = false;
struct hoverbikeobj *bike = (struct hoverbikeobj *) g_Vars.currentplayer->hoverbike->obj;
s16 spa8[20];
RoomNum spa8[20];
f32 xdiff;
f32 zdiff;
f32 ymax;
@@ -530,7 +530,7 @@ void bbikeUpdateVertical(struct coord *pos)
{
struct defaultobj *bike = g_Vars.currentplayer->hoverbike->obj;
f32 angle;
s16 newrooms[8];
RoomNum newrooms[8];
bool newinlift;
struct prop *lift = NULL;
f32 ground;
+6 -6
View File
@@ -39,7 +39,7 @@ u32 g_EyespyMaxFallSpeed = 3000;
* position 50 units above the current position, or less if the eyespy is near
* the top of its height range.
*/
f32 eyespyFindGround(s16 *floorroom)
f32 eyespyFindGround(RoomNum *floorroom)
{
struct prop *prop = g_Vars.currentplayer->eyespy->prop;
s32 inlift;
@@ -75,7 +75,7 @@ s32 eyespyTryMoveUpwards(f32 yvel)
struct prop *prop = g_Vars.currentplayer->eyespy->prop;
struct chrdata *chr = prop->chr;
struct coord dstpos;
s16 dstrooms[8];
RoomNum dstrooms[8];
s32 types;
u32 stack;
f32 f0;
@@ -118,9 +118,9 @@ s32 eyespyCalculateNewPosition(struct coord *vel)
struct prop *eyespyprop = g_Vars.currentplayer->eyespy->prop;
struct chrdata *chr = eyespyprop->chr;
struct coord dstpos;
s16 dstrooms[8];
s16 floorroom;
s16 sp74[24];
RoomNum dstrooms[8];
RoomNum floorroom;
RoomNum sp74[24];
s32 types;
s32 i;
f32 ymin;
@@ -713,7 +713,7 @@ void eyespyProcessInput(bool allowbuttons)
f32 angle;
f32 ascendspeed = 0.0f;
f32 prevverta = g_Vars.currentplayer->eyespy->verta;
s16 prevrooms[8];
RoomNum prevrooms[8];
s32 contpad2;
u32 stack[5];
f32 tmp;
+7 -7
View File
@@ -84,7 +84,7 @@ void bgrabInit(void)
if (hov) {
g_Vars.currentplayer->grabbedrotoffset =
hov->unk10 - (M_BADTAU - (g_Vars.currentplayer->vv_theta * M_BADTAU) / 360.0f);
hov->yrot - (M_BADTAU - (g_Vars.currentplayer->vv_theta * M_BADTAU) / 360.0f);
if (g_Vars.currentplayer->grabbedrotoffset >= M_BADTAU) {
g_Vars.currentplayer->grabbedrotoffset -= M_BADTAU;
@@ -284,7 +284,7 @@ bool bgrabTryMoveUpwards(f32 y)
{
bool result;
struct coord newpos;
s16 rooms[8];
RoomNum rooms[8];
f32 ymax;
f32 ymin;
f32 radius;
@@ -320,7 +320,7 @@ s32 bgrabCalculateNewPosition(struct coord *delta, f32 angle, bool arg2)
s32 cdresult = CDRESULT_NOCOLLISION;
s32 i;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
bool ismoving = false;
f32 ymax;
f32 ymin;
@@ -448,7 +448,7 @@ s32 bgrabCalculateNewPosition(struct coord *delta, f32 angle, bool arg2)
- g_Vars.currentplayer->vv_theta * M_BADTAU / 360.0f
+ -angle
+ g_Vars.currentplayer->grabbedrotoffset
- hov->unk10
- hov->yrot
+ rotextra;
while (sp78 >= M_PI) {
@@ -1038,7 +1038,7 @@ void bgrab0f0ce924(void)
g_Vars.currentplayer->speedforwards += sp70;
g_Vars.currentplayer->speedsideways += sp6c;
mult = var80075c00[1].unk0c * 0.5f * g_Vars.lvupdate60freal;
mult = g_HeadAnims[HEADANIM_MOVING].translateperframe * 0.5f * g_Vars.lvupdate60freal;
sp88 = mult * g_Vars.currentplayer->speedsideways;
speedsideways = g_Vars.currentplayer->speedsideways * 0.8f;
@@ -1149,7 +1149,7 @@ void bgrab0f0ce924(void)
sp3c = -1.0f;
}
if (g_Vars.currentplayer->headanim == 1) {
if (g_Vars.currentplayer->headanim == HEADANIM_MOVING) {
breathing *= 1.2f;
}
@@ -1207,7 +1207,7 @@ void bgrabTick(void)
if (g_Vars.currentplayer->grabbedprop) {
// Determine if the grabbed prop should be force released
f32 ydiff = g_Vars.currentplayer->grabbedprop->pos.y
- objGetHov04(g_Vars.currentplayer->grabbedprop->obj)
- objGetHovBobOffsetY(g_Vars.currentplayer->grabbedprop->obj)
- g_Vars.currentplayer->vv_manground;
struct prop *grabbedprop = g_Vars.currentplayer->grabbedprop;
+7 -7
View File
@@ -4280,7 +4280,7 @@ struct modeldef *bgunGetCartModeldef(void)
return g_Vars.currentplayer->gunctrl.cartmodeldef;
}
void bgun0f09ebcc(struct defaultobj *obj, struct coord *coord, s16 *rooms, Mtxf *matrix1, struct coord *velocity, Mtxf *matrix2, struct prop *prop, struct coord *pos)
void bgun0f09ebcc(struct defaultobj *obj, struct coord *coord, RoomNum *rooms, Mtxf *matrix1, struct coord *velocity, Mtxf *matrix2, struct prop *prop, struct coord *pos)
{
struct prop *objprop = obj->prop;
@@ -4325,7 +4325,7 @@ void bgun0f09ed2c(struct defaultobj *obj, struct coord *newpos, Mtxf *arg2, stru
{
struct prop *objprop = obj->prop;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
if (objprop) {
struct prop *playerprop = g_Vars.currentplayer->prop;
@@ -4348,7 +4348,7 @@ void bgun0f09ed2c(struct defaultobj *obj, struct coord *newpos, Mtxf *arg2, stru
}
}
struct defaultobj *bgunCreateThrownProjectile2(struct chrdata *chr, struct gset *gset, struct coord *pos, s16 *rooms, Mtxf *arg4, struct coord *velocity)
struct defaultobj *bgunCreateThrownProjectile2(struct chrdata *chr, struct gset *gset, struct coord *pos, RoomNum *rooms, Mtxf *arg4, struct coord *velocity)
{
struct defaultobj *obj = NULL;
struct weaponfunc *basefunc;
@@ -4457,7 +4457,7 @@ void bgunCreateThrownProjectile(s32 handnum, struct gset *gset)
struct weaponobj *weapon;
struct coord muzzlepos;
struct coord spawnpos;
s16 spawnrooms[8];
RoomNum spawnrooms[8];
bool droppinggrenade = false;
struct hand *hand;
struct coord aimpos;
@@ -6748,7 +6748,7 @@ void bgunUpdateSmoke(struct hand *hand, s32 handnum, s32 weaponnum, struct weapo
if (hand->createsmoke && (hand->state != HANDSTATE_ATTACK || hand->forcecreatesmoke)) {
struct coord smokepos;
s16 smokerooms[2];
RoomNum smokerooms[2];
s32 smoketype = SMOKETYPE_MUZZLE_AUTOMATIC;
switch (weaponnum) {
@@ -11415,7 +11415,7 @@ void bgunPlayPropHitSound(struct gset *gset, struct prop *prop, s32 texturenum)
#endif
}
void bgunPlayGlassHitSound(struct coord *pos, s16 *rooms, s32 texturenum)
void bgunPlayGlassHitSound(struct coord *pos, RoomNum *rooms, s32 texturenum)
{
if (g_Vars.lvupdate240 > 0) {
struct sndstate **handle = bgunAllocateAudioHandle();
@@ -11430,7 +11430,7 @@ void bgunPlayGlassHitSound(struct coord *pos, s16 *rooms, s32 texturenum)
}
}
void bgunPlayBgHitSound(struct gset *gset, struct coord *hitpos, s32 texturenum, s16 *rooms)
void bgunPlayBgHitSound(struct gset *gset, struct coord *hitpos, s32 texturenum, RoomNum *rooms)
{
#if VERSION >= VERSION_NTSC_1_0
struct sndstate **handle;
+24 -26
View File
@@ -11,13 +11,11 @@
#include "data.h"
#include "types.h"
struct var80075c00 var80075c00[] = {
struct headanim g_HeadAnims[] = {
{ ANIM_002B, 9.5, 27, 0, 0, 1.5 },
{ ANIM_0029, 7.5, 17, 0, 1.5, 100 },
};
struct coord var80075c30 = {0, 0, 0};
void bheadFlipAnimation(void)
{
g_Vars.currentplayer->model.anim->flip = !g_Vars.currentplayer->model.anim->flip;
@@ -96,7 +94,7 @@ void bheadUpdateRot(struct coord *lookvel, struct coord *upvel)
g_Vars.currentplayer->headup.z = g_Vars.currentplayer->headupsum.z * (1.0f - g_Vars.currentplayer->headdamp);
}
void bheadSetdamp(f32 headdamp)
void bheadSetDamp(f32 headdamp)
{
if (headdamp != g_Vars.currentplayer->headdamp) {
f32 divisor = 1.0f - headdamp;
@@ -112,7 +110,7 @@ void bheadSetdamp(f32 headdamp)
void bheadUpdate(f32 arg0, f32 arg1)
{
struct coord headpos = var80075c30;
struct coord headpos = {0, 0, 0};
struct coord lookvel = {0, 0, 1};
struct coord upvel = {0, 1, 0};
f32 animspeed = 0;
@@ -120,7 +118,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
if (animHasFrames(g_Vars.currentplayer->model.anim->animnum)) {
animspeed = modelGetAbsAnimSpeed(&g_Vars.currentplayer->model);
if (g_Vars.currentplayer->headanim == 0) {
if (g_Vars.currentplayer->headanim == HEADANIM_RESTING) {
if (animspeed > 0.69999998807907f) {
g_Vars.currentplayer->headamplitude = 1;
} else if (animspeed > 0.1f) {
@@ -131,7 +129,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
g_Vars.currentplayer->sideamplitude = g_Vars.currentplayer->headamplitude;
} else {
if (g_Vars.currentplayer->headanim == 1) {
if (g_Vars.currentplayer->headanim == HEADANIM_MOVING) {
g_Vars.currentplayer->headamplitude = 0.89999997615814f;
g_Vars.currentplayer->sideamplitude = 0.5f;
} else {
@@ -197,9 +195,9 @@ void bheadUpdate(f32 arg0, f32 arg1)
g_Vars.currentplayer->headwalkingtime60 += g_Vars.lvupdate60;
if (g_Vars.currentplayer->headwalkingtime60 > TICKS(60)) {
bheadSetdamp(PAL ? 0.9785f : 0.982f);
bheadSetDamp(PAL ? 0.9785f : 0.982f);
} else {
bheadSetdamp(PAL ? 0.99699f : 0.99748998880386f);
bheadSetDamp(PAL ? 0.99699f : 0.99748998880386f);
}
} else {
lookvel.x = g_Vars.currentplayer->bondheadmatrices[0].m[2][0];
@@ -210,7 +208,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
upvel.y = g_Vars.currentplayer->bondheadmatrices[0].m[1][1];
upvel.z = g_Vars.currentplayer->bondheadmatrices[0].m[1][2];
bheadSetdamp(PAL ? 0.952f : 0.96f);
bheadSetDamp(PAL ? 0.952f : 0.96f);
}
} else {
g_Vars.currentplayer->headbodyoffset.x = g_Vars.currentplayer->standbodyoffset.x;
@@ -222,7 +220,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
headpos.z = 0;
g_Vars.currentplayer->headwalkingtime60 = 0;
bheadSetdamp(PAL ? 0.99699f : 0.99748998880386f);
bheadSetDamp(PAL ? 0.99699f : 0.99748998880386f);
if (bmoveGetCrouchPos() != CROUCHPOS_SQUAT) {
g_Vars.currentplayer->standfrac +=
@@ -261,31 +259,31 @@ void bheadAdjustAnimation(f32 speed)
struct chrdata *chr = g_Vars.currentplayer->prop->chr;
s32 i;
speed *= var80075c00[1].unk0c;
speed *= g_HeadAnims[HEADANIM_MOVING].translateperframe;
for (i = 0; i < 2; i++) {
if (var80075c00[i].unk14 * var80075c00[i].unk0c >= speed) {
s32 headanim = g_Vars.currentplayer->headanim;
for (i = 0; i < ARRAYCOUNT(g_HeadAnims); i++) {
if (g_HeadAnims[i].maxspeed * g_HeadAnims[i].translateperframe >= speed) {
s32 prevheadanim = g_Vars.currentplayer->headanim;
if (i != headanim) {
if (i != prevheadanim) {
f32 startframe = 0.0f;
if (headanim >= 0) {
startframe = (g_Vars.currentplayer->model.anim->frame - var80075c00[headanim].loopframe)
/ (var80075c00[headanim].endframe - var80075c00[headanim].loopframe);
startframe = var80075c00[i].loopframe + (var80075c00[i].endframe - var80075c00[i].loopframe) * startframe;
if (prevheadanim >= 0) {
startframe = (g_Vars.currentplayer->model.anim->frame - g_HeadAnims[prevheadanim].loopframe)
/ (g_HeadAnims[prevheadanim].endframe - g_HeadAnims[prevheadanim].loopframe);
startframe = g_HeadAnims[i].loopframe + (g_HeadAnims[i].endframe - g_HeadAnims[i].loopframe) * startframe;
}
modelSetAnimation(&g_Vars.currentplayer->model, var80075c00[i].animnum,
modelSetAnimation(&g_Vars.currentplayer->model, g_HeadAnims[i].animnum,
g_Vars.currentplayer->model.anim->flip, startframe, 0.5f, 12);
modelSetAnimLooping(&g_Vars.currentplayer->model, var80075c00[i].loopframe, false);
modelSetAnimEndFrame(&g_Vars.currentplayer->model, var80075c00[i].endframe);
modelSetAnimLooping(&g_Vars.currentplayer->model, g_HeadAnims[i].loopframe, false);
modelSetAnimEndFrame(&g_Vars.currentplayer->model, g_HeadAnims[i].endframe);
modelSetAnimFlipFunction(&g_Vars.currentplayer->model, bheadFlipAnimation);
g_Vars.currentplayer->headanim = i;
}
speed = speed / var80075c00[i].unk0c;
speed = speed / g_HeadAnims[i].translateperframe;
modelSetAnimSpeed(&g_Vars.currentplayer->model, speed * 0.5f, 0);
break;
@@ -309,11 +307,11 @@ void bheadSetSpeed(f32 speed)
f32 bheadGetBreathingValue(void)
{
if (g_Vars.currentplayer->headanim >= 0) {
f32 a = g_Vars.currentplayer->bondbreathing * 0.012500001f + 0.004166667f;
f32 a = g_Vars.currentplayer->bondbreathing * 0.012500001f + (1.0f / 240.0f);
f32 b = modelGetAbsAnimSpeed(&g_Vars.currentplayer->model);
if (b > 0) {
f32 c = b / (var80075c00[g_Vars.currentplayer->headanim].endframe - var80075c00[g_Vars.currentplayer->headanim].loopframe);
f32 c = b / (g_HeadAnims[g_Vars.currentplayer->headanim].endframe - g_HeadAnims[g_Vars.currentplayer->headanim].loopframe);
if (c < a) {
c = a;
+8 -12
View File
@@ -39,7 +39,7 @@ void bheadReset(void)
modelSetScale(&g_Vars.currentplayer->model, 0.1000000089407f);
modelSetAnimPlaySpeed(&g_Vars.currentplayer->model, (PAL ? 1.2f : 1), 0);
g_Vars.currentplayer->headanim = 0;
g_Vars.currentplayer->headanim = HEADANIM_RESTING;
g_Vars.currentplayer->headdamp = (PAL ? 0.9166f : 0.93f);
g_Vars.currentplayer->headwalkingtime60 = 0;
g_Vars.currentplayer->headamplitude = 1;
@@ -87,10 +87,10 @@ void bheadReset(void)
g_Vars.currentplayer->standup[1].z = 0;
g_Vars.currentplayer->standcnt = 0;
for (i = 0; i < 2; i++) {
for (i = 0; i < ARRAYCOUNT(g_HeadAnims); i++) {
s32 translate[3];
func0f0125a0(var80075c00[i].animnum, var80075c00[i].loopframe, var80075c00[i].endframe, translate);
var80075c00[i].unk0c = (translate[2] * 0.1000000089407f) / (var80075c00[i].endframe - var80075c00[i].loopframe);
func0f0125a0(g_HeadAnims[i].animnum, g_HeadAnims[i].loopframe, g_HeadAnims[i].endframe, translate);
g_HeadAnims[i].translateperframe = (translate[2] * 0.1000000089407f) / (g_HeadAnims[i].endframe - g_HeadAnims[i].loopframe);
}
{
@@ -112,17 +112,13 @@ void bheadReset(void)
g_Vars.currentplayer->standbodyoffset.z = g_Vars.currentplayer->bondheadmatrices[1].m[3][2] - g_Vars.currentplayer->bondheadmatrices[0].m[3][2];
modelSetAnimation(&g_Vars.currentplayer->model,
var80075c00[g_Vars.currentplayer->headanim].animnum,
g_HeadAnims[g_Vars.currentplayer->headanim].animnum,
0,
var80075c00[g_Vars.currentplayer->headanim].loopframe,
g_HeadAnims[g_Vars.currentplayer->headanim].loopframe,
0.5f, 0);
modelSetAnimLooping(&g_Vars.currentplayer->model,
var80075c00[g_Vars.currentplayer->headanim].loopframe, 0);
modelSetAnimEndFrame(&g_Vars.currentplayer->model,
var80075c00[g_Vars.currentplayer->headanim].endframe);
modelSetAnimLooping(&g_Vars.currentplayer->model, g_HeadAnims[g_Vars.currentplayer->headanim].loopframe, 0);
modelSetAnimEndFrame(&g_Vars.currentplayer->model, g_HeadAnims[g_Vars.currentplayer->headanim].endframe);
modelSetAnimFlipFunction(&g_Vars.currentplayer->model, bheadFlipAnimation);
bheadUpdateIdleRoll();
+6 -6
View File
@@ -397,7 +397,7 @@ f32 bmoveCalculateLookahead(void)
struct coord sp100;
u32 stack;
struct coord spf0;
s16 spe0[8];
RoomNum spe0[8];
s32 i;
f32 angle;
f32 value;
@@ -406,9 +406,9 @@ f32 bmoveCalculateLookahead(void)
u32 stack6;
struct coord spbc;
struct coord spb0;
s16 spa0[8];
s16 sp90[8];
s16 sp80[8];
RoomNum spa0[8];
RoomNum sp90[8];
RoomNum sp80[8];
s32 j;
f32 sp78;
s32 indextoremove;
@@ -1850,7 +1850,7 @@ void bmoveProcessInput(bool allowc1x, bool allowc1y, bool allowc1buttons, bool i
}
}
void bmoveFindEnteredRoomsByPos(struct player *player, struct coord *mid, s16 *rooms)
void bmoveFindEnteredRoomsByPos(struct player *player, struct coord *mid, RoomNum *rooms)
{
struct coord bbmin;
struct coord bbmax;
@@ -1868,7 +1868,7 @@ void bmoveFindEnteredRoomsByPos(struct player *player, struct coord *mid, s16 *r
bgFindEnteredRooms(&bbmin, &bbmax, rooms, 7, false);
}
void bmoveFindEnteredRooms(struct player *player, s16 *rooms)
void bmoveFindEnteredRooms(struct player *player, RoomNum *rooms)
{
bmoveFindEnteredRoomsByPos(player, &player->prop->pos, rooms);
}
+8 -8
View File
@@ -187,7 +187,7 @@ s32 bwalkTryMoveUpwards(f32 amount)
{
bool result;
struct coord newpos;
s16 rooms[8];
RoomNum rooms[8];
u32 stack;
u32 types;
f32 ymax;
@@ -235,9 +235,9 @@ bool bwalkCalculateNewPosition(struct coord *vel, f32 rotateamount, bool apply,
s32 result = CDRESULT_NOCOLLISION;
f32 halfradius;
struct coord dstpos;
s16 dstrooms[8];
RoomNum dstrooms[8];
bool copyrooms = false;
s16 sp64[22];
RoomNum sp64[22];
s32 types;
f32 ymax;
f32 ymin;
@@ -392,7 +392,7 @@ bool bwalkCalculateNewPositionWithPush(struct coord *delta, f32 rotateamount, bo
} else if (obstacle->type == PROPTYPE_CHR) {
struct chrdata *chr = obstacle->chr;
struct coord newpos;
s16 newrooms[8];
RoomNum newrooms[8];
f32 movingdist;
f32 xdist;
f32 zdist;
@@ -713,10 +713,10 @@ void bwalkUpdateVertical(void)
f32 ground;
bool onladder;
bool onladder2 = false;
s16 rooms[8];
RoomNum rooms[8];
struct coord testpos;
struct coord newpos;
s16 newrooms[8];
RoomNum newrooms[8];
s32 newinlift;
struct prop *lift = NULL;
f32 sumground;
@@ -1543,7 +1543,7 @@ void bwalk0f0c69b8(void)
g_Vars.currentplayer->bondbreathing = 1.0f;
}
mult = var80075c00[1].unk0c * 0.5f * g_Vars.lvupdate60freal;
mult = g_HeadAnims[HEADANIM_MOVING].translateperframe * 0.5f * g_Vars.lvupdate60freal;
spe0 = (g_Vars.currentplayer->speedsideways * spc0 + spc4) * mult;
#if VERSION >= VERSION_NTSC_1_0
@@ -1728,7 +1728,7 @@ void bwalk0f0c69b8(void)
sp40 = -1.0f;
}
if (g_Vars.currentplayer->headanim == 1) {
if (g_Vars.currentplayer->headanim == HEADANIM_MOVING) {
breathing *= 1.2f;
}
+6 -6
View File
@@ -227,7 +227,7 @@ void botSpawn(struct chrdata *chr, u8 respawning)
struct defaultobj *obj;
struct aibot *aibot = chr->aibot;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
if (chr->prop) {
prop = chr->prop->child;
@@ -660,8 +660,8 @@ void botCheckPickups(struct chrdata *chr)
s32 i;
s16 *propnumptr;
s16 propnums[260];
s16 allrooms[22];
s16 neighbours[12];
RoomNum allrooms[22];
RoomNum neighbours[12];
roomsCopy(chr->prop->rooms, allrooms);
@@ -1208,7 +1208,7 @@ void botApplyProtect(struct chrdata *chr, struct prop *prop)
chr->aibot->forcemainloop = true;
}
void botApplyDefend(struct chrdata *chr, struct coord *pos, s16 *room, f32 angle)
void botApplyDefend(struct chrdata *chr, struct coord *pos, RoomNum *room, f32 angle)
{
chr->aibot->command = AIBOTCMD_DEFEND;
chr->aibot->defendholdpos.x = pos->x;
@@ -1219,7 +1219,7 @@ void botApplyDefend(struct chrdata *chr, struct coord *pos, s16 *room, f32 angle
chr->aibot->forcemainloop = true;
}
void botApplyHold(struct chrdata *chr, struct coord *pos, s16 *room, f32 angle)
void botApplyHold(struct chrdata *chr, struct coord *pos, RoomNum *room, f32 angle)
{
chr->aibot->command = AIBOTCMD_HOLD;
chr->aibot->defendholdpos.x = pos->x;
@@ -1521,7 +1521,7 @@ void botChooseGeneralTarget(struct chrdata *botchr)
s32 i;
s32 j;
bool distancesdone[MAX_MPCHRS];
s16 room = -1;
RoomNum room = -1;
struct chrdata *trychr;
s32 playernum;
+2 -2
View File
@@ -440,7 +440,7 @@ s32 botactGetShootInterval60(s32 weaponnum, s32 funcnum)
*
* Return true if a route was found, false if not.
*/
bool botactFindRocketRoute(struct chrdata *chr, struct coord *frompos, struct coord *topos, s16 *fromrooms, s16 *torooms, struct projectile *projectile)
bool botactFindRocketRoute(struct chrdata *chr, struct coord *frompos, struct coord *topos, RoomNum *fromrooms, RoomNum *torooms, struct projectile *projectile)
{
struct waypoint *from = waypointFindClosestToPos(frompos, fromrooms);
struct waypoint *to = waypointFindClosestToPos(topos, torooms);
@@ -479,7 +479,7 @@ bool botactFindRocketRoute(struct chrdata *chr, struct coord *frompos, struct co
void botactGetRocketNextStepPos(u16 padnum, struct coord *pos)
{
struct pad pad;
s16 rooms[2];
RoomNum rooms[2];
padUnpack(padnum, PADFIELD_ROOM | PADFIELD_POS, &pad);
+1 -1
View File
@@ -28,7 +28,7 @@ void botmgrRemoveAll(void)
void botmgrAllocateBot(s32 chrnum, s32 aibotnum)
{
s16 rooms[1];
RoomNum rooms[1];
struct prop *prop;
struct chrdata *chr;
struct aibot *aibot;
+5 -5
View File
@@ -46,16 +46,16 @@
* It's likely that these don't ever overflow, or they overflow minimally which
* has no serious effect, but this should be investigated further.
*/
bool botroomFindPos(s16 room, struct coord *pos, f32 *angleptr, s32 *padnumptr, s32 *covernumptr)
bool botroomFindPos(RoomNum room, struct coord *pos, f32 *angleptr, s32 *padnumptr, s32 *covernumptr)
{
s32 i;
struct waypoint *waypoint;
s32 waypointnum;
s32 covernums[40]; /// written to stack
s32 covernums[40];
s32 covercount;
struct cover cover; // written to stack
s16 rooms[2]; // written to stack
s32 padnums[40]; // written to stack
struct cover cover;
RoomNum rooms[2];
s32 padnums[40];
s32 padcount;
s32 totalcount;
struct pad pad;
+15 -15
View File
@@ -948,7 +948,7 @@ void func0f14aee0(void)
thing->unk078 = 0;
pak0f117150(i, thing->unk0d8);
pak0f1171b4(SAVEDEVICE_CONTROLLERPAK1, 3, 0);
pak0f1171b4(SAVEDEVICE_CONTROLLERPAK1, PAK00C_03, 0);
func0f14aed0(i);
thing->unk094 = 0;
@@ -1200,7 +1200,7 @@ void func0f14b8ac(s32 index)
}
switch (pakGetUnk008(func0f14a5a4())) {
case 12:
case PAK008_12:
func0f14a95c();
func0f14aa48();
func0f14e790(var800a45a0->unk470);
@@ -1209,10 +1209,10 @@ void func0f14b8ac(s32 index)
func0f14a16c(1);
func0f14bc04();
break;
case 1:
case PAK008_01:
pak0f11d4dc(func0f14a5a4());
break;
case 11:
case PAK008_11:
pak0f11d9c4(func0f14a5a4(), var800a45a0->unk470, 0, 0);
func0f14d064(index, var800a45a0->unk470);
pak0f11d478(func0f14a5a4());
@@ -1320,7 +1320,7 @@ void func0f14bd34(s32 index)
struct var8007f8dc *thing = &var8007f8dc[index];
if (thing->unk080 != -1) {
pak0f1171b4(func0f14a5a4(), 3, 0);
pak0f1171b4(func0f14a5a4(), PAK00C_03, 0);
pak0f11d540(func0f14a5a4(), thing->unk0b6[thing->unk080]);
}
}
@@ -1402,7 +1402,7 @@ void func0f14bec8(s32 index)
for (i = 0; i < ARRAYCOUNT(thing->unk0b6); i++);
pak0f1171b4(func0f14a5a4(), 3, 0);
pak0f1171b4(func0f14a5a4(), PAK00C_03, 0);
pak0f11d478(func0f14a5a4());
break;
case 3:
@@ -1446,7 +1446,7 @@ void func0f14c1cc(s32 index)
switch (thing->unk0f4) {
case 0:
pak0f1171b4(func0f14a5a4(), 0, 0);
pak0f1171b4(func0f14a5a4(), PAK00C_00, 0);
pak0f11d5b0(func0f14a5a4());
thing->unk0f4 = 1;
break;
@@ -1510,13 +1510,13 @@ void func0f14c3a4(s32 index)
pak0f11d620(func0f14a5a4());
switch (pakGetUnk008(func0f14a5a4())) {
case 1:
case PAK008_01:
func0f14c1cc(index);
break;
case 11:
case PAK008_11:
func0f14bec8(index);
break;
case 12:
case PAK008_12:
func0f14bdbc(index);
break;
}
@@ -1712,7 +1712,7 @@ void func0f14cdb8(s32 index, u8 *arg1)
void func0f14ce84(void)
{
if (pak0f11d3f8(func0f14a5a4())) {
if (pakGetUnk008(func0f14a5a4()) != 12) {
if (pakGetUnk008(func0f14a5a4()) != PAK008_12) {
var8007f8dc[func0f14a5a4()].unk0f8 = 1;
var8007f8dc[func0f14a5a4()].unk0d4_00 = false;
@@ -1739,7 +1739,7 @@ void func0f14cf6c(void)
case 4:
case 5:
case 6:
pak0f1171b4(func0f14a5a4(), 3, 0);
pak0f1171b4(func0f14a5a4(), PAK00C_03, 0);
g_MpPlayerNum = 0;
menuSetBanner(-1, false);
break;
@@ -1762,7 +1762,7 @@ void func0f14d064(s32 index, u8 *arg1)
g_MpPlayerNum = index;
menuSetBanner(MENUBANNER_CALIBRATINGCAMERA, false);
func0f14a16c(1);
pak0f1171b4(func0f14a5a4(), 1, 1);
pak0f1171b4(func0f14a5a4(), PAK00C_01, 1);
thing->unk0f8 = 3;
return;
}
@@ -1801,12 +1801,12 @@ void func0f14d064(s32 index, u8 *arg1)
}
if (thing->unk0f8 == 6) {
pak0f1171b4(func0f14a5a4(), 3, 0);
pak0f1171b4(func0f14a5a4(), PAK00C_03, 0);
thing->unk0f8 = 6;
thing->unk100 = thing->unk0fc;
g_MpPlayerNum = index;
menuSetBanner(-1, false);
pak0f1171b4(func0f14a5a4(), 3, 0);
pak0f1171b4(func0f14a5a4(), PAK00C_03, 0);
var8007f8dc[var800a45a0->unk000].unk0d4_04 = true;
thing->unk0f8 = 0;
}
+3 -3
View File
@@ -597,10 +597,10 @@ bool camIsPosInScreenBox(struct coord *pos, f32 arg1, struct drawslot *drawslot)
* correct address to camIsPosInScreenBox so it can interpret the pointer as a
* drawslot.
*/
bool camIsPosInFovAndVisibleRoom(s16 *rooms, struct coord *pos, f32 arg2)
bool camIsPosInFovAndVisibleRoom(RoomNum *rooms, struct coord *pos, f32 arg2)
{
s32 i;
s16 room;
RoomNum room;
bool hasdata = false;
struct drawslot *thisthing;
struct screenbox box;
@@ -640,5 +640,5 @@ bool camIsPosInFovAndVisibleRoom(s16 *rooms, struct coord *pos, f32 arg2)
return false;
}
return camIsPosInScreenBox(pos, arg2, (struct drawslot *) (&box.array[-1][0]));
return camIsPosInScreenBox(pos, arg2, (struct drawslot *) &(((u8 *) &box)[-((uintptr_t) &(((struct drawslot *)0)->box))]));
}
+15 -15
View File
@@ -197,7 +197,7 @@ void chrSetPerimEnabled(struct chrdata *chr, bool enable)
* pos and rooms for the chr. It does collision checks and updates dstpos and
* dstrooms to valid ones if needed.
*/
void chrCalculatePushPos(struct chrdata *chr, struct coord *dstpos, s16 *dstrooms, bool arg3)
void chrCalculatePushPos(struct chrdata *chr, struct coord *dstpos, RoomNum *dstrooms, bool arg3)
{
f32 ymax;
f32 ymin;
@@ -210,7 +210,7 @@ void chrCalculatePushPos(struct chrdata *chr, struct coord *dstpos, s16 *dstroom
f32 halfradius;
struct defaultobj *chair = NULL;
s32 cdresult;
s16 sp84[20];
RoomNum sp84[20];
#if VERSION < VERSION_NTSC_1_0
s32 i;
#endif
@@ -478,14 +478,14 @@ void chrCalculatePushPos(struct chrdata *chr, struct coord *dstpos, s16 *dstroom
}
#if VERSION >= VERSION_NTSC_1_0
bool chr0f01f264(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 arg3, bool arg4)
bool chr0f01f264(struct chrdata *chr, struct coord *pos, RoomNum *rooms, f32 arg3, bool arg4)
#else
bool chr0f01f264(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 arg3)
bool chr0f01f264(struct chrdata *chr, struct coord *pos, RoomNum *rooms, f32 arg3)
#endif
{
bool result;
struct coord newpos;
s16 newrooms[8];
RoomNum newrooms[8];
f32 ymax;
f32 ymin;
f32 radius;
@@ -520,7 +520,7 @@ bool chr0f01f378(struct model *model, struct coord *arg1, struct coord *arg2, f3
struct prop *lift;
s32 i;
f32 ground;
s16 spfc[8];
RoomNum spfc[8];
f32 manground = chr->manground;
s32 race = CHRRACE(chr);
f32 yincrement = 0.0f;
@@ -531,7 +531,7 @@ bool chr0f01f378(struct model *model, struct coord *arg1, struct coord *arg2, f3
f32 lvupdate60f;
f32 lvupdate60freal;
struct coord spd0;
s16 spc0[8];
RoomNum spc0[8];
#endif
// NTSC beta reads g_Vars lvupdate properties throughout this function,
@@ -640,8 +640,8 @@ bool chr0f01f378(struct model *model, struct coord *arg1, struct coord *arg2, f3
bmove0f0cb904(&chr->aibot->shotspeed);
arg2->x += chr->aibot->shotspeed.x * var80075c00[1].unk0c * VAR(lvupdate60freal) * 0.5f;
arg2->z += chr->aibot->shotspeed.z * var80075c00[1].unk0c * VAR(lvupdate60freal) * 0.5f;
arg2->x += chr->aibot->shotspeed.x * g_HeadAnims[HEADANIM_MOVING].translateperframe * VAR(lvupdate60freal) * 0.5f;
arg2->z += chr->aibot->shotspeed.z * g_HeadAnims[HEADANIM_MOVING].translateperframe * VAR(lvupdate60freal) * 0.5f;
}
if (chr->actiontype == ACT_DIE && chr->act_die.timeextra > 0.0f) {
@@ -775,9 +775,9 @@ bool chr0f01f378(struct model *model, struct coord *arg1, struct coord *arg2, f3
arg2->y -= chr->manground;
} else {
struct coord *sp98;
s16 *sp94;
RoomNum *sp94;
struct coord sp88;
s16 sp78[8];
RoomNum sp78[8];
f32 ground;
struct modelnode *node;
u16 nodetype;
@@ -1290,7 +1290,7 @@ void chrInit(struct prop *prop, u8 *ailist)
}
struct prop *chr0f020b14(struct prop *prop, struct model *model,
struct coord *pos, s16 *rooms, f32 faceangle, u8 *ailist)
struct coord *pos, RoomNum *rooms, f32 faceangle, u8 *ailist)
{
struct chrdata *chr;
struct coord testpos;
@@ -1345,7 +1345,7 @@ struct prop *chr0f020b14(struct prop *prop, struct model *model,
return prop;
}
struct prop *chrAllocate(struct model *model, struct coord *pos, s16 *rooms, f32 faceangle, u8 *ailist)
struct prop *chrAllocate(struct model *model, struct coord *pos, RoomNum *rooms, f32 faceangle, u8 *ailist)
{
struct prop *prop = propAllocate();
@@ -1871,7 +1871,7 @@ void chrHandleJointPositioned(s32 joint, Mtxf *mtx)
}
}
void chr0f021fa8(struct chrdata *chr, struct coord *pos, s16 *rooms)
void chr0f021fa8(struct chrdata *chr, struct coord *pos, RoomNum *rooms)
{
struct coord lower;
struct coord upper;
@@ -1904,7 +1904,7 @@ void chr0f021fa8(struct chrdata *chr, struct coord *pos, s16 *rooms)
bgFindEnteredRooms(&lower, &upper, rooms, 7, true);
}
void chr0f022084(struct chrdata *chr, s16 *room)
void chr0f022084(struct chrdata *chr, RoomNum *room)
{
chr0f021fa8(chr, &chr->prop->pos, room);
}
+77 -77
View File
@@ -1520,7 +1520,7 @@ f32 chrGetAttackEntityRelativeAngle(struct chrdata *chr, s32 attackflags, s32 en
{
f32 angle;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
if (attackflags & ATTACKFLAG_AIMFORWARD) {
return 0;
@@ -5109,13 +5109,13 @@ void chrDie(struct chrdata *chr, s32 aplayernum)
}
}
bool func0f03645c(struct chrdata *chr, struct coord *arg1, s16 *arg2, struct coord *arg3, struct coord *arg4, s32 arg5)
bool func0f03645c(struct chrdata *chr, struct coord *arg1, RoomNum *arg2, struct coord *arg3, struct coord *arg4, s32 arg5)
{
bool result = false;
f32 ymax;
f32 ymin;
f32 radius;
s16 rooms[8];
RoomNum rooms[8];
struct prop *prop = chr->prop;
chrGetBbox(prop, &radius, &ymax, &ymin);
@@ -5132,7 +5132,7 @@ bool func0f03645c(struct chrdata *chr, struct coord *arg1, s16 *arg2, struct coo
return result;
}
bool func0f03654c(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, struct coord *vector, f32 arg6, u32 types)
bool func0f03654c(struct chrdata *chr, struct coord *pos, RoomNum *rooms, struct coord *pos2, RoomNum *rooms2, struct coord *vector, f32 arg6, u32 types)
{
struct coord tmp;
f32 a;
@@ -5144,7 +5144,7 @@ bool func0f03654c(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coo
f32 radius;
struct coord sp5c;
struct coord sp50;
s16 sp40[8];
RoomNum sp40[8];
f32 mult;
prop = chr->prop;
@@ -5302,15 +5302,15 @@ bool chrCanJumpInDirection(struct chrdata *chr, bool side, f32 distance)
return propchrHasClearLineToPos(prop, &dstpos, &vector);
}
bool chrIsRoomOffScreen(struct chrdata *chr, struct coord *waypos, s16 *wayrooms)
bool chrIsRoomOffScreen(struct chrdata *chr, struct coord *waypos, RoomNum *wayrooms)
{
struct prop *prop = chr->prop;
s16 sp7c[20];
RoomNum sp7c[20];
u32 stack;
s32 i;
s16 sp64[8];
RoomNum sp64[8];
bool offscreen = true;
s16 sp50[8];
RoomNum sp50[8];
if ((chr->hidden & CHRHFLAG_CLOAKED) == 0 || USINGDEVICE(DEVICE_IRSCANNER)) {
func0f065dfc(&prop->pos, prop->rooms, waypos, sp64, sp7c, 20);
@@ -5364,7 +5364,7 @@ void chrGoPosInitMagic(struct chrdata *chr, struct waydata *waydata, struct coor
chrSetLookAngle(chr, angle);
}
void chrGoPosGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 *flags)
void chrGoPosGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, RoomNum *rooms, u32 *flags)
{
struct waypoint *waypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex];
struct pad pad;
@@ -5396,7 +5396,7 @@ void chrGoPosGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos,
}
}
void chrGoPosGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms)
void chrGoPosGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, RoomNum *rooms)
{
chrGoPosGetCurWaypointInfoWithFlags(chr, pos, rooms, NULL);
}
@@ -5421,7 +5421,7 @@ s32 chrGoPosCalculateBaseTtl(struct chrdata *chr)
f32 zdiff;
u32 stack;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
f32 speed;
chrGoPosGetCurWaypointInfo(chr, &pos, rooms);
@@ -5487,7 +5487,7 @@ void chrGoPosConsiderRestart(struct chrdata *chr)
void chrGoPosInitExpensive(struct chrdata *chr)
{
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
chrGoPosGetCurWaypointInfo(chr, &pos, rooms);
@@ -5600,7 +5600,7 @@ s16 chrPatrolCalculatePadNum(struct chrdata *chr, s32 numsteps)
return *padnumptr;
}
void chrPatrolGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 *flags)
void chrPatrolGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, RoomNum *rooms, u32 *flags)
{
s32 padnum = chrPatrolCalculatePadNum(chr, 0);
struct pad pad;
@@ -5619,14 +5619,14 @@ void chrPatrolGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos
}
}
void chrPatrolGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms)
void chrPatrolGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, RoomNum *rooms)
{
chrPatrolGetCurWaypointInfoWithFlags(chr, pos, rooms, NULL);
}
void func0f037580(struct chrdata *chr)
{
s16 rooms[8];
RoomNum rooms[8];
chr->act_patrol.waydata.mode = WAYMODE_INIT;
chr->act_patrol.waydata.iter = 0;
@@ -5645,26 +5645,26 @@ void func0f0375b0(struct chrdata *chr)
func0f037580(chr);
}
void chrNavTickMagic(struct chrdata *chr, struct waydata *waydata, f32 speed, struct coord *arg3, s16 *rooms)
void chrNavTickMagic(struct chrdata *chr, struct waydata *waydata, f32 speed, struct coord *arg3, RoomNum *rooms)
{
s16 sp118[8];
RoomNum sp118[8];
f32 ymax;
f32 ymin;
f32 radius;
f32 ground;
u16 floorcol;
u8 floortype;
s16 floorroom;
RoomNum floorroom;
struct coord spf4;
struct prop *prop = chr->prop;
union modelrwdata *rwdata;
struct waypoint *waypoint;
struct coord spdc;
s16 spcc[8];
RoomNum spcc[8];
u32 stack[4];
struct pad pad;
struct coord sp5c;
s16 sp4c[8];
RoomNum sp4c[8];
chr->invalidmove = 0;
chr->lastmoveok60 = g_Vars.lvframe60;
@@ -5773,7 +5773,7 @@ void chrNavTickMagic(struct chrdata *chr, struct waydata *waydata, f32 speed, st
*/
void chrCalculatePosition(struct chrdata *chr, struct coord *pos)
{
s16 rooms[8];
RoomNum rooms[8];
f32 frac;
if (chr->actiontype == ACT_PATROL && chr->act_patrol.waydata.mode == WAYMODE_MAGIC) {
@@ -6075,7 +6075,7 @@ void chrGoPosChooseAnimation(struct chrdata *chr)
}
}
bool chrGoToRoomPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 goposflags)
bool chrGoToRoomPos(struct chrdata *chr, struct coord *pos, RoomNum *room, u32 goposflags)
{
struct prop *prop = chr->prop;
struct waypoint *nextwaypoint;
@@ -6083,7 +6083,7 @@ bool chrGoToRoomPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 gopos
struct waypoint *waypoints[MAX_CHRWAYPOINTS];
s32 i;
struct coord curwppos;
s16 curwprooms[8];
RoomNum curwprooms[8];
s32 isgopos = chr->actiontype == ACT_GOPOS
&& (chr->act_gopos.flags & GOPOSMASK_SPEED) == (goposflags & 0xff & GOPOSMASK_SPEED)
&& !chrGoPosIsWaiting(chr);
@@ -6249,15 +6249,15 @@ void chrStartPatrol(struct chrdata *chr, struct path *path)
s32 *padnumptr;
struct pad pad;
struct coord nextpos;
s16 nextrooms[8];
s16 rooms[8];
RoomNum nextrooms[8];
RoomNum rooms[8];
f32 ymax;
f32 ymin;
f32 radius;
f32 bestdistance = 0;
s32 nextstep = -1;
struct prop *prop = chr->prop;
s16 sp60[2];
RoomNum sp60[2];
if (CHRRACE(chr) != RACE_EYESPY) {
// Do some kind of collision test with the pad to resume from...
@@ -6361,11 +6361,11 @@ void chrRecordLastVisibleTargetTime(struct chrdata *chr)
chr->lastvisibletarget60 = g_Vars.lvframe60;
}
bool chrHasLosToEntity(struct chrdata *chr, struct coord *chrpos, s16 *chrrooms, bool allowextraheight, u32 attackflags, u32 entityid)
bool chrHasLosToEntity(struct chrdata *chr, struct coord *chrpos, RoomNum *chrrooms, bool allowextraheight, u32 attackflags, u32 entityid)
{
bool result = false;
struct coord targetpos;
s16 targetrooms[8];
RoomNum targetrooms[8];
struct prop *targetprop;
struct chrdata *targetchr;
u32 types;
@@ -6404,7 +6404,7 @@ bool chrHasLosToEntity(struct chrdata *chr, struct coord *chrpos, s16 *chrrooms,
if (allowextraheight && (chr->chrflags & CHRCFLAG_LOSEXTRAHEIGHT)) {
struct coord frompos;
s16 fromrooms[8];
RoomNum fromrooms[8];
frompos.x = chrpos->x;
frompos.y = chrpos->y + 70;
@@ -6451,7 +6451,7 @@ bool chrHasLosToEntity(struct chrdata *chr, struct coord *chrpos, s16 *chrrooms,
return result;
}
bool chrHasLosToAttackTarget(struct chrdata *chr, struct coord *pos, s16 *rooms, bool allowextraheight)
bool chrHasLosToAttackTarget(struct chrdata *chr, struct coord *pos, RoomNum *rooms, bool allowextraheight)
{
u32 attackflags = ATTACKFLAG_AIMATTARGET;
u32 entityid = 0;
@@ -6464,16 +6464,16 @@ bool chrHasLosToAttackTarget(struct chrdata *chr, struct coord *pos, s16 *rooms,
return chrHasLosToEntity(chr, pos, rooms, allowextraheight, attackflags, entityid);
}
bool chrHasLosToChr(struct chrdata *chr, struct chrdata *target, s16 *room)
bool chrHasLosToChr(struct chrdata *chr, struct chrdata *target, RoomNum *room)
{
bool cansee = false;
u32 stack;
s16 sp88[] = {-1, 0, 0, 0, 0, 0, 0, 0};
RoomNum sp88[] = {-1, 0, 0, 0, 0, 0, 0, 0};
if (!botIsTargetInvisible(chr, target)) {
struct prop *prop = chr->prop;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
pos.x = prop->pos.x;
pos.y = chr->ground + chr->height - 20;
@@ -6529,12 +6529,12 @@ bool chrHasLosToTarget(struct chrdata *chr)
return cansee;
}
bool chrHasLosToPos(struct chrdata *chr, struct coord *pos, s16 *rooms)
bool chrHasLosToPos(struct chrdata *chr, struct coord *pos, RoomNum *rooms)
{
struct prop *prop = chr->prop;
bool result = false;
struct coord eyepos;
s16 chrrooms[8];
RoomNum chrrooms[8];
eyepos.x = prop->pos.x;
eyepos.y = chr->ground + chr->height - 20;
@@ -6558,7 +6558,7 @@ bool chrHasLosToPos(struct chrdata *chr, struct coord *pos, s16 *rooms)
* Wasteful because this function calculates angles then does nothing with them.
* chrHasLosToPos is called with the same arguments regardless.
*/
bool chrHasLosToPosWasteful(struct chrdata *chr, struct coord *pos, s16 *rooms)
bool chrHasLosToPosWasteful(struct chrdata *chr, struct coord *pos, RoomNum *rooms)
{
f32 facingangle = chrGetInverseTheta(chr);
f32 posangle = atan2f(pos->x - chr->prop->pos.x, pos->z - chr->prop->pos.z);
@@ -7122,7 +7122,7 @@ bool chrGoToPad(struct chrdata *chr, s32 padnum, u32 goposflags)
if (padnum >= 0)
#endif
{
s16 rooms[2];
RoomNum rooms[2];
struct pad pad;
padUnpack(padnum, PADFIELD_ROOM | PADFIELD_POS, &pad);
@@ -7234,8 +7234,8 @@ bool chrGoToProp(struct chrdata *chr, struct prop *prop, u32 goposflags)
bool chrGoToPos(struct chrdata *chr, struct coord *pos, u32 goposflags)
{
s16 inrooms[21];
s16 aboverooms[21];
RoomNum inrooms[21];
RoomNum aboverooms[21];
if (chrIsReadyForOrders(chr)) {
#if VERSION >= VERSION_NTSC_1_0
@@ -7246,7 +7246,7 @@ bool chrGoToPos(struct chrdata *chr, struct coord *pos, u32 goposflags)
if (g_NumChrsSeenPlayerRecently2 < 10)
#endif
{
s16 *rooms = NULL;
RoomNum *rooms = NULL;
bgFindRoomsByPos(pos, inrooms, aboverooms, 20, NULL);
@@ -7372,7 +7372,7 @@ bool chrTryRunFromTarget(struct chrdata *chr)
f32 ymin;
f32 radius;
struct coord dst;
s16 rooms[8];
RoomNum rooms[8];
struct coord diff;
f32 distance;
@@ -7492,7 +7492,7 @@ bool chrGoToCoverProp(struct chrdata *chr)
f32 propheight;
f32 chrheight;
struct coord dstpos;
s16 dstrooms[8];
RoomNum dstrooms[8];
propGetBbox(prop, &propradius, &propymax, &propymin);
propGetBbox(chrprop, &chrradius, &chrymax, &chrymin);
@@ -9032,7 +9032,7 @@ bool func0f03e9f4(struct chrdata *chr, struct attackanimconfig *animcfg, bool fi
f32 sqdist;
bool holdturn;
struct coord targetpos;
s16 targetrooms[8];
RoomNum targetrooms[8];
sp178 = targetprop->pos.x - chrprop->pos.x;
sp174 = targetprop->pos.y - chrprop->pos.y;
@@ -9867,10 +9867,10 @@ void chrTickShoot(struct chrdata *chr, s32 handnum)
bool shotdue;
bool makebeam;
struct coord gunpos;
s16 gunrooms[8];
RoomNum gunrooms[8];
struct coord hitpos;
bool hitsomething;
s16 hitrooms[8];
RoomNum hitrooms[8];
bool queriedhitrooms;
s32 tickspershot;
@@ -11771,7 +11771,7 @@ void func0f044b68(struct coord *arg0, struct coord *arg1, struct coord *arg2)
* This is similar to chrNavCheckForObstacle. The difference between the two are
* not yet understood.
*/
bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *chrpos, s16 *chrrooms, struct coord *aimpos, struct coord *leftpos, struct coord *rightpos, f32 negchrradius, f32 chrradius, s32 cdtypes, s32 arg9)
bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *chrpos, RoomNum *chrrooms, struct coord *aimpos, struct coord *leftpos, struct coord *rightpos, f32 negchrradius, f32 chrradius, s32 cdtypes, s32 arg9)
{
struct coord spd4;
f32 spd0;
@@ -11791,8 +11791,8 @@ bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *chrpos, s16 *chrroom
f32 radius2;
struct coord sp6c;
struct coord sp60;
s16 sp50[8];
s16 sp40[8];
RoomNum sp50[8];
RoomNum sp40[8];
struct prop *prop = chr->prop;
chrGetBbox(prop, &radius2, &ymax, &ymin);
@@ -11928,7 +11928,7 @@ bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *chrpos, s16 *chrroom
* This is similar to chrNavCanSeeNextPos. The only difference is this one uses
* the value1 and value2 variables.
*/
bool chrNavCheckForObstacle(struct chrdata *chr, struct coord *chrpos, s16 *chrrooms, struct coord *aimpos, struct coord *leftpos, struct coord *rightpos, f32 negchrradius, f32 chrradius, s32 cdtypes, bool hasobstacle)
bool chrNavCheckForObstacle(struct chrdata *chr, struct coord *chrpos, RoomNum *chrrooms, struct coord *aimpos, struct coord *leftpos, struct coord *rightpos, f32 negchrradius, f32 chrradius, s32 cdtypes, bool hasobstacle)
{
struct coord spd4;
f32 spd0;
@@ -11950,8 +11950,8 @@ bool chrNavCheckForObstacle(struct chrdata *chr, struct coord *chrpos, s16 *chrr
f32 radius2;
struct coord sp6c;
struct coord sp60;
s16 sp50[8];
s16 sp40[8];
RoomNum sp50[8];
RoomNum sp40[8];
struct prop *prop = chr->prop;
chrGetBbox(prop, &radius2, &ymax, &ymin);
@@ -12656,7 +12656,7 @@ bool chrGoPosUpdateLiftAction(struct chrdata *chr, u32 curpadflags, bool arg2, b
// Waiting for door to close or lift to arrive at destination
if (arg2 || chr->liftaction == LIFTACTION_WAITINGONLIFT) {
// Continue waiting
s16 rooms[] = {0, -1};
RoomNum rooms[] = {0, -1};
u32 stack2;
rooms[0] = nextpad.room;
@@ -12727,13 +12727,13 @@ void chrTickGoPos(struct chrdata *chr)
{
struct waypoint *waypoint;
struct coord nextpos;
s16 nextrooms[8];
RoomNum nextrooms[8];
struct prop *prop = chr->prop;
bool enteringmagic = false;
struct pad pad;
bool sp240 = true;
struct coord curwppos;
s16 curwprooms[8];
RoomNum curwprooms[8];
u32 curwpflags;
chr->act_gopos.flags &= ~(GOPOSFLAG_CROUCH | GOPOSFLAG_DUCK);
@@ -13025,7 +13025,7 @@ void chrTickPatrol(struct chrdata *chr)
bool enteringmagic;
u32 flags = 0;
struct coord sp58;
s16 sp48[8];
RoomNum sp48[8];
s32 arrivinglaterally;
s32 arriving;
bool advance;
@@ -13742,7 +13742,7 @@ f32 chrGetAngleToTarget(struct chrdata *chr)
return chrGetAngleToPos(chr, &prop->pos);
}
void chrGetAttackEntityPos(struct chrdata *chr, u32 attackflags, s32 entityid, struct coord *pos, s16 *rooms)
void chrGetAttackEntityPos(struct chrdata *chr, u32 attackflags, s32 entityid, struct coord *pos, RoomNum *rooms)
{
struct prop *targetprop;
struct chrdata *targetchr;
@@ -14585,7 +14585,7 @@ bool waypointIsWithin90DegreesOfPosAngle(struct waypoint *waypoint, struct coord
* those are in the quadrant then no further checks are made and the function
* returns -1.
*/
s32 chrFindWaypointWithinPosQuadrant(struct coord *pos, s16 *rooms, f32 angle, u8 quadrant)
s32 chrFindWaypointWithinPosQuadrant(struct coord *pos, RoomNum *rooms, f32 angle, u8 quadrant)
{
struct waypoint *waypoint = waypointFindClosestToPos(pos, rooms);
s32 neighbournum;
@@ -14716,7 +14716,7 @@ bool chrSetChrPresetToChrNearSelf(u8 checktype, struct chrdata *chr, f32 distanc
bool chrSetChrPresetToChrNearPad(u32 checktype, struct chrdata *chr, f32 distance, s32 padnum)
{
struct pad pad;
s16 rooms[2];
RoomNum rooms[2];
padnum = chrResolvePadId(chr, padnum);
padUnpack(padnum, PADFIELD_POS | PADFIELD_ROOM, &pad);
@@ -14727,19 +14727,19 @@ bool chrSetChrPresetToChrNearPad(u32 checktype, struct chrdata *chr, f32 distanc
return chrSetChrPresetToChrNearPos(checktype, chr, distance, &pad.pos, rooms);
}
bool chrSetChrPresetToChrNearPos(u8 checktype, struct chrdata *chr, f32 distance, struct coord *pos, s16 *rooms)
bool chrSetChrPresetToChrNearPos(u8 checktype, struct chrdata *chr, f32 distance, struct coord *pos, RoomNum *rooms)
{
s32 i;
s16 *propnumptr;
s16 propnums[256];
s16 allrooms[21];
RoomNum allrooms[21];
f32 xmin = pos->x - distance;
f32 xmax = pos->x + distance;
f32 ymin = pos->y - distance;
f32 ymax = pos->y + distance;
f32 zmin = pos->z - distance;
f32 zmax = pos->z + distance;
s16 neighbours[11];
RoomNum neighbours[11];
roomsCopy(rooms, allrooms);
@@ -14912,7 +14912,7 @@ bool chrSetPadPresetToPadOnRouteToTarget(struct chrdata *chr)
return false;
}
bool chrIsPosOffScreen(struct coord *pos, s16 *rooms)
bool chrIsPosOffScreen(struct coord *pos, RoomNum *rooms)
{
bool offscreen = true;
s32 i;
@@ -14943,12 +14943,12 @@ bool chrIsPosOffScreen(struct coord *pos, s16 *rooms)
* If the spawn cannot happen, the function return false.
*/
#if VERSION >= VERSION_NTSC_1_0
bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, s16 *rooms, f32 angle, bool allowonscreen, bool force, bool onlysurrounding)
bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, RoomNum *rooms, f32 angle, bool allowonscreen, bool force, bool onlysurrounding)
{
struct coord testpos;
s32 i;
u32 types;
s16 testrooms[8];
RoomNum testrooms[8];
f32 ymin;
f32 ymax = 200;
f32 curangle = angle;
@@ -15030,12 +15030,12 @@ bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, s16 *rooms, f32 angl
* ntsc-beta's version of this function doesn't have the onlysurrounding argument
* nor out of bounds checking, and lacks the reduction for the volume test.
*/
bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, s16 *rooms, f32 angle, bool allowonscreen, bool force)
bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, RoomNum *rooms, f32 angle, bool allowonscreen, bool force)
{
struct coord testpos;
s32 i;
u32 types;
s16 testrooms[8];
RoomNum testrooms[8];
f32 curangle = angle;
if (force) {
@@ -15084,11 +15084,11 @@ bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, s16 *rooms, f32 angl
* triggered, but the function will not attempt to spawn the chr until the next
* time it's called.
*/
struct prop *chrSpawnAtCoord(s32 bodynum, s32 headnum, struct coord *pos, s16 *rooms, f32 angle, u8 *ailist, u32 spawnflags)
struct prop *chrSpawnAtCoord(s32 bodynum, s32 headnum, struct coord *pos, RoomNum *rooms, f32 angle, u8 *ailist, u32 spawnflags)
{
struct prop *prop;
struct coord pos2;
s16 rooms2[8];
RoomNum rooms2[8];
s32 stack;
if (chrsGetNumFree() > 1) {
@@ -15199,7 +15199,7 @@ struct prop *chrSpawnAtPad(struct chrdata *basechr, s32 body, s32 head, s32 pad_
{
s32 resolved_pad_id = chrResolvePadId(basechr, pad_id);
struct pad pad;
s16 room[2];
RoomNum room[2];
f32 fvalue;
padUnpack(resolved_pad_id, PADFIELD_POS | PADFIELD_LOOK | PADFIELD_ROOM, &pad);
fvalue = atan2f(pad.look.x, pad.look.z);
@@ -15253,10 +15253,10 @@ void func0f04b740(void)
// empty
}
bool chrMoveToPos(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 angle, bool force)
bool chrMoveToPos(struct chrdata *chr, struct coord *pos, RoomNum *rooms, f32 angle, bool force)
{
struct coord pos2;
s16 rooms2[8];
RoomNum rooms2[8];
bool result = false;
u32 nodetype;
union modelrwdata *rwdata;
@@ -15356,7 +15356,7 @@ bool chrCheckCoverOutOfSight(struct chrdata *chr, s32 covernum, bool soft)
s32 chrAssignCoverByCriteria(struct chrdata *chr, u16 criteria, s32 refdist)
{
s16 rooms[8];
RoomNum rooms[8];
struct cover cover;
struct covercandidate tmp;
s32 oldcover;
@@ -15619,7 +15619,7 @@ bool chrRunFromPos(struct chrdata *chr, u32 goposflags, f32 rundist, struct coor
{
f32 curdistfrompos;
struct coord delta;
s16 rooms[8];
RoomNum rooms[8];
if (chrIsReadyForOrders(chr)) {
delta.x = chr->prop->pos.x - frompos->x;
@@ -16010,12 +16010,12 @@ bool audioWasNotPlayedRecently(s16 audioid)
}
#if VERSION >= VERSION_NTSC_1_0
Gfx *chrsRenderChrStats(Gfx *gdl, s16 *rooms)
Gfx *chrsRenderChrStats(Gfx *gdl, RoomNum *rooms)
{
return gdl;
}
#else
Gfx *chrsRenderChrStats(Gfx *gdl, s16 *rooms)
Gfx *chrsRenderChrStats(Gfx *gdl, RoomNum *rooms)
{
s32 x;
s32 y;
@@ -16127,7 +16127,7 @@ void chrAvoid(struct chrdata *chr)
f32 zdiff;
f32 halfchrradius;
f32 chrangle = modelGetChrRotY(chr->model);
s16 dstrooms[8];
RoomNum dstrooms[8];
struct coord dstpos;
// @bug: This shouldn't be here, and the perim is not enabled again
+4 -4
View File
@@ -2361,7 +2361,7 @@ bool aiObjectMoveToPad(void)
u16 padnum = cmd[4] | (cmd[3] << 8);
Mtxf matrix;
struct pad pad;
s16 rooms[2];
RoomNum rooms[2];
if (obj && obj->prop) {
padUnpack(padnum, PADFIELD_POS | PADFIELD_LOOK | PADFIELD_UP | PADFIELD_ROOM, &pad);
@@ -5184,7 +5184,7 @@ bool aiChrMoveToPad(void)
bool pass = false;
f32 theta;
struct pad pad;
s16 rooms[2];
RoomNum rooms[2];
struct chrdata *chr2;
if (chr && chr->prop) {
@@ -9611,7 +9611,7 @@ bool aiSetDrCarollImages(void)
bool aiSetRoomFlag(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
s16 roomnum = cmd[3] | cmd[2] << 8;
RoomNum roomnum = cmd[3] | cmd[2] << 8;
s16 flag = cmd[5] | cmd[4] << 8;
g_Rooms[roomnum].flags |= flag;
@@ -9658,7 +9658,7 @@ bool aiShowCutsceneChrs(void)
bool aiConfigureEnvironment(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
s16 room_id = (cmd[3] | (cmd[2] << 8));
RoomNum room_id = (cmd[3] | (cmd[2] << 8));
s32 value = cmd[5];
s32 i;
+4 -4
View File
@@ -33,8 +33,8 @@ void chrmgrReset(void)
g_ChrIndexes = NULL;
var80062960 = mempAlloc(ALIGN16(15 * sizeof(struct var80062960)), MEMPOOL_STAGE);
for (i = 0; i < 20; i++) {
var8009ccc0[i] = (void *)ALIGN64(mempAlloc(0x240, MEMPOOL_STAGE));
for (i = 0; i < ARRAYCOUNT(var8009ccc0); i++) {
var8009ccc0[i] = (void *)ALIGN64(mempAlloc(16 * 16 * sizeof(u16) + 0x40, MEMPOOL_STAGE));
}
resetSomeStageThings();
@@ -54,8 +54,8 @@ void chrmgrConfigure(s32 numchrs)
}
g_NumChrs = 0;
g_Chrnums = mempAlloc(ALIGN16(g_NumChrSlots * 2), MEMPOOL_STAGE);
g_ChrIndexes = mempAlloc(ALIGN16(g_NumChrSlots * 2), MEMPOOL_STAGE);
g_Chrnums = mempAlloc(ALIGN16(g_NumChrSlots * sizeof(g_Chrnums[0])), MEMPOOL_STAGE);
g_ChrIndexes = mempAlloc(ALIGN16(g_NumChrSlots * sizeof(g_ChrIndexes[0])), MEMPOOL_STAGE);
for (i = 0; i < g_NumChrSlots; i++) {
g_Chrnums[i] = -1;
+2 -2
View File
@@ -311,7 +311,7 @@ void roomSetDefaults(struct room *room)
room->lightop_duration240 = 0;
}
Gfx *lightsSetForRoom(Gfx *gdl, s16 roomnum)
Gfx *lightsSetForRoom(Gfx *gdl, RoomNum roomnum)
{
Lights1 *lights = gfxAllocate(sizeof(Lights1));
@@ -989,7 +989,7 @@ bool lightTickBroken(s32 roomnum, s32 lightnum)
f32 rand1 = 2.0f * RANDOMFRAC() - 1.0f; // range -1 to 1
f32 rand2 = 2.0f * RANDOMFRAC() - 1.0f; // range -1 to 1
s32 sparktype = -1;
s16 smokerooms[2];
RoomNum smokerooms[2];
struct bgroom *room;
spc8.x = light->bbox[1].x - light->bbox[0].x;
+1 -1
View File
@@ -354,7 +354,7 @@ void dyntexSetCurrentType(s16 type)
g_DyntexCurType = type;
}
void dyntexSetCurrentRoom(s16 roomnum)
void dyntexSetCurrentRoom(RoomNum roomnum)
{
s32 i;
+8 -8
View File
@@ -81,18 +81,18 @@ struct explosiontype g_ExplosionTypes[] = {
/*25*/ { 640, 480, 32, 11.2, 1600, 1000, 1000, 180, 2, 5, SMOKETYPE_NONE, 0x80a4, 4 },
};
bool explosionCreateSimple(struct prop *prop, struct coord *pos, s16 *rooms, s16 type, s32 playernum)
bool explosionCreateSimple(struct prop *prop, struct coord *pos, RoomNum *rooms, s16 type, s32 playernum)
{
return explosionCreate(prop, pos, rooms, type, playernum, false, NULL, 0, NULL);
}
bool explosionCreateComplex(struct prop *prop, struct coord *pos, s16 *rooms, s16 type, s32 playernum)
bool explosionCreateComplex(struct prop *prop, struct coord *pos, RoomNum *rooms, s16 type, s32 playernum)
{
struct coord sp100;
struct coord sp88;
struct explosiontype *etype;
bool makescorch = true;
s16 room;
RoomNum room;
f32 y;
struct prop *collisionprop;
@@ -232,8 +232,8 @@ void explosionAlertChrs(f32 *radius, struct coord *noisepos)
#endif
}
bool explosionCreate(struct prop *sourceprop, struct coord *exppos, s16 *exprooms,
s16 type, s32 playernum, bool makescorch, struct coord *arg6, s16 room, struct coord *arg8)
bool explosionCreate(struct prop *sourceprop, struct coord *exppos, RoomNum *exprooms,
s16 type, s32 playernum, bool makescorch, struct coord *arg6, RoomNum room, struct coord *arg8)
{
u32 stack;
struct explosion *exp = NULL;
@@ -314,8 +314,8 @@ bool explosionCreate(struct prop *sourceprop, struct coord *exppos, s16 *exproom
struct coord portal2bbmax;
struct coord spd4;
struct coord spc8;
s16 otherroom;
s16 otherroom2;
RoomNum otherroom;
RoomNum otherroom2;
f32 mult = 1;
s32 stack4;
s32 portalnum2;
@@ -626,7 +626,7 @@ bool explosionOverlapsProp(struct explosion *exp, struct prop *prop, struct coor
{
bool result = false;
s32 i;
s16 rooms[8];
RoomNum rooms[8];
if (exp->type == EXPLOSIONTYPE_HUGE25) {
result = true;
+17 -17
View File
@@ -22,7 +22,7 @@
#include "data.h"
#include "types.h"
s32 var800a2330[5];
s32 g_FilelistKnownPlugCounts[5];
struct filelist *g_FileLists[MAX_PLAYERS] = { NULL };
bool var80075bd0[] = { true, true, true, true };
@@ -60,7 +60,7 @@ void filelistCreate(s32 listnum, u8 filetype)
g_FileLists[listnum]->filetype = filetype;
if (var80062944 == 0) {
joy0001398c(3);
joySetPfsPollInterval(3);
}
var80062944 = 1;
@@ -92,9 +92,9 @@ s32 filelistFindOrCreate(u8 filetype)
}
#if VERSION >= VERSION_NTSC_1_0
void func0f110d90(s32 device)
void filelistInvalidatePak(s32 device)
{
var800a2330[device] = -1;
g_FilelistKnownPlugCounts[device] = -1;
}
#endif
@@ -103,36 +103,36 @@ void filelistsTick(void)
u32 updateall;
u32 update;
s32 i;
static bool var80075bf4 = false;
static bool doneinit = false;
if (!var80075bf4) {
for (i = 0; i < ARRAYCOUNT(var800a2330); i++) {
var800a2330[i] = -1;
if (!doneinit) {
for (i = 0; i < ARRAYCOUNT(g_FilelistKnownPlugCounts); i++) {
g_FilelistKnownPlugCounts[i] = -1;
}
var80075bf4 = true;
doneinit = true;
}
#if VERSION >= VERSION_NTSC_1_0
for (i = 0, updateall = false; i < ARRAYCOUNT(var800a2330); i++) {
if (pak0f1167d8(i) && var800a2330[i] != pakGetUnk264(i)) {
for (i = 0, updateall = false; i < ARRAYCOUNT(g_FilelistKnownPlugCounts); i++) {
if (pak0f1167d8(i) && pakGetPlugCount(i) != g_FilelistKnownPlugCounts[i]) {
updateall = true;
var800a2330[i] = pakGetUnk264(i);
g_FilelistKnownPlugCounts[i] = pakGetPlugCount(i);
}
}
#else
for (i = 0, updateall = false; i < ARRAYCOUNT(var800a2330); i++) {
s32 tmp = pakGetUnk264(i);
for (i = 0, updateall = false; i < ARRAYCOUNT(g_FilelistKnownPlugCounts); i++) {
s32 plugcount = pakGetPlugCount(i);
pak0f11698c(i);
if (pak0f1167d8(i)) {
tmp = 0;
plugcount = 0;
}
if (var800a2330[i] != tmp) {
if (g_FilelistKnownPlugCounts[i] != plugcount) {
updateall = true;
var800a2330[i] = tmp;
g_FilelistKnownPlugCounts[i] = plugcount;
}
}
#endif
+13 -13
View File
@@ -2187,7 +2187,7 @@ MenuItemHandlerResult pakDeleteGameNoteMenuHandler(s32 operation, struct menuite
g_Menus[g_MpPlayerNum].fm.device1 = g_Menus[g_MpPlayerNum].fm.device;
if (result) {
if (result != PAK_ERR1_OK) {
filemgrPushErrorDialog(FILEERROR_DELETENOTEFAILED);
}
}
@@ -2314,14 +2314,14 @@ MenuDialogHandlerResult pakGameNotesMenuDialog(s32 operation, struct menudialogd
if (operation == MENUOP_TICK) {
if (g_Menus[g_MpPlayerNum].curdialog
&& g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef) {
s32 value = pak0f1168c4(g_Menus[g_MpPlayerNum].fm.device, &g_EditingPak);
PakErr1 ret = pak0f1168c4(g_Menus[g_MpPlayerNum].fm.device, &g_EditingPak);
if (value) {
if (ret != PAK_ERR1_OK) {
menuCloseDialog();
g_EditingPak = NULL;
g_Menus[g_MpPlayerNum].fm.device1 = g_Menus[g_MpPlayerNum].fm.device;
if (value == 1) {
if (ret == PAK_ERR1_NOPAK) {
filemgrPushErrorDialog(FILEERROR_PAKREMOVED);
}
@@ -2403,7 +2403,7 @@ char *pakMenuTextEditingPakName(struct menuitem *item)
MenuItemHandlerResult pakSelectionMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data)
{
if (operation == MENUOP_CHECKDISABLED) {
if (!pakIsMemoryPak((s8)item->param)) {
if (!mempakIsOkay((s8)item->param)) {
return true;
}
}
@@ -2426,7 +2426,7 @@ MenuDialogHandlerResult pakChoosePakMenuDialog(s32 operation, struct menudialogd
#if VERSION >= VERSION_NTSC_1_0
switch (operation) {
case MENUOP_OPEN:
joy0001398c(3);
joySetPfsPollInterval(3);
g_Menus[g_MpPlayerNum].fm.unke24 = 0;
break;
case MENUOP_TICK:
@@ -2438,20 +2438,20 @@ MenuDialogHandlerResult pakChoosePakMenuDialog(s32 operation, struct menudialogd
for (i = 0; i < MAX_PLAYERS; i++) {
if (g_Menus[g_MpPlayerNum].fm.unke24 & (1 << i)) {
g_Vars.unk0004e4 &= 0xfff0;
g_Vars.unk0004e4 |= 0x0008;
g_Vars.unk0004e4 |= 1 << (i + 8);
g_Vars.pakstocheck &= 0xfff0;
g_Vars.pakstocheck |= 0x0008;
g_Vars.pakstocheck |= 1 << (i + 8);
}
}
}
joy000139c8();
joySetDefaultPfsPollInterval();
break;
}
#else
switch (operation) {
case MENUOP_OPEN:
joy0001398c(3);
joy0001398c(-1);
joySetPfsPollInterval(3);
joySetPfsPollInterval(-1);
g_Menus[g_MpPlayerNum].fm.unke24 = 0;
break;
case MENUOP_TICK:
@@ -2467,7 +2467,7 @@ MenuDialogHandlerResult pakChoosePakMenuDialog(s32 operation, struct menudialogd
}
}
}
joy000139c8();
joySetDefaultPfsPollInterval();
pak0f1189d0();
break;
}
+5 -5
View File
@@ -170,7 +170,7 @@ void gamefileLoadDefaults(struct gamefile *file)
pakSetBitflag(GAMEFILEFLAG_P1_FORWARDPITCH, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_P1_AUTOAIM, file->flags, true);
pakSetBitflag(GAMEFILEFLAG_P1_AIMCONTROL, file->flags, AIMCONTROL_HOLD);
pakSetBitflag(GAMEFILEFLAG_P1_AIMCONTROL, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_P1_SIGHTONSCREEN, file->flags, true);
#ifdef PLATFORM_N64
pakSetBitflag(GAMEFILEFLAG_P1_LOOKAHEAD, file->flags, true);
@@ -188,7 +188,7 @@ void gamefileLoadDefaults(struct gamefile *file)
pakSetBitflag(GAMEFILEFLAG_P2_FORWARDPITCH, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_P2_AUTOAIM, file->flags, true);
pakSetBitflag(GAMEFILEFLAG_P2_AIMCONTROL, file->flags, AIMCONTROL_HOLD);
pakSetBitflag(GAMEFILEFLAG_P2_AIMCONTROL, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_P2_SIGHTONSCREEN, file->flags, true);
pakSetBitflag(GAMEFILEFLAG_P2_LOOKAHEAD, file->flags, true);
pakSetBitflag(GAMEFILEFLAG_P2_AMMOONSCREEN, file->flags, true);
@@ -206,8 +206,8 @@ void gamefileLoadDefaults(struct gamefile *file)
pakSetBitflag(GAMEFILEFLAG_P2_SHOWMISSIONTIME, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_P2_PAINTBALL, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_SCREENSPLIT, file->flags, SCREENSPLIT_HORIZONTAL);
pakSetBitflag(GAMEFILEFLAG_SCREENRATIO, file->flags, SCREENRATIO_NORMAL);
pakSetBitflag(GAMEFILEFLAG_SCREENSPLIT, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_SCREENRATIO, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_SCREENSIZE_CINEMA, file->flags, false);
pakSetBitflag(GAMEFILEFLAG_SCREENSIZE_WIDE, file->flags, false);
@@ -223,7 +223,7 @@ void gamefileLoadDefaults(struct gamefile *file)
pakSetBitflag(GAMEFILEFLAG_COOPRADARON, file->flags, true);
pakSetBitflag(GAMEFILEFLAG_COOPFRIENDLYFIRE, file->flags, true);
pakSetBitflag(GAMEFILEFLAG_ANTIRADARON, file->flags, true);
pakSetBitflag(GAMEFILEFLAG_ANTIPLAYERNUM, file->flags, 1);
pakSetBitflag(GAMEFILEFLAG_ANTIPLAYERNUM, file->flags, true);
#if VERSION >= VERSION_PAL_BETA
pakSetBitflag(GAMEFILEFLAG_LANGBIT1, g_GameFile.flags, ((g_Vars.language & 0x01) == 0x01));
+11 -11
View File
@@ -241,7 +241,7 @@ void lvReset(s32 stagenum)
var80084010 = 0;
#if VERSION >= VERSION_NTSC_1_0
joy00013900();
joyLockCyclicPolling();
g_Vars.joydisableframestogo = 10;
#else
@@ -252,8 +252,8 @@ void lvReset(s32 stagenum)
}
#endif
g_Vars.paksconnected2 = 0;
g_Vars.paksconnected = 0;
g_Vars.paksneededforgame = 0;
g_Vars.paksneededformenu = 0;
g_Vars.stagenum = stagenum;
cheatsReset();
@@ -1607,9 +1607,9 @@ Gfx *lvRender(Gfx *gdl)
|| debugIsChrStatsEnabled()
|| debug0f11ee40()) {
#if VERSION < VERSION_NTSC_1_0
s16 spc8[21];
s16 spb0[11];
s16 sp9c[10];
RoomNum spc8[21];
RoomNum spb0[11];
RoomNum sp9c[10];
s32 j;
sp9c[0] = g_Vars.currentplayer->memcamroom;
@@ -1997,7 +1997,7 @@ void lvTick(void)
lvCheckPauseStateChanged();
#if VERSION >= VERSION_NTSC_1_0
if (g_Vars.unk0004e4) {
if (g_Vars.pakstocheck) {
paksTick();
}
#endif
@@ -2006,7 +2006,7 @@ void lvTick(void)
g_Vars.joydisableframestogo--;
} else if (g_Vars.joydisableframestogo == 0) {
#if VERSION >= VERSION_NTSC_1_0
joy00013938();
joyUnlockCyclicPolling();
#else
if (!joyIsCyclicPollingEnabled()) {
joyEnableCyclicPolling(3278, "lv.c");
@@ -2017,9 +2017,9 @@ void lvTick(void)
|| g_Vars.stagenum == STAGE_BOOTPAKMENU
|| g_Vars.stagenum == STAGE_CREDITS
|| g_Vars.stagenum == STAGE_4MBMENU) {
g_Vars.paksconnected2 = 0;
g_Vars.paksneededforgame = 0;
} else {
g_Vars.paksconnected2 = 31;
g_Vars.paksneededforgame = 0x1f;
pakEnableRumbleForAllPlayers();
}
@@ -2063,7 +2063,7 @@ void lvTick(void)
// Check if another player is in a nearby room
for (playernum = 0; playernum < PLAYERCOUNT() && !foundnearbychr; playernum++) {
if (g_Vars.players[playernum]->isdead == false) {
s16 *rooms = g_Vars.players[playernum]->prop->rooms;
RoomNum *rooms = g_Vars.players[playernum]->prop->rooms;
s32 r;
for (r = 0; rooms[r] != -1 && !foundnearbychr; r++) {
+26 -27
View File
@@ -5625,7 +5625,7 @@ MenuDialogHandlerResult menudialog000fcd48(s32 operation, struct menudialogdef *
if (operation == MENUOP_TICK) {
if (g_Menus[g_MpPlayerNum].curdialog
&& g_Menus[g_MpPlayerNum].curdialog->definition == dialogdef
&& joy000155b4(g_Menus[g_MpPlayerNum].fm.device3) == 0) {
&& joyGetPakState(g_Menus[g_MpPlayerNum].fm.device3) == PAKSTATE_NOPAK) {
func0f0f3704(&g_PakRemovedMenuDialog);
}
}
@@ -5657,12 +5657,12 @@ MenuItemHandlerResult menuhandlerRepairPak(s32 operation, struct menuitem *item,
return 0;
}
void func0f0fce8c(struct menudialogdef *dialogdef, s32 playernum, s32 arg2)
void menuPushPakDialogForPlayer(struct menudialogdef *dialogdef, s32 playernum, s32 paknum)
{
s32 prevplayernum = g_MpPlayerNum;
g_MpPlayerNum = playernum;
g_Menus[g_MpPlayerNum].fm.device3 = arg2;
g_Menus[g_MpPlayerNum].fm.device3 = paknum;
if (g_Menus[g_MpPlayerNum].curdialog == NULL) {
if (PLAYERCOUNT() == 1) {
@@ -5882,11 +5882,11 @@ MenuItemHandlerResult menuhandlerRetrySavePak(s32 operation, struct menuitem *it
menuPopDialog();
#if VERSION >= VERSION_NTSC_1_0
g_Vars.unk0004e4 &= 0xfff0;
g_Vars.unk0004e4 |= 8;
g_Vars.unk0004e4 |= 1 << ((u8)g_Menus[g_MpPlayerNum].fm.device3 + 8);
g_Vars.pakstocheck &= 0xfff0;
g_Vars.pakstocheck |= 0x0008;
g_Vars.pakstocheck |= 1 << ((u8)g_Menus[g_MpPlayerNum].fm.device3 + 8);
#else
pak0f1169c8(g_Menus[g_MpPlayerNum].fm.device3, 0);
pak0f1169c8(g_Menus[g_MpPlayerNum].fm.device3, false);
#endif
}
@@ -5906,18 +5906,18 @@ MenuItemHandlerResult menuhandlerWarnRepairPak(s32 operation, struct menuitem *i
return 0;
}
u32 func0f0fd118(u32 playernum)
s32 menuPakNumToPlayerNum(s32 paknum)
{
u32 result = 0;
if (g_Vars.normmplayerisrunning) {
if (g_MpSetup.chrslots & (1 << playernum)) {
result = playernum;
if (g_MpSetup.chrslots & (1 << paknum)) {
result = paknum;
}
} else {
if ((g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0)
&& PLAYERCOUNT() >= 2
&& playernum == 1) {
&& paknum == 1) {
result = 1;
}
}
@@ -5925,9 +5925,9 @@ u32 func0f0fd118(u32 playernum)
return result;
}
bool func0f0fd1f4(s32 arg0, s32 arg1)
bool menuIsReadyForPakError(s32 paknum, s32 pakerrordialog)
{
s32 playernum = func0f0fd118(arg0);
s32 playernum = menuPakNumToPlayerNum(paknum);
bool result = true;
if (g_Vars.lvframenum < 20) {
@@ -5952,8 +5952,7 @@ bool func0f0fd1f4(s32 arg0, s32 arg1)
|| g_Menus[playernum].curdialog->definition == &g_PakAttemptRepairMenuDialog
|| g_Menus[playernum].curdialog->definition == &g_PakRemovedMenuDialog
|| g_Menus[playernum].curdialog->definition == &g_PakRepairSuccessMenuDialog
|| g_Menus[playernum].curdialog->definition == &g_PakRepairFailedMenuDialog
) {
|| g_Menus[playernum].curdialog->definition == &g_PakRepairFailedMenuDialog) {
result = false;
}
} else if (g_MenuData.nextbg != 255 || g_MenuData.bg || g_MenuData.unk5d4) {
@@ -5963,21 +5962,21 @@ bool func0f0fd1f4(s32 arg0, s32 arg1)
return result;
}
void func0f0fd320(s32 arg0, s32 arg1)
void menuPushPakErrorDialog(s32 paknum, s32 pakerrordialog)
{
s32 prevplayernum = g_MpPlayerNum;
s32 playernum = func0f0fd118(arg0);
s32 playernum = menuPakNumToPlayerNum(paknum);
bool found;
s32 i;
g_MpPlayerNum = playernum;
switch (arg1) {
case 1:
case 2:
func0f0fce8c(&g_PakDamagedMenuDialog, playernum, arg0);
switch (pakerrordialog) {
case PAKERRORDIALOG_CORRUPT:
case PAKERRORDIALOG_DEVICEERROR:
menuPushPakDialogForPlayer(&g_PakDamagedMenuDialog, playernum, paknum);
break;
case 0:
case PAKERRORDIALOG_FULL:
found = false;
for (i = 0; i < g_Menus[g_MpPlayerNum].depth; i++) {
@@ -5988,15 +5987,15 @@ void func0f0fd320(s32 arg0, s32 arg1)
}
if (!found) {
func0f0fce8c(&g_PakFullMenuDialog, playernum, arg0);
menuPushPakDialogForPlayer(&g_PakFullMenuDialog, playernum, paknum);
}
break;
#if VERSION >= VERSION_NTSC_1_0
case 3:
func0f0fce8c(&g_PakCannotReadGameBoyMenuDialog, playernum, arg0);
case PAKERRORDIALOG_GB_UNREADABLE:
menuPushPakDialogForPlayer(&g_PakCannotReadGameBoyMenuDialog, playernum, paknum);
break;
case 4:
func0f0fce8c(&g_PakDataLostMenuDialog, playernum, arg0);
case PAKERRORDIALOG_DATALOST:
menuPushPakDialogForPlayer(&g_PakDataLostMenuDialog, playernum, paknum);
break;
#endif
}
+1 -1
View File
@@ -32,7 +32,7 @@ void menuStop(void)
if (var80062944) {
var80062944 = 0;
var80062948 = 0;
joy000139c8();
joySetDefaultPfsPollInterval();
func0f110bf8();
}
}
+2 -2
View File
@@ -697,7 +697,7 @@ void menuTick(void)
}
}
g_Vars.paksconnected = 0;
g_Vars.paksneededformenu = 0;
for (i = 0; i < PLAYERCOUNT(); i++) {
s32 mpindex = -1;
@@ -731,7 +731,7 @@ void menuTick(void)
case MENUROOT_4MBMAINMENU:
case MENUROOT_TRAINING:
if (g_Menus[mpindex].curdialog) {
g_Vars.paksconnected = 0x1f;
g_Vars.paksneededformenu = 0x1f;
}
break;
}
+7 -7
View File
@@ -64,10 +64,10 @@ struct mpscenario {
Gfx *(*radarextrafunc)(Gfx *gdl);
bool (*radarchrfunc)(Gfx **gdl, struct prop *prop);
bool (*highlightpropfunc)(struct prop *prop, s32 *colour);
bool (*spawnfunc)(f32 arg0, struct coord *pos, s16 *rooms, struct prop *prop, f32 *arg4);
bool (*spawnfunc)(f32 arg0, struct coord *pos, RoomNum *rooms, struct prop *prop, f32 *arg4);
s32 (*maxteamsfunc)(void);
bool (*isroomhighlightedfunc)(s16 room);
void (*highlightroomfunc)(s16 room, s32 *arg1, s32 *arg2, s32 *arg3);
bool (*isroomhighlightedfunc)(RoomNum room);
void (*highlightroomfunc)(RoomNum room, s32 *arg1, s32 *arg2, s32 *arg3);
void *unk3c; // never hooked into nor fired
void (*readsavefunc)(struct savebuffer *buffer);
void (*writesavefunc)(struct savebuffer *buffer);
@@ -791,7 +791,7 @@ bool scenarioHighlightProp(struct prop *prop, s32 *colour)
*
* CTC uses this to ensure the chrs spawn near their base.
*/
f32 scenarioChooseSpawnLocation(f32 chrradius, struct coord *pos, s16 *rooms, struct prop *prop)
f32 scenarioChooseSpawnLocation(f32 chrradius, struct coord *pos, RoomNum *rooms, struct prop *prop)
{
f32 result;
@@ -917,7 +917,7 @@ s32 scenarioGetMaxTeams(void)
/**
* This callback is unused.
*/
bool scenarioIsRoomHighlighted(s16 room)
bool scenarioIsRoomHighlighted(RoomNum room)
{
if (g_MpScenarios[g_MpSetup.scenario].isroomhighlightedfunc) {
return g_MpScenarios[g_MpSetup.scenario].isroomhighlightedfunc(room);
@@ -931,7 +931,7 @@ bool scenarioIsRoomHighlighted(s16 room)
*
* Used in CTC for the team bases and in KOH for the hill.
*/
void scenarioHighlightRoom(s16 room, s32 *arg1, s32 *arg2, s32 *arg3)
void scenarioHighlightRoom(RoomNum room, s32 *arg1, s32 *arg2, s32 *arg3)
{
if (g_MpScenarios[g_MpSetup.scenario].highlightroomfunc) {
g_MpScenarios[g_MpSetup.scenario].highlightroomfunc(room, arg1, arg2, arg3);
@@ -1351,7 +1351,7 @@ void scenarioHandleDroppedToken(struct chrdata *chr, struct prop *prop)
struct defaultobj *obj;
struct pad pad;
Mtxf mtx;
s16 rooms[2];
RoomNum rooms[2];
if (g_MpSetup.scenario == MPSCENARIO_CAPTURETHECASE) {
for (i = 0; i < ARRAYCOUNT(g_ScenarioData.ctc.tokens); i++) {
@@ -457,7 +457,7 @@ void ctcAddPad(s32 *cmd)
}
}
bool ctcChooseSpawnLocation(f32 arg0, struct coord *pos, s16 *rooms, struct prop *prop, f32 *arg4)
bool ctcChooseSpawnLocation(f32 arg0, struct coord *pos, RoomNum *rooms, struct prop *prop, f32 *arg4)
{
struct chrdata *chr = prop->chr;
s32 index = radarGetTeamIndex(chr->team);
@@ -477,7 +477,7 @@ s32 ctcGetMaxTeams(void)
return 4;
}
bool ctcIsRoomHighlighted(s16 room)
bool ctcIsRoomHighlighted(RoomNum room)
{
s32 i;
@@ -490,7 +490,7 @@ bool ctcIsRoomHighlighted(s16 room)
return false;
}
void ctcHighlightRoom(s16 roomnum, s32 *arg1, s32 *arg2, s32 *arg3)
void ctcHighlightRoom(RoomNum roomnum, s32 *arg1, s32 *arg2, s32 *arg3)
{
s32 i;
+2 -2
View File
@@ -658,12 +658,12 @@ void kohAddHill(s32 *cmd)
}
}
bool kohIsRoomHighlighted(s16 room)
bool kohIsRoomHighlighted(RoomNum room)
{
return room == g_ScenarioData.koh.hillrooms[0];
}
void kohHighlightRoom(s16 roomnum, s32 *arg1, s32 *arg2, s32 *arg3)
void kohHighlightRoom(RoomNum roomnum, s32 *arg1, s32 *arg2, s32 *arg3)
{
if (roomnum == g_ScenarioData.koh.hillrooms[0]) {
f32 a = *arg1;
+1 -1
View File
@@ -431,7 +431,7 @@ void nbombInflictDamage(struct nbomb *nbomb)
s16 propnums[256];
struct coord bbmin;
struct coord bbmax;
s16 roomnums[54];
RoomNum roomnums[54];
s16 *propnumptr;
s32 i;
struct gset gset;
+2 -2
View File
@@ -456,7 +456,7 @@ void objectiveCheckRoomEntered(s32 currentroom)
}
}
void objectiveCheckThrowInRoom(s32 arg0, s16 *inrooms)
void objectiveCheckThrowInRoom(s32 arg0, RoomNum *inrooms)
{
struct criteria_throwinroom *criteria = g_ThrowInRoomCriterias;
@@ -465,7 +465,7 @@ void objectiveCheckThrowInRoom(s32 arg0, s16 *inrooms)
s32 room = chrGetPadRoom(NULL, criteria->pad);
if (room >= 0) {
s16 requirerooms[2];
RoomNum requirerooms[2];
requirerooms[0] = room;
requirerooms[1] = -1;
+6 -6
View File
@@ -73,12 +73,12 @@ void navSetSeed(u32 upper, u32 lower)
* The function will return NULL if there are no waypoints at all within the
* position's room or its neighbours.
*/
struct waypoint *waypointFindClosestToPos(struct coord *pos, s16 *rooms)
struct waypoint *waypointFindClosestToPos(struct coord *pos, RoomNum *rooms)
{
struct waypoint *closest = NULL;
s16 allrooms[30];
RoomNum allrooms[30];
s32 candlen = 0;
s16 neighbours[10];
RoomNum neighbours[10];
s32 i;
s32 j;
struct waypoint *candwaypoints[10];
@@ -152,7 +152,7 @@ struct waypoint *waypointFindClosestToPos(struct coord *pos, s16 *rooms)
// Check which candidates have line of sight
for (i = 0; i < candlen; i++) {
struct pad pad;
s16 padrooms[8];
RoomNum padrooms[8];
padUnpack(candwaypoints[i]->padnum, PADFIELD_POS | PADFIELD_ROOM, &pad);
@@ -185,10 +185,10 @@ struct waypoint *waypointFindClosestToPos(struct coord *pos, s16 *rooms)
for (i = 0; i < candlen; i++) {
if (checkmore[i] && (sp250[i].x != sp1d8[i].x || sp250[i].z != sp1d8[i].z)) {
struct pad pad;
s16 padrooms[8];
RoomNum padrooms[8];
struct coord sp98;
struct coord tmppos;
s16 tmprooms[8];
RoomNum tmprooms[8];
f32 mult;
padUnpack(candwaypoints[i]->padnum, PADFIELD_POS | PADFIELD_ROOM, &pad);
+377 -428
View File
File diff suppressed because it is too large. Load diff
+17 -17
View File
@@ -211,7 +211,7 @@ s32 g_NumDeathAnimations = 0;
* @dangerous: If there are too many pads (24+) in the setup then array
* overflows may occur.
*/
f32 playerChooseSpawnLocation(f32 chrradius, struct coord *dstpos, s16 *dstrooms, struct prop *prop, s16 *pads, s32 numpads)
f32 playerChooseSpawnLocation(f32 chrradius, struct coord *dstpos, RoomNum *dstrooms, struct prop *prop, s16 *pads, s32 numpads)
{
u8 verybadpads[24];
u8 badpads[24];
@@ -226,7 +226,7 @@ f32 playerChooseSpawnLocation(f32 chrradius, struct coord *dstpos, s16 *dstrooms
// "sl" prefixes are for shortlist
s16 slpadindexes[8];
struct coord slpositions[4];
s16 slrooms[4][8];
RoomNum slrooms[4][8];
f32 slangles[4];
s32 sllen = 0;
@@ -237,9 +237,9 @@ f32 playerChooseSpawnLocation(f32 chrradius, struct coord *dstpos, s16 *dstrooms
u8 stack2[0x10];
struct pad pad;
s32 stack3[2];
s16 tmppadrooms[2];
RoomNum tmppadrooms[2];
f32 bestsqdist;
s16 neighbours[20];
RoomNum neighbours[20];
// Iterate all spawn pads and populate the category arrays
for (p = 0; p < numpads; p++) {
@@ -472,7 +472,7 @@ f32 playerChooseSpawnLocation(f32 chrradius, struct coord *dstpos, s16 *dstrooms
return dstangle;
}
f32 playerChooseGeneralSpawnLocation(f32 chrradius, struct coord *pos, s16 *rooms, struct prop *prop)
f32 playerChooseGeneralSpawnLocation(f32 chrradius, struct coord *pos, RoomNum *rooms, struct prop *prop)
{
return playerChooseSpawnLocation(chrradius, pos, rooms, prop, g_SpawnPoints, g_NumSpawnPoints);
}
@@ -480,7 +480,7 @@ f32 playerChooseGeneralSpawnLocation(f32 chrradius, struct coord *pos, s16 *room
void playerStartNewLife(void)
{
struct coord pos = {0, 0, 0};
s16 rooms[8];
RoomNum rooms[8];
f32 angle;
s32 *cmd = g_StageSetup.intro;
f32 groundy;
@@ -3366,9 +3366,9 @@ void playerTick(bool arg0)
rocket->base.realrot[0][0] * rocket->base.realrot[0][0] +
rocket->base.realrot[1][0] * rocket->base.realrot[1][0] +
rocket->base.realrot[2][0] * rocket->base.realrot[2][0]);
s16 inrooms[21];
s16 aboverooms[21];
s16 bestroom;
RoomNum inrooms[21];
RoomNum aboverooms[21];
RoomNum bestroom;
s16 outofbounds = false;
sp2b8[0][0] = rocket->base.realrot[0][0] / sp2a8;
@@ -4921,14 +4921,14 @@ void playerSetCameraMode(s32 mode)
g_Vars.currentplayer->cameramode = mode;
}
void player0f0c1840(struct coord *pos, struct coord *up, struct coord *look, struct coord *pos2, s16 *rooms2)
void player0f0c1840(struct coord *pos, struct coord *up, struct coord *look, struct coord *pos2, RoomNum *rooms2)
{
bool done = false;
s16 inrooms[21];
s16 aboverooms[21];
s16 sp54[8];
s16 bestroom;
s16 tmp;
RoomNum inrooms[21];
RoomNum aboverooms[21];
RoomNum sp54[8];
RoomNum bestroom;
RoomNum tmp;
s32 i;
s32 room;
@@ -5022,7 +5022,7 @@ void player0f0c1840(struct coord *pos, struct coord *up, struct coord *look, str
void player0f0c1ba4(struct coord *pos, struct coord *up, struct coord *look, struct coord *memcampos, s32 memcamroom)
{
s16 rooms[2];
RoomNum rooms[2];
rooms[0] = memcamroom;
rooms[1] = -1;
@@ -5589,7 +5589,7 @@ void playerChooseThirdPersonAnimation(struct chrdata *chr, s32 crouchpos, f32 sp
}
} else if (turnspeed < 0.4f
|| (chr->prop->type == PROPTYPE_PLAYER
&& g_Vars.players[playermgrGetPlayerNumByProp(chr->prop)]->headanim == 0)) {
&& g_Vars.players[playermgrGetPlayerNumByProp(chr->prop)]->headanim == HEADANIM_RESTING)) {
turnmode = TURNMODE_STAND_SOFTTURN;
speed = 2.0f * turnspeed;
+1 -1
View File
@@ -327,7 +327,7 @@ void playermgrAllocatePlayer(s32 index)
g_Vars.players[index]->resetheadrot = true;
g_Vars.players[index]->resetheadtick = true;
g_Vars.players[index]->headanim = 0;
g_Vars.players[index]->headanim = HEADANIM_RESTING;
g_Vars.players[index]->headdamp = (PAL ? 0.9166f : 0.93f);
g_Vars.players[index]->headwalkingtime60 = 0;
g_Vars.players[index]->headamplitude = 1;
+1 -1
View File
@@ -110,7 +110,7 @@ struct cmd32 {
void playerReset(void)
{
struct coord pos = {0, 0, 0};
s16 rooms[8];
RoomNum rooms[8];
f32 turnanglerad = 0;
f32 groundy;
bool hasdefaultweapon = false;
+40 -40
View File
@@ -391,11 +391,11 @@ Gfx *propRender(Gfx *gdl, struct prop *prop, bool xlupass)
* terminal in the pre-bg pass and the screen in the post-bg pass, likely to
* avoid Z-fighting issues.
*/
Gfx *propsRender(Gfx *gdl, s16 renderroomnum, s32 renderpass, s16 *roomnumsbyprop)
Gfx *propsRender(Gfx *gdl, RoomNum renderroomnum, s32 renderpass, RoomNum *roomnumsbyprop)
{
struct prop **ptr;
struct prop *prop;
s16 *proprooms;
RoomNum *proprooms;
if (renderpass == RENDERPASS_OPA_PREBG || renderpass == RENDERPASS_OPA_POSTBG) {
// Iterate onscreen props near to far
@@ -592,22 +592,22 @@ struct prop *shotCalculateHits(s32 handnum, bool arg1, struct coord *arg2, struc
s32 sparktype;
#ifdef AVOID_UB
s16 rooms[131];
RoomNum rooms[131];
#else
s16 rooms[124];
RoomNum rooms[124];
#endif
s16 spc8[8];
s16 spb8[8];
RoomNum spc8[8];
RoomNum spb8[8];
s32 uVar6;
s16 *roomsptr;
RoomNum *roomsptr;
struct prop *prop;
struct coord spa0;
struct defaultobj *obj;
bool doexplosiveshells;
struct coord sp8c;
s16 sp7c[8];
s16 sp6c[8];
RoomNum sp7c[8];
RoomNum sp6c[8];
struct prop *hitprop;
bgun0f0a9494(arg6);
@@ -1688,7 +1688,7 @@ void propsTickPlayer(bool islastplayer)
s32 savedslotupdate240_60;
f32 savedslotupdate240f;
struct g_vars *vars = &g_Vars;
s16 *rooms;
RoomNum *rooms;
u8 mostindex;
u8 leastindex;
u8 runstateindex;
@@ -2215,8 +2215,8 @@ void propsTickPadEffects(void)
struct pad pad;
u32 stack;
struct coord up;
s16 rooms[2];
s16 rooms2[2];
RoomNum rooms[2];
RoomNum rooms2[2];
s32 type;
if (g_LastPadEffectIndex >= 0) {
@@ -2306,8 +2306,8 @@ void propsTestForPickup(void)
s16 *propnumptr;
s32 i;
s16 propnums[256];
s16 allrooms[21];
s16 tmp[11];
RoomNum allrooms[21];
RoomNum tmp[11];
if (g_Vars.currentplayer->bondmovemode != MOVEMODE_CUTSCENE
&& !g_PlayerInvincible
@@ -2853,10 +2853,10 @@ bool propIsOfCdType(struct prop *prop, u32 types)
return result;
}
void roomsCopy(s16 *src, s16 *dst)
void roomsCopy(RoomNum *src, RoomNum *dst)
{
s16 *srcptr = src;
s16 *dstptr = dst;
RoomNum *srcptr = src;
RoomNum *dstptr = dst;
s32 val;
while ((val = *srcptr) != -1) {
@@ -2871,7 +2871,7 @@ void roomsCopy(s16 *src, s16 *dst)
/**
* Append newrooms to dstrooms without duplicates.
*/
void roomsAppend(s16 *newrooms, s16 *dstrooms, s32 maxlen)
void roomsAppend(RoomNum *newrooms, RoomNum *dstrooms, s32 maxlen)
{
s32 i;
@@ -2887,12 +2887,12 @@ void roomsAppend(s16 *newrooms, s16 *dstrooms, s32 maxlen)
}
}
bool arrayIntersects(s16 *a, s16 *b)
bool arrayIntersects(RoomNum *a, RoomNum *b)
{
s16 *aptr = a;
s16 aval = *aptr;
s16 *bptr;
s16 bval;
RoomNum *aptr = a;
RoomNum aval = *aptr;
RoomNum *bptr;
RoomNum bval;
while (aval != -1) {
bptr = b; bval = *bptr;
@@ -2951,7 +2951,7 @@ s32 roomAllocatePropListChunk(s32 room, s32 prevchunkindex)
return -1;
}
void propRegisterRoom(struct prop *prop, s16 room)
void propRegisterRoom(struct prop *prop, RoomNum room)
{
s32 prev = -1;
s32 i;
@@ -2979,7 +2979,7 @@ void propRegisterRoom(struct prop *prop, s16 room)
}
}
void propDeregisterRoom(struct prop *prop, s16 room)
void propDeregisterRoom(struct prop *prop, RoomNum room)
{
bool removed = false;
s32 prev = -1;
@@ -3033,8 +3033,8 @@ void propDeregisterRoom(struct prop *prop, s16 room)
*/
void propDeregisterRooms(struct prop *prop)
{
s16 *rooms = prop->rooms;
s16 room = *rooms;
RoomNum *rooms = prop->rooms;
RoomNum room = *rooms;
while (room != -1) {
propDeregisterRoom(prop, room);
@@ -3050,8 +3050,8 @@ void propDeregisterRooms(struct prop *prop)
*/
void propRegisterRooms(struct prop *prop)
{
s16 *rooms = prop->rooms;
s16 room = *rooms;
RoomNum *rooms = prop->rooms;
RoomNum room = *rooms;
while (room != -1) {
propRegisterRoom(prop, room);
@@ -3060,9 +3060,9 @@ void propRegisterRooms(struct prop *prop)
}
}
void func0f065d1c(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newrooms, s16 *morerooms, u32 arg5)
void func0f065d1c(struct coord *pos, RoomNum *rooms, struct coord *newpos, RoomNum *newrooms, RoomNum *morerooms, u32 arg5)
{
s16 stackrooms[8];
RoomNum stackrooms[8];
s32 index;
s32 i;
@@ -3080,12 +3080,12 @@ void func0f065d1c(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newr
newrooms[index] = -1;
}
void func0f065dd8(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newrooms)
void func0f065dd8(struct coord *pos, RoomNum *rooms, struct coord *newpos, RoomNum *newrooms)
{
func0f065d1c(pos, rooms, newpos, newrooms, NULL, 0);
}
void func0f065dfc(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newrooms, s16 *morerooms, u32 arg5)
void func0f065dfc(struct coord *pos, RoomNum *rooms, struct coord *newpos, RoomNum *newrooms, RoomNum *morerooms, u32 arg5)
{
func0f065d1c(pos, rooms, newpos, newrooms, morerooms, arg5);
@@ -3098,16 +3098,16 @@ void func0f065dfc(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newr
}
}
void func0f065e74(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newrooms)
void func0f065e74(struct coord *pos, RoomNum *rooms, struct coord *newpos, RoomNum *newrooms)
{
func0f065dfc(pos, rooms, newpos, newrooms, NULL, 0);
}
void func0f065e98(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *dstrooms)
void func0f065e98(struct coord *pos, RoomNum *rooms, struct coord *pos2, RoomNum *dstrooms)
{
s16 inrooms[21];
s16 aboverooms[21];
s16 *ptr = NULL;
RoomNum inrooms[21];
RoomNum aboverooms[21];
RoomNum *ptr = NULL;
s32 i;
bgFindRoomsByPos(pos2, inrooms, aboverooms, 20, NULL);
@@ -3148,10 +3148,10 @@ void func0f065e98(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *dstroo
* to get 256 props in a small space without exhausing the memory of the
* console, you could potentially achieve arbitrary code execution.
*/
void roomGetProps(s16 *rooms, s16 *propnums, s32 len)
void roomGetProps(RoomNum *rooms, s16 *propnums, s32 len)
{
s16 *writeptr = propnums;
s32 room;
RoomNum room;
s32 i;
s32 j;
+158 -153
View File
@@ -989,7 +989,7 @@ struct defaultobj *objFindByPadNum(s32 padnum)
return NULL;
}
struct defaultobj *objFindByPos(struct coord *pos, s16 *rooms)
struct defaultobj *objFindByPos(struct coord *pos, RoomNum *rooms)
{
struct prop *prop = g_Vars.activeprops;
u8 *sp38;
@@ -1353,7 +1353,7 @@ struct modelrodata_bbox *objFindBboxRodata(struct defaultobj *obj)
return modelFindBboxRodata(obj->model);
}
s32 objGetAverageBrightnessInRooms(s16 *rooms, s32 brightnesstype)
s32 objGetAverageBrightnessInRooms(RoomNum *rooms, s32 brightnesstype)
{
s32 brightness = 0;
s32 i;
@@ -1773,11 +1773,11 @@ void func0f069850(struct defaultobj *obj, struct coord *pos, f32 rot[3][3], stru
if (obj->type == OBJTYPE_HOVERBIKE) {
hoverbike = (struct hoverbikeobj *)obj;
cyl->ymax = hoverbike->hov.ground + g_HovTypes[hoverbike->hov.type].unk00 + objGetLocalYMax(bbox) * obj->model->scale;
cyl->ymax = hoverbike->hov.ground + g_HovTypes[hoverbike->hov.type].bobymid + objGetLocalYMax(bbox) * obj->model->scale;
cyl->ymin = hoverbike->hov.ground + 20.0f;
} else if (obj->type == OBJTYPE_HOVERPROP) {
hoverprop = (struct hoverpropobj *)obj;
cyl->ymax = hoverprop->hov.ground + g_HovTypes[hoverprop->hov.type].unk00 + objGetLocalYMax(bbox) * obj->model->scale;
cyl->ymax = hoverprop->hov.ground + g_HovTypes[hoverprop->hov.type].bobymid + objGetLocalYMax(bbox) * obj->model->scale;
cyl->ymin = hoverprop->hov.ground + 20.0f;
} else {
cyl->ymin = mtx.m[3][1] + objGetRotatedLocalYMinByMtx4(bbox, &mtx);
@@ -1796,11 +1796,11 @@ void func0f069850(struct defaultobj *obj, struct coord *pos, f32 rot[3][3], stru
if (obj->type == OBJTYPE_HOVERBIKE) {
hoverbike = (struct hoverbikeobj *)obj;
cyl->ymax = hoverbike->hov.ground + g_HovTypes[hoverbike->hov.type].unk00 + objGetLocalYMax(bbox) * obj->model->scale;
cyl->ymax = hoverbike->hov.ground + g_HovTypes[hoverbike->hov.type].bobymid + objGetLocalYMax(bbox) * obj->model->scale;
cyl->ymin = hoverbike->hov.ground + 20.0f;
} else if (obj->type == OBJTYPE_HOVERPROP) {
hoverprop = (struct hoverpropobj *)obj;
cyl->ymax = hoverprop->hov.ground + g_HovTypes[hoverprop->hov.type].unk00 + objGetLocalYMax(bbox) * obj->model->scale;
cyl->ymax = hoverprop->hov.ground + g_HovTypes[hoverprop->hov.type].bobymid + objGetLocalYMax(bbox) * obj->model->scale;
cyl->ymin = hoverprop->hov.ground + 20.0f;
}
}
@@ -2142,7 +2142,7 @@ struct prop *objInitWithAutoModel(struct defaultobj *obj)
return objInitWithModelDef(obj, g_ModelStates[obj->modelnum].modeldef);
}
void func0f06a580(struct defaultobj *obj, struct coord *pos, Mtxf *matrix, s16 *rooms)
void func0f06a580(struct defaultobj *obj, struct coord *pos, Mtxf *matrix, RoomNum *rooms)
{
struct prop *prop = obj->prop;
@@ -2171,13 +2171,13 @@ f32 func0f06a620(struct defaultobj *obj)
return 4;
}
void func0f06a650(struct defaultobj *obj, struct coord *pos, Mtxf *arg2, s16 *rooms)
void func0f06a650(struct defaultobj *obj, struct coord *pos, Mtxf *arg2, RoomNum *rooms)
{
struct modelrodata_bbox *bbox;
s16 room;
RoomNum room;
f32 sp3c;
struct coord newpos;
s16 newrooms[2];
RoomNum newrooms[2];
bbox = modelFindBboxRodata(obj->model);
@@ -2201,14 +2201,14 @@ void func0f06a650(struct defaultobj *obj, struct coord *pos, Mtxf *arg2, s16 *ro
}
}
void func0f06a730(struct defaultobj *obj, struct coord *arg1, Mtxf *mtx, s16 *rooms, struct coord *centre)
void func0f06a730(struct defaultobj *obj, struct coord *arg1, Mtxf *mtx, RoomNum *rooms, struct coord *centre)
{
struct modelrodata_bbox *bbox = modelFindBboxRodata(obj->model);
f32 min = objGetLocalYMin(bbox);
f32 max = objGetLocalYMax(bbox);
struct coord pos2;
Mtxf sp70;
s16 rooms2[8];
RoomNum rooms2[8];
f32 curval;
f32 y;
f32 maxval;
@@ -2327,12 +2327,12 @@ void func0f06a730(struct defaultobj *obj, struct coord *arg1, Mtxf *mtx, s16 *ro
func0f06a580(obj, &pos2, &sp70, rooms2);
}
void func0f06ab60(struct defaultobj *obj, struct coord *arg1, Mtxf *arg2, s16 *rooms, struct coord *arg4)
void func0f06ab60(struct defaultobj *obj, struct coord *arg1, Mtxf *arg2, RoomNum *rooms, struct coord *arg4)
{
struct modelrodata_bbox *bbox;
f32 mult;
struct coord newpos;
s16 newrooms[8];
RoomNum newrooms[8];
Mtxf sp5c;
Mtxf sp1c;
@@ -3108,7 +3108,7 @@ bool func0f06c28c(struct chrdata *chr, struct coord *arg1, struct coord *arg2, s
return result;
}
bool projectileFindCollidingProp(struct prop *prop, struct coord *pos1, struct coord *pos2, u32 cdtypes, struct coord *arg4, struct coord *arg5, s16 *rooms)
bool projectileFindCollidingProp(struct prop *prop, struct coord *pos1, struct coord *pos2, u32 cdtypes, struct coord *arg4, struct coord *arg5, RoomNum *rooms)
{
bool result = false;
f32 dist;
@@ -3232,9 +3232,9 @@ s32 func0f06cd00(struct defaultobj *obj, struct coord *pos, struct coord *arg2,
struct coord sp1c4;
u32 stack;
bool s0;
s16 spcc[120];
s16 *ptr;
s16 spb8[8];
RoomNum spcc[120];
RoomNum *ptr;
RoomNum spb8[8];
s32 i;
f32 scale = 1.0f;
@@ -3287,7 +3287,7 @@ s32 func0f06cd00(struct defaultobj *obj, struct coord *pos, struct coord *arg2,
}
}
} else {
s16 spa0[2];
RoomNum spa0[2];
spa0[0] = spcc[i];
spa0[1] = -1;
@@ -3377,7 +3377,7 @@ bool func0f06d37c(struct defaultobj *obj, struct coord *arg1, struct coord *arg2
bool sp98 = false;
struct coord sp8c;
struct coord sp80;
s16 rooms[8];
RoomNum rooms[8];
struct coord sp64;
struct coord sp58;
struct coord sp4c;
@@ -3966,7 +3966,7 @@ void objLand2(struct defaultobj *obj, struct coord *arg1, struct coord *arg2)
struct modelrodata_bbox *bbox = modelFindBboxRodata(obj->model);
f32 ymin = objGetLocalYMin(bbox);
struct prop *prop = obj->prop;
s16 newrooms[8];
RoomNum newrooms[8];
func0f06e9cc(arg2, &sp40);
mtx00015f04(obj->model->scale, &sp40);
@@ -3987,7 +3987,7 @@ void boltLand(struct weaponobj *weapon, struct coord *arg1)
s32 beamnum;
f32 zmax;
struct prop *prop;
s16 newrooms[8];
RoomNum newrooms[8];
bbox = modelFindBboxRodata(weapon->base.model);
prop = weapon->base.prop;
@@ -4023,7 +4023,7 @@ void knifeLand(struct defaultobj *obj, struct coord *arg1, struct coord *arg2)
struct modelrodata_bbox *bbox = modelFindBboxRodata(obj->model);
f32 zero = 0.0f;
struct prop *prop = obj->prop;
s16 newrooms[8];
RoomNum newrooms[8];
struct coord sp1c;
// @bug? Should these be assigned to zero?
@@ -4175,7 +4175,7 @@ bool propExplode(struct prop *prop, s32 exptype)
if (prop->parent) {
struct prop *parent = prop->parent;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
while (parent->parent) {
parent = parent->parent;
@@ -4821,20 +4821,15 @@ s32 glassCalculateOpacity(struct coord *pos, f32 xludist, f32 opadist, f32 arg3)
struct prop *g_Lifts[10] = {NULL};
#define BOB(minamount, randamount, accel, maxspeed) \
minamount, randamount, PALUPF(accel), PALUPF(maxspeed)
struct hovtype g_HovTypes[] = {
#if PAL
/* HOVTYPE_BED */ { 90, 1, 2, 0.0012, 1.200000000, 0.0062821852043271, 0.0062821852043271, 0.000012564370990731, 0.00037693112972192, 0.0062821852043271, 0.0062821852043271, 0.000012564370990731, 0.00037693112972192 },
/* HOVTYPE_BIKE */ { 80, 1, 3, 0.0030, 0.120000004, 0.0125643704086540, 0.0188465546816590, 0.000025128741981462, 0.00075386225944385, 0.0125643704086540, 0.0188465546816590, 0.000025128741981462, 0.00075386225944385 },
/* HOVTYPE_CRATE */ { 70, 2, 4, 0.0012, 1.200000000, 0.0062821852043271, 0.0125643704086540, 0.000012564370990731, 0.00037693112972192, 0.0062821852043271, 0.0125643704086540, 0.000012564370990731, 0.00037693112972192 },
/* HOVTYPE_3 */ { 170, 2, 2, 0.0012, 1.200000000, 0.0031410926021636, 0.0031410926021636, 0.000006282185495365, 0.00022615866328124, 0.0031410926021636, 0.0031410926021636, 0.000006282185495365, 0.00022615866328124 },
/* HOVTYPE_4 */ { 170, 2, 2, 0.0012, 1.200000000, 0.0031410926021636, 0.0031410926021636, 0.000006282185495365, 0.00022615866328124, 0.0031410926021636, 0.0031410926021636, 0.000006282185495365, 0.00022615866328124 },
#else
/* HOVTYPE_BED */ { 90, 1, 2, 0.0010, 1.000000000, 0.0062821852043271, 0.0062821852043271, 0.000010470308552613, 0.00031410926021636, 0.0062821852043271, 0.0062821852043271, 0.000010470308552613, 0.00031410926021636 },
/* HOVTYPE_BIKE */ { 80, 1, 3, 0.0025, 0.100000000, 0.0125643704086540, 0.0188465546816590, 0.000020940617105225, 0.00062821852043271, 0.0125643704086540, 0.0188465546816590, 0.000020940617105225, 0.00062821852043271 },
/* HOVTYPE_CRATE */ { 70, 2, 4, 0.0010, 1.000000000, 0.0062821852043271, 0.0125643704086540, 0.000010470308552613, 0.00031410926021636, 0.0062821852043271, 0.0125643704086540, 0.000010470308552613, 0.00031410926021636 },
/* HOVTYPE_3 */ { 170, 2, 2, 0.0010, 1.000000000, 0.0031410926021636, 0.0031410926021636, 0.000005235154276306, 0.00018846555030905, 0.0031410926021636, 0.0031410926021636, 0.000005235154276306, 0.00018846555030905 },
/* HOVTYPE_4 */ { 170, 2, 2, 0.0010, 1.000000000, 0.0031410926021636, 0.0031410926021636, 0.000005235154276306, 0.00018846555030905, 0.0031410926021636, 0.0031410926021636, 0.000005235154276306, 0.00018846555030905 },
#endif
/* HOVTYPE_BED */ { 90, BOB(1, 2, 0.0010, 1.0), BOB(0.0062821852043271, 0.0062821852043271, 0.000010470308552613, 0.00031410926021636), BOB(0.0062821852043271, 0.0062821852043271, 0.000010470308552613, 0.00031410926021636) },
/* HOVTYPE_BIKE */ { 80, BOB(1, 3, 0.0025, 0.1), BOB(0.0125643704086540, 0.0188465546816590, 0.000020940617105225, 0.00062821852043271), BOB(0.0125643704086540, 0.0188465546816590, 0.000020940617105225, 0.00062821852043271) },
/* HOVTYPE_CRATE */ { 70, BOB(2, 4, 0.0010, 1.0), BOB(0.0062821852043271, 0.0125643704086540, 0.000010470308552613, 0.00031410926021636), BOB(0.0062821852043271, 0.0125643704086540, 0.000010470308552613, 0.00031410926021636) },
/* HOVTYPE_3 */ { 170, BOB(2, 2, 0.0010, 1.0), BOB(0.0031410926021636, 0.0031410926021636, 0.000005235154276306, 0.00018846555030905), BOB(0.0031410926021636, 0.0031410926021636, 0.000005235154276306, 0.00018846555030905) },
/* HOVTYPE_4 */ { 170, BOB(2, 2, 0.0010, 1.0), BOB(0.0031410926021636, 0.0031410926021636, 0.000005235154276306, 0.00018846555030905), BOB(0.0031410926021636, 0.0031410926021636, 0.000005235154276306, 0.00018846555030905) },
};
void func0f070a1c(struct modelrodata_bbox *bbox, f32 rot[3][3], struct coord *pos, struct coord *vertices)
@@ -5139,7 +5134,13 @@ void liftGoToStop(struct liftobj *lift, s32 stopnum)
}
}
f32 objGetHov04(struct defaultobj *obj)
/**
* For hover crates, hover bikes and hover beds.
*
* The value returned is the distance between the object's ground (when not falling)
* and its Y value. For crates, the value returned is typically between 65 and 75 (cm).
*/
f32 objGetHovBobOffsetY(struct defaultobj *obj)
{
struct hov *hov = NULL;
f32 result;
@@ -5153,7 +5154,7 @@ f32 objGetHov04(struct defaultobj *obj)
}
if (hov) {
result = hov->unk04;
result = hov->bobycur;
} else {
struct modelrodata_bbox *bbox = objFindBboxRodata(obj);
f32 value = objGetRotatedLocalYMinByMtx3(bbox, obj->realrot);
@@ -5163,13 +5164,13 @@ f32 objGetHov04(struct defaultobj *obj)
return result;
}
void hovUpdateGround(struct defaultobj *obj, struct hov *hov, struct coord *pos, s16 *rooms, f32 matrix[3][3])
void hovUpdateGround(struct defaultobj *obj, struct hov *hov, struct coord *pos, RoomNum *rooms, f32 matrix[3][3])
{
f32 ground;
s16 testrooms[8];
RoomNum testrooms[8];
struct coord testpos;
if (g_Vars.lvframe60 > hov->nexttick60) {
if (g_Vars.lvframe60 > hov->prevframe60) {
testpos.x = pos->x;
testpos.y = pos->y - 50;
testpos.z = pos->z;
@@ -5184,7 +5185,7 @@ void hovUpdateGround(struct defaultobj *obj, struct hov *hov, struct coord *pos,
}
hov->ground = ground;
hov->prevtick60 = g_Vars.lvframe60;
hov->prevgroundframe60 = g_Vars.lvframe60;
}
}
@@ -5198,8 +5199,8 @@ void hovTick(struct defaultobj *obj, struct hov *hov)
struct modelrodata_bbox *bbox;
struct coord sp1b4;
struct coord sp1a8;
s16 sp198[8];
s16 sp188[8];
RoomNum sp198[8];
RoomNum sp188[8];
Mtxf sp148;
Mtxf sp108;
Mtxf spc8;
@@ -5207,30 +5208,31 @@ void hovTick(struct defaultobj *obj, struct hov *hov)
struct hovtype *type;
f32 spbc;
f32 spb8;
f32 spb4;
f32 groundangle;
f32 xrot;
f32 spac;
s16 sp9c[8];
f32 ground;
RoomNum sp9c[8];
struct coord sp90;
bool sp8c;
bool moved;
f32 radius;
f32 ymax;
f32 ymin;
if (g_Vars.lvframe60 > hov->nexttick60) {
if (g_Vars.lvframe60 > hov->prevframe60) {
prop = obj->prop;
bbox = objFindBboxRodata(obj);
type = &g_HovTypes[hov->type];
sp8c = false;
moved = false;
if (hov->prevtick60 < g_Vars.lvframe60) {
if (g_Vars.lvframe60 > hov->prevgroundframe60) {
hovUpdateGround(obj, hov, &prop->pos, prop->rooms, obj->realrot);
}
hov->nexttick60 = g_Vars.lvframe60;
hov->prevframe60 = g_Vars.lvframe60;
// Calculate ground angle
if (obj->flags & OBJFLAG_DEACTIVATED) {
spb4 = 0.0f;
groundangle = 0.0f;
} else {
if (obj->flags3 & OBJFLAG3_GEOCYL) {
objGetBbox(prop, &radius, &ymax, &ymin);
@@ -5241,8 +5243,8 @@ void hovTick(struct defaultobj *obj, struct hov *hov)
sp1cc = bbox->zmax * 0.9f * obj->model->scale;
}
spbc = cosf(hov->unk10);
spb8 = sinf(hov->unk10);
spbc = cosf(hov->yrot);
spb8 = sinf(hov->yrot);
sp1b4.x = prop->pos.x + sp1d0 * spb8;
sp1b4.y = prop->pos.y;
@@ -5269,81 +5271,84 @@ void hovTick(struct defaultobj *obj, struct hov *hov)
ground2 = cdFindGroundAtCyl(&sp1a8, 5, sp188, NULL, NULL);
if (ground1 >= -30000.0f && ground2 >= -30000.0f) {
spb4 = atan2f(ground1 - ground2, sp1cc - sp1d0);
groundangle = atan2f(ground1 - ground2, sp1cc - sp1d0);
if (spb4 >= M_PI) {
spb4 -= M_BADTAU;
if (groundangle >= M_PI) {
groundangle -= M_BADTAU;
}
} else if (ground1 >= -30000.0f) {
spb4 = atan2f(ground1 - hov->ground, -sp1d0);
groundangle = atan2f(ground1 - hov->ground, -sp1d0);
if (spb4 >= M_PI) {
spb4 -= M_BADTAU;
if (groundangle >= M_PI) {
groundangle -= M_BADTAU;
}
} else if (ground2 >= -30000.0f) {
spb4 = atan2f(hov->ground - ground2, sp1cc);
groundangle = atan2f(hov->ground - ground2, sp1cc);
if (spb4 >= M_PI) {
spb4 -= M_BADTAU;
if (groundangle >= M_PI) {
groundangle -= M_BADTAU;
}
} else {
spb4 = 0.0f;
groundangle = 0.0f;
}
}
spac = hov->ground;
ground = hov->ground;
if (obj->hidden & OBJHFLAG_GRABBED) {
if (spac < g_Vars.currentplayer->vv_ground - 70.0f) {
spac = g_Vars.currentplayer->vv_ground;
if (g_Vars.currentplayer->vv_ground - 70.0f > ground) {
ground = g_Vars.currentplayer->vv_ground;
}
}
if (hov->flags & 1) {
sp8c = true;
hov->unk04 = hov->unk08 = type->unk00;
hov->unk30 = spac;
hov->flags &= ~1;
if (hov->flags & HOVFLAG_FIRSTTICK) {
moved = true;
hov->bobycur = hov->bobytarget = type->bobymid;
hov->y = ground;
hov->flags &= ~HOVFLAG_FIRSTTICK;
if (obj->type == OBJTYPE_HOVERBIKE) {
psCreate(NULL, obj->prop, SFX_BIKE_PULSE, -1, -1, 0, 0, PSTYPE_NONE, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
}
}
applySpeed(&hov->unk04, hov->unk08, &hov->unk0c, type->unk0c, type->unk0c, type->unk10);
// Update Y bob
applySpeed(&hov->bobycur, hov->bobytarget, &hov->bobyspeed, type->bobyaccel, type->bobyaccel, type->bobymaxspeed);
if (hov->unk08 >= type->unk00 && hov->unk08 <= hov->unk04) {
hov->unk0c = 0.0f;
hov->unk08 = type->unk00 - type->unk04 - RANDOMFRAC() * type->unk08;
} else if (hov->unk08 < type->unk00 && hov->unk08 >= hov->unk04) {
hov->unk0c = 0.0f;
hov->unk08 = type->unk00 + type->unk04 + RANDOMFRAC() * type->unk08;
if (hov->bobytarget >= type->bobymid && hov->bobycur >= hov->bobytarget) {
hov->bobyspeed = 0.0f;
hov->bobytarget = type->bobymid - type->bobyminradius - RANDOMFRAC() * type->bobyrandradius;
} else if (hov->bobytarget < type->bobymid && hov->bobycur <= hov->bobytarget) {
hov->bobyspeed = 0.0f;
hov->bobytarget = type->bobymid + type->bobyminradius + RANDOMFRAC() * type->bobyrandradius;
}
applyRotation(&hov->unk14, hov->unk18, &hov->unk1c, type->unk1c, type->unk1c, type->unk20);
// Update pitch bob
applyRotation(&hov->bobpitchcur, hov->bobpitchtarget, &hov->bobpitchspeed, type->bobpitchaccel, type->bobpitchaccel, type->bobpitchmaxspeed);
if (hov->unk14 == hov->unk18) {
if (hov->unk1c <= 2.0f * type->unk1c && hov->unk1c >= 2.0f * -type->unk1c) {
hov->unk1c = 0.0f;
if (hov->bobpitchcur == hov->bobpitchtarget) {
if (hov->bobpitchspeed <= 2.0f * type->bobpitchaccel && hov->bobpitchspeed >= 2.0f * -type->bobpitchaccel) {
hov->bobpitchspeed = 0.0f;
if (hov->unk18 < M_PI) {
hov->unk18 = M_BADTAU - type->unk14 - RANDOMFRAC() * type->unk18;
if (hov->bobpitchtarget < M_PI) {
hov->bobpitchtarget = M_BADTAU - type->bobpitchminangle - RANDOMFRAC() * type->bobpitchrandangle;
} else {
hov->unk18 = type->unk14 + RANDOMFRAC() * type->unk18;
hov->bobpitchtarget = type->bobpitchminangle + RANDOMFRAC() * type->bobpitchrandangle;
}
}
}
applyRotation(&hov->unk20, hov->unk24, &hov->unk28, type->unk2c, type->unk2c, type->unk30);
// Update roll bob
applyRotation(&hov->bobrollcur, hov->bobrolltarget, &hov->bobrollspeed, type->bobrollaccel, type->bobrollaccel, type->bobrollmaxspeed);
if (hov->unk20 == hov->unk24) {
if (hov->unk28 <= 2.0f * type->unk2c && hov->unk28 >= 2.0f * -type->unk2c) {
hov->unk28 = 0.0f;
if (hov->bobrollcur == hov->bobrolltarget) {
if (hov->bobrollspeed <= 2.0f * type->bobrollaccel && hov->bobrollspeed >= 2.0f * -type->bobrollaccel) {
hov->bobrollspeed = 0.0f;
if (hov->unk24 < M_PI) {
hov->unk24 = M_BADTAU - type->unk24 - RANDOMFRAC() * type->unk28;
if (hov->bobrolltarget < M_PI) {
hov->bobrolltarget = M_BADTAU - type->bobrollminangle - RANDOMFRAC() * type->bobrollrandangle;
} else {
hov->unk24 = type->unk24 + RANDOMFRAC() * type->unk28;
hov->bobrolltarget = type->bobrollminangle + RANDOMFRAC() * type->bobrollrandangle;
}
}
}
@@ -5353,12 +5358,12 @@ void hovTick(struct defaultobj *obj, struct hov *hov)
f32 f12;
f32 f2;
hov->unk2c += (spb4 - hov->unk2c) * (PAL ? 0.0893f : 0.075f);
hov->groundpitch += (groundangle - hov->groundpitch) * (PAL ? 0.0893f : 0.075f);
f0 = spac - hov->unk30;
f0 = ground - hov->y;
f12 = (PAL ? 0.102000005f : 0.085f);
if (hov->unk30 < hov->ground) {
if (hov->y < hov->ground) {
if (f0 >= 0.0f) {
f2 = f0;
} else {
@@ -5392,28 +5397,28 @@ void hovTick(struct defaultobj *obj, struct hov *hov)
}
}
hov->unk30 += f0;
hov->y += f0;
if (f0 > 1.0f || f0 < -1.0f) {
sp8c = true;
moved = true;
}
}
if (sp8c) {
if (moved) {
func0f069c70(obj, true, true);
}
if (hov->unk30 < hov->ground - 5.0f || hov->unk30 > hov->ground + 5.0f) {
if (hov->y < hov->ground - 5.0f || hov->y > hov->ground + 5.0f) {
obj->flags |= OBJFLAG_HOVERCAR_ISHOVERBOT;
} else {
obj->flags &= ~OBJFLAG_HOVERCAR_ISHOVERBOT;
}
prop->pos.y = objGetHov04(obj) + hov->unk30;
prop->pos.y = objGetHovBobOffsetY(obj) + hov->y;
mtx4LoadZRotation(hov->unk20, &sp148);
mtx4LoadZRotation(hov->bobrollcur, &sp148);
xrot = hov->unk2c + hov->unk14;
xrot = hov->groundpitch + hov->bobpitchcur;
if (xrot >= M_BADTAU) {
xrot -= M_BADTAU;
@@ -5423,7 +5428,7 @@ void hovTick(struct defaultobj *obj, struct hov *hov)
mtx4LoadXRotation(xrot, &sp108);
mtx00015be0(&sp108, &sp148);
mtx4LoadYRotation(hov->unk10, &sp108);
mtx4LoadYRotation(hov->yrot, &sp108);
mtx00015be0(&sp108, &sp148);
mtx00015f04(obj->model->scale, &sp148);
@@ -5459,10 +5464,10 @@ f32 hoverpropGetTurnAngle(struct defaultobj *obj)
if (obj->type == OBJTYPE_HOVERPROP) {
struct hoverpropobj *hoverprop = (struct hoverpropobj *)obj;
angle = hoverprop->hov.unk10;
angle = hoverprop->hov.yrot;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
struct hoverbikeobj *hoverbike = (struct hoverbikeobj *)obj;
angle = hoverbike->hov.unk10;
angle = hoverbike->hov.yrot;
}
return angle;
@@ -5472,10 +5477,10 @@ void hoverpropSetTurnAngle(struct defaultobj *obj, f32 angle)
{
if (obj->type == OBJTYPE_HOVERPROP) {
struct hoverpropobj *hoverprop = (struct hoverpropobj *)obj;
hoverprop->hov.unk10 = angle;
hoverprop->hov.yrot = angle;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
struct hoverbikeobj *hoverbike = (struct hoverbikeobj *)obj;
hoverbike->hov.unk10 = angle;
hoverbike->hov.yrot = angle;
}
}
@@ -5485,7 +5490,7 @@ s32 func0f072144(struct defaultobj *obj, struct coord *arg1, f32 arg2, bool arg3
f32 sp460[3][3];
f32 yrot;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
struct hov prevhov;
struct hov *hov = NULL;
union geounion geounion;
@@ -5636,7 +5641,7 @@ void hovercarStartNextPath(struct hovercarobj *hovercar)
s32 *pads;
struct pad pad;
Mtxf matrix;
s16 rooms[2];
RoomNum rooms[2];
hovercarFindNextPath(hovercar);
@@ -6012,7 +6017,7 @@ bool rocketTickFbw(struct weaponobj *rocket)
struct coord newpos;
struct coord dir;
u32 stack[2];
s16 newrooms[8];
RoomNum newrooms[8];
if (projectile->ownerprop && projectile->ownerprop->type == PROPTYPE_CHR) {
ownerchr = projectile->ownerprop->chr;
@@ -6189,7 +6194,7 @@ s32 projectileLaunch(struct defaultobj *obj, struct projectile *projectile, stru
}
if (cdresult == CDRESULT_NOCOLLISION) {
s16 rooms[8];
RoomNum rooms[8];
func0f065e74(&prop->pos, prop->rooms, &projectile->nextsteppos, rooms);
@@ -6201,7 +6206,7 @@ s32 projectileLaunch(struct defaultobj *obj, struct projectile *projectile, stru
roomsCopy(rooms, prop->rooms);
} else if (cdresult != CDRESULT_NOCOLLISION && obj->type == OBJTYPE_WEAPON) {
struct weaponobj *weapon = (struct weaponobj *)obj;
s16 rooms[8];
RoomNum rooms[8];
if (weapon->weaponnum == WEAPON_ROCKET || weapon->weaponnum == WEAPON_HOMINGROCKET) {
weapon->timer240 = 0;
@@ -6232,7 +6237,7 @@ s32 projectileTick(struct defaultobj *obj, bool *embedded)
bool result = false;
struct prop *prop = obj->prop;
struct coord sp5c8;
s16 sp5b8[8];
RoomNum sp5b8[8];
struct coord sp5ac;
f32 sp5a8;
struct coord sp59c;
@@ -6653,7 +6658,7 @@ s32 projectileTick(struct defaultobj *obj, bool *embedded)
ground = cdFindGroundAtCyl(&prop->pos, 2, prop->rooms, &obj->floorcol, NULL);
if (ground > -30000.0f) {
prop->pos.y = ground + objGetHov04(obj);
prop->pos.y = ground + objGetHovBobOffsetY(obj);
}
}
@@ -6666,7 +6671,7 @@ s32 projectileTick(struct defaultobj *obj, bool *embedded)
result = true;
} else if (projectile->flags & PROJECTILEFLAG_AIRBORNE) {
f32 sp390;
s16 roomnum;
RoomNum roomnum;
struct coord sp380;
f32 sp37c;
f32 realrot[3][3];
@@ -7151,7 +7156,7 @@ s32 projectileTick(struct defaultobj *obj, bool *embedded)
if (!handled) {
if (cdresult != CDRESULT_COLLISION) {
s16 rooms[8];
RoomNum rooms[8];
func0f065e74(&prop->pos, prop->rooms, &sp5dc, rooms);
@@ -7162,7 +7167,7 @@ s32 projectileTick(struct defaultobj *obj, bool *embedded)
propDeregisterRooms(prop);
roomsCopy(rooms, prop->rooms);
} else {
s16 rooms[8];
RoomNum rooms[8];
if (g_EmbedProp && (g_EmbedProp->type == PROPTYPE_CHR || g_EmbedProp->type == PROPTYPE_PLAYER)) {
sp5dc.x = prop->pos.x;
@@ -7448,7 +7453,7 @@ s32 projectileTick(struct defaultobj *obj, bool *embedded)
if (projectile->speed.f[0] != 0.0f || projectile->speed.f[2] != 0.0f || projectile->unk060 < 1.0f) {
f32 f12;
f32 spa4;
s16 roomnum;
RoomNum roomnum;
s32 i;
f32 sp98 = objGetRotatedLocalYMinByMtx3(objFindBboxRodata(obj), obj->realrot);
#if VERSION >= VERSION_NTSC_1_0
@@ -7818,7 +7823,7 @@ void platformDisplaceProps(struct prop *platform, s16 *propnums, struct coord *p
}
if (hov) {
hov->unk30 += newpos->y - prevpos->y;
hov->y += newpos->y - prevpos->y;
hov->ground += newpos->y - prevpos->y;
}
@@ -7886,7 +7891,7 @@ void platformDisplaceProps(struct prop *platform, s16 *propnums, struct coord *p
if (g_Vars.players[playernum]->inlift && !g_Vars.players[playernum]->onladder && !g_Vars.players[playernum]->isfalling) {
struct coord sp78;
s16 sp68[8];
RoomNum sp68[8];
f32 ydist = newpos->y - prevpos->y;
if (ydist != 0.0f) {
@@ -7979,7 +7984,7 @@ void liftTick(struct prop *prop)
f32 frac;
s32 move;
struct coord newpos;
s16 newrooms[8];
RoomNum newrooms[8];
struct coord prevpos;
#if VERSION >= VERSION_NTSC_1_0
f32 prevdist;
@@ -9013,11 +9018,11 @@ void autogunTickShoot(struct prop *autogunprop)
if (fireleft || fireright) {
struct coord gunpos;
s16 gunrooms[8];
RoomNum gunrooms[8];
struct coord dir;
bool missed = false;
struct coord hitpos;
s16 hitrooms[8];
RoomNum hitrooms[8];
bool makebeam = (autogun->firecount % 4) == 0;
struct prop *targetprop = autogun->target;
struct modelnode *flashnode;
@@ -9777,7 +9782,7 @@ void chopperIncrementMovement(struct prop *prop, f32 goalroty, f32 goalrotx, str
{
struct defaultobj *obj = prop->obj;
struct chopperobj *chopper = (struct chopperobj *)obj;
s16 newrooms[8];
RoomNum newrooms[8];
struct coord newpos;
f32 curroty;
f32 currotx;
@@ -10070,10 +10075,10 @@ void chopperTickFall(struct prop *chopperprop)
if (cdExamLos09(&chopperprop->pos, chopperprop->rooms, &newpos, CDTYPE_BG) == CDRESULT_COLLISION) {
struct coord sp74;
s16 room;
RoomNum room;
struct coord sp64;
f32 ground;
s16 newrooms[8];
RoomNum newrooms[8];
chopperprop->pos.y += 100;
ground = cdFindGroundAtCyl(&chopperprop->pos, 5, chopperprop->rooms, NULL, NULL);
@@ -10373,7 +10378,7 @@ void hovercarTick(struct prop *prop)
bool stopping;
struct pad pad;
struct coord sp214;
s16 sp210[2];
RoomNum sp210[2];
struct hovercarobj *hovercar = (struct hovercarobj *) prop->obj;
struct defaultobj *obj = &hovercar->base;
u32 stack;
@@ -10384,11 +10389,11 @@ void hovercarTick(struct prop *prop)
struct prop *doorprop;
struct coord sp1e4;
struct coord sp1d8;
s16 sp1d6;
RoomNum sp1d6;
f32 x;
f32 z;
struct coord sp1c0;
s16 sp1b0[8];
RoomNum sp1b0[8];
struct modelrodata_bbox *bbox;
f32 ymin;
s32 *padnum;
@@ -10401,7 +10406,7 @@ void hovercarTick(struct prop *prop)
f32 sp180;
f32 sp15c[3][3];
struct coord sp150;
s16 sp140[8];
RoomNum sp140[8];
f32 tmp2;
f32 sp138;
struct coord sp12c;
@@ -10550,7 +10555,7 @@ void hovercarTick(struct prop *prop)
// during acceleration can cause the hovercar to exceed its max speed.
if (hovercar->speedtime60 >= 0) {
if (1);
if (hovercar->speedtime60 <= g_Vars.lvupdate60freal) {
if (g_Vars.lvupdate60freal >= hovercar->speedtime60) {
hovercar->speed = hovercar->speedaim;
} else {
hovercar->speed += (hovercar->speedaim - hovercar->speed) * g_Vars.lvupdate60freal / hovercar->speedtime60;
@@ -11030,7 +11035,7 @@ s32 objTickPlayer(struct prop *prop)
struct modelrenderdata sp476 = {0, 1, 3};
Mtxf sp412;
struct coord sp400;
s16 sp384[8];
RoomNum sp384[8];
struct hov *hov = NULL;
if (fulltick) {
@@ -11089,13 +11094,13 @@ s32 objTickPlayer(struct prop *prop)
hovUpdateGround(obj, hov, &prop->pos, prop->rooms, obj->realrot);
hoverpropSetTurnAngle(obj, atan2f(sp412.m[2][0], sp412.m[2][2]));
hov->unk14 = 0;
hov->unk1c = 0;
hov->unk20 = 0;
hov->unk28 = 0;
hov->unk30 = hov->ground;
hov->unk04 = prop->pos.y - hov->ground;
hov->unk0c = 0;
hov->bobpitchcur = 0;
hov->bobpitchspeed = 0;
hov->bobrollcur = 0;
hov->bobrollspeed = 0;
hov->y = hov->ground;
hov->bobycur = prop->pos.y - hov->ground;
hov->bobyspeed = 0;
}
if ((obj->flags & OBJFLAG_IGNOREFLOORCOLOUR) == 0) {
@@ -11116,7 +11121,7 @@ s32 objTickPlayer(struct prop *prop)
struct modelrenderdata sp312 = {0, 1, 3};
Mtxf sp248;
struct coord sp236;
s16 sp220[8];
RoomNum sp220[8];
s32 numchrs;
Mtxf sp152;
s32 sp148;
@@ -14391,7 +14396,7 @@ bool objDrop(struct prop *prop, bool lazy)
struct model *model;
Mtxf spf0;
struct coord spe4;
s16 rooms[8];
RoomNum rooms[8];
if ((obj->hidden & OBJHFLAG_EMBEDDED) && obj->embedment->projectile) {
struct projectile *projectile2 = obj->embedment->projectile;
@@ -14708,7 +14713,7 @@ void objCheckDestroyed(struct defaultobj *obj, struct coord *pos, s32 playernum)
struct prop *prop = obj->prop;
struct prop *rootprop = prop;
s16 exptype = g_PropExplosionTypes[8 + obj->modelnum];
s16 rooms[8];
RoomNum rooms[8];
// If in Deep Sea outro
if (g_Vars.tickmode == TICKMODE_CUTSCENE && g_CutsceneAnimNum == ANIM_CUT_PAM_OUTRO_CAM) {
@@ -18765,7 +18770,7 @@ s32 weaponTestForPickup(struct prop *prop)
return objTestForPickup(prop);
}
void weaponSetGunfireVisible(struct prop *prop, bool visible, s16 room)
void weaponSetGunfireVisible(struct prop *prop, bool visible, RoomNum room)
{
u32 stack[4];
bool flash = false;
@@ -19301,12 +19306,12 @@ void doorDeactivatePortal(struct doorobj *door)
}
}
struct prop *doorInit(struct doorobj *door, struct coord *pos, Mtxf *mtx, s16 *rooms, struct coord *coord, struct coord *centre)
struct prop *doorInit(struct doorobj *door, struct coord *pos, Mtxf *mtx, RoomNum *rooms, struct coord *coord, struct coord *centre)
{
struct prop *prop;
union modelrodata *rodata;
Mtxf sp38;
s16 sp28[8];
RoomNum sp28[8];
door->base.flags |= OBJFLAG_00000100;
prop = objInitWithAutoModel(&door->base);
@@ -19809,10 +19814,10 @@ s32 doorIsOpen(struct doorobj *door)
return (door->mode == DOORMODE_IDLE || door->mode == DOORMODE_WAITING) && door->frac >= door->maxfrac;
}
s32 func0f08e5a8(s16 *rooms2, struct screenbox *box)
s32 func0f08e5a8(RoomNum *rooms2, struct screenbox *box)
{
bool result = false;
s16 *rooms = rooms2;
RoomNum *rooms = rooms2;
s32 roomnum = *rooms;
while (roomnum != -1) {
@@ -19917,8 +19922,8 @@ bool posIsInObjFadeDistance(struct coord *pos, f32 modelscale)
bool func0f08e8ac(struct prop *prop, struct coord *pos, f32 arg2, bool arg3)
{
s16 *rooms;
s32 roomnum;
RoomNum *rooms;
RoomNum roomnum;
bool result = false;
u32 stack;
@@ -21127,7 +21132,7 @@ void projectileCreate(struct prop *fromprop, struct fireslotthing *arg1, struct
f32 z;
f32 sqdist;
struct prop *obstacle = NULL;
s16 sp1c8[8];
RoomNum sp1c8[8];
u8 forcebeam = false;
struct beam beam;
struct coord frompos;
+7 -7
View File
@@ -232,7 +232,7 @@ void psTickChannel(s32 channelnum)
#endif
{
struct coord *pos = NULL;
s16 *rooms = NULL;
RoomNum *rooms = NULL;
s32 newvol;
s32 newpan;
s32 newfx;
@@ -261,7 +261,7 @@ void psTickChannel(s32 channelnum)
}
} else {
if (pos && rooms) {
s16 *tmprooms;
RoomNum *tmprooms;
if (channel->flags & PSFLAG_IGNOREROOMS) {
tmprooms = NULL;
@@ -645,7 +645,7 @@ void psStopOneShootChannel(struct prop *prop)
s16 psCreate(struct pschannel *channel, struct prop *prop, s16 soundnum, s16 padnum,
s32 vol, u16 flags, u16 flags2, s32 type,
struct coord *pos, f32 pitch, s16 *rooms, s32 room,
struct coord *pos, f32 pitch, RoomNum *rooms, s32 room,
f32 dist1, f32 dist2, f32 dist3)
{
union soundnumhack spac;
@@ -1123,12 +1123,12 @@ void psModify(s32 channelnum, s32 volume, s16 padnum, struct prop *prop, s32 vol
}
}
s32 psCalculateVol(struct coord *pos, f32 dist1, f32 dist2, f32 dist3, s16 *rooms, s16 soundnum, s32 arg6, f32 *playerdistptr)
s32 psCalculateVol(struct coord *pos, f32 dist1, f32 dist2, f32 dist3, RoomNum *rooms, s16 soundnum, s32 arg6, f32 *playerdistptr)
{
union soundnumhack sp6c;
union soundnumhack sp68;
f32 playerdist;
s16 roomnum;
RoomNum roomnum;
s32 s0;
s32 i;
@@ -1382,7 +1382,7 @@ s32 psCalculatePan(struct coord *pos, f32 dist1, f32 dist2, f32 dist3, f32 playe
* If the given soundnum were to play at the given world position, calculate the
* final volume and pan and write them to the vol and pan pointers.
*/
void psGetTheoreticalVolPan(struct coord *pos, s16 *rooms, s16 soundnum, s32 *vol, s32 *pan)
void psGetTheoreticalVolPan(struct coord *pos, RoomNum *rooms, s16 soundnum, s32 *vol, s32 *pan)
{
f32 dist1;
f32 dist2;
@@ -1434,7 +1434,7 @@ void psGetTheoreticalVolPan(struct coord *pos, s16 *rooms, s16 soundnum, s32 *vo
}
#endif
void psApplyVolPan(struct sndstate *handle, struct coord *pos, f32 dist1, f32 dist2, f32 dist3, s16 *rooms, s16 soundnum, s32 arg7, f32 *distanceptr)
void psApplyVolPan(struct sndstate *handle, struct coord *pos, f32 dist1, f32 dist2, f32 dist3, RoomNum *rooms, s16 soundnum, s32 arg7, f32 *distanceptr)
{
union soundnumhack sp5c;
union soundnumhack sp58;
+2 -2
View File
@@ -47,8 +47,8 @@
*/
u8 *g_RoomMtxAges;
s16 *g_RoomMtxLinkedRooms;
s16 *g_RoomMtxBaseRooms;
RoomNum *g_RoomMtxLinkedRooms;
RoomNum *g_RoomMtxBaseRooms;
f32 *g_RoomMtxScales;
Mtxf *g_RoomMtxMatrices;
+4 -4
View File
@@ -15,10 +15,10 @@ void roomsReset(void)
g_RoomMtxNumSlots = PLAYERCOUNT() >= 2 ? 200 : 120;
g_RoomMtxAges = mempAlloc(ALIGN16(g_RoomMtxNumSlots), MEMPOOL_STAGE);
g_RoomMtxLinkedRooms = mempAlloc(ALIGN16(g_RoomMtxNumSlots * sizeof(s16)), MEMPOOL_STAGE);
g_RoomMtxBaseRooms = mempAlloc(ALIGN16(g_RoomMtxNumSlots * sizeof(s16)), MEMPOOL_STAGE);
g_RoomMtxScales = mempAlloc(ALIGN16(g_RoomMtxNumSlots * sizeof(f32)), MEMPOOL_STAGE);
g_RoomMtxMatrices = mempAlloc(ALIGN16(g_RoomMtxNumSlots * sizeof(Mtxf)), MEMPOOL_STAGE);
g_RoomMtxLinkedRooms = mempAlloc(ALIGN16(g_RoomMtxNumSlots * sizeof(*g_RoomMtxLinkedRooms)), MEMPOOL_STAGE);
g_RoomMtxBaseRooms = mempAlloc(ALIGN16(g_RoomMtxNumSlots * sizeof(*g_RoomMtxBaseRooms)), MEMPOOL_STAGE);
g_RoomMtxScales = mempAlloc(ALIGN16(g_RoomMtxNumSlots * sizeof(*g_RoomMtxScales)), MEMPOOL_STAGE);
g_RoomMtxMatrices = mempAlloc(ALIGN16(g_RoomMtxNumSlots * sizeof(*g_RoomMtxMatrices)), MEMPOOL_STAGE);
for (i = 0; i < PLAYERCOUNT(); i++) {
g_Vars.players[i]->lastroomforoffset = -1;
+16 -16
View File
@@ -389,7 +389,7 @@ void setupCreateObject(struct defaultobj *obj, s32 cmdindex)
struct coord centre;
f32 scale;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
struct prop *prop2;
u32 flag40;
u32 stack;
@@ -1084,7 +1084,7 @@ void setupCreateDoor(struct doorobj *door, s32 cmdindex)
struct prop *prop;
s32 siblingcmdindex;
struct coord pos;
s16 rooms[8];
RoomNum rooms[8];
Mtxf finalmtx;
struct coord centre;
Mtxf zrotmtx;
@@ -1184,21 +1184,21 @@ void setupCreateDoor(struct doorobj *door, s32 cmdindex)
void setupCreateHov(struct defaultobj *obj, struct hov *hov)
{
hov->unk04 = 0;
hov->unk08 = 0;
hov->unk0c = 0;
hov->unk10 = atan2f(obj->realrot[2][0], obj->realrot[2][2]);
hov->unk14 = 0;
hov->unk18 = 0;
hov->unk1c = 0;
hov->unk20 = 0;
hov->unk24 = 0;
hov->unk28 = 0;
hov->unk2c = 0;
hov->unk30 = 0;
hov->bobycur = 0;
hov->bobytarget = 0;
hov->bobyspeed = 0;
hov->yrot = atan2f(obj->realrot[2][0], obj->realrot[2][2]);
hov->bobpitchcur = 0;
hov->bobpitchtarget = 0;
hov->bobpitchspeed = 0;
hov->bobrollcur = 0;
hov->bobrolltarget = 0;
hov->bobrollspeed = 0;
hov->groundpitch = 0;
hov->y = 0;
hov->ground = 0;
hov->nexttick60 = -1;
hov->prevtick60 = -1;
hov->prevframe60 = -1;
hov->prevgroundframe60 = -1;
}
void setupLoadBriefing(s32 stagenum, u8 *buffer, s32 bufferlen, struct briefing *briefing)
+9 -9
View File
@@ -13,7 +13,7 @@ void coverAllocateSpecial(u16 *specialcovernums)
{
s32 i;
g_SpecialCoverNums = mempAlloc(ALIGN16(g_NumSpecialCovers * sizeof(u16)), MEMPOOL_STAGE);
g_SpecialCoverNums = mempAlloc(ALIGN16(g_NumSpecialCovers * sizeof(g_SpecialCoverNums[0])), MEMPOOL_STAGE);
if (g_SpecialCoverNums != NULL) {
for (i = 0; i < g_NumSpecialCovers; i++) {
@@ -26,17 +26,17 @@ void setupPrepareCover(void)
{
s32 i;
s32 numcovers = g_PadsFile->numcovers;
s16 *roomsptr;
RoomNum *roomsptr;
f32 scale = 1;
struct coord aimpos;
struct cover cover;
u16 specialcovernums[1024];
s16 inrooms[21];
s16 aboverooms[21];
RoomNum inrooms[21];
RoomNum aboverooms[21];
g_CoverFlags = mempAlloc(ALIGN16(numcovers * sizeof(u16)), MEMPOOL_STAGE);
g_CoverRooms = mempAlloc(ALIGN16(numcovers * sizeof(s32)), MEMPOOL_STAGE);
g_CoverCandidates = mempAlloc(ALIGN16(numcovers * 0x10), MEMPOOL_STAGE);
g_CoverFlags = mempAlloc(ALIGN16(numcovers * sizeof(g_CoverFlags[0])), MEMPOOL_STAGE);
g_CoverRooms = mempAlloc(ALIGN16(numcovers * sizeof(g_CoverRooms[0])), MEMPOOL_STAGE);
g_CoverCandidates = mempAlloc(ALIGN16(numcovers * sizeof(g_CoverCandidates[0])), MEMPOOL_STAGE);
g_NumSpecialCovers = 0;
g_SpecialCoverNums = NULL;
@@ -80,7 +80,7 @@ void setupPrepareCover(void)
s32 room = cdFindFloorRoomAtPos(cover.pos, roomsptr);
if (room > 0) {
g_CoverRooms[i] = (s16)room;
g_CoverRooms[i] = (RoomNum)room;
} else {
g_CoverRooms[i] = roomsptr[0];
}
@@ -106,7 +106,7 @@ void setupPrepareCover(void)
s32 aimroom = cdFindFloorRoomAtPos(&aimpos, roomsptr);
if (aimroom > 0) {
g_CoverFlags[i] |= (g_CoverRooms[i] == (s16)aimroom) ? COVERFLAG_AIMSAMEROOM : COVERFLAG_AIMDIFFROOM;
g_CoverFlags[i] |= (g_CoverRooms[i] == (RoomNum)aimroom) ? COVERFLAG_AIMSAMEROOM : COVERFLAG_AIMDIFFROOM;
} else {
g_CoverFlags[i] |= (g_CoverRooms[i] == roomsptr[0]) ? COVERFLAG_AIMSAMEROOM : COVERFLAG_AIMDIFFROOM;
}
+3 -3
View File
@@ -28,15 +28,15 @@
void setupPreparePads(void)
{
struct packedpad *packedpad;
s16 *roomsptr;
RoomNum *roomsptr;
s32 padnum;
s32 numpads;
s32 roomnum;
struct pad pad;
struct waypoint *waypoint;
struct waygroup *waygroup;
s16 inrooms[24];
s16 aboverooms[22];
RoomNum inrooms[24];
RoomNum aboverooms[22];
s32 offset;
g_PadsFile = (struct padsfileheader *)g_StageSetup.padfiledata;
+1 -1
View File
@@ -187,7 +187,7 @@ bool setup0f092304(struct defaultobj *obj, struct coord *arg1, struct coord *arg
return setupGetObjBbox(obj, &obj->prop->pos, obj->realrot, arg1, arg2);
}
void setup0f09233c(struct defaultobj *obj, struct coord *pos, f32 realrot[3][3], s16 *rooms)
void setup0f09233c(struct defaultobj *obj, struct coord *pos, f32 realrot[3][3], RoomNum *rooms)
{
struct coord a;
struct coord b;
+4 -4
View File
@@ -19,7 +19,7 @@ struct shard *g_Shards;
s32 g_NextShardNum = 0;
bool g_ShardsActive = false;
void shardCreate(s16 room, struct coord *pos, f32 rotx, f32 size, s32 type);
void shardCreate(RoomNum room, struct coord *pos, f32 rotx, f32 size, s32 type);
void shardsCreate(struct coord *pos, f32 *rotx, f32 *roty, f32 *rotz, f32 relxmin, f32 relxmax, f32 relymin, f32 relymax, s32 type, struct prop *prop)
{
@@ -111,7 +111,7 @@ void shardsCreate(struct coord *pos, f32 *rotx, f32 *roty, f32 *rotz, f32 relxmi
}
}
void shardCreate(s16 room, struct coord *pos, f32 rotx, f32 size, s32 type)
void shardCreate(RoomNum room, struct coord *pos, f32 rotx, f32 size, s32 type)
{
f32 velx = RANDOMFRAC() * 2.0f - 1.0f;
f32 vely = RANDOMFRAC() * 1.12f - 0.12f;
@@ -211,7 +211,7 @@ void shardCreate(s16 room, struct coord *pos, f32 rotx, f32 size, s32 type)
Gfx *shardsRenderWood(Gfx *gdl)
{
if (g_ShardsActive) {
s16 prevroom = 0;
RoomNum prevroom = 0;
s32 i;
Mtxf shardmtx;
s32 j;
@@ -325,7 +325,7 @@ Gfx *shardsRenderWood(Gfx *gdl)
Gfx *shardsRenderGlass(Gfx *gdl)
{
if (g_ShardsActive) {
s16 prevroom = 0;
RoomNum prevroom = 0;
s32 i;
Mtxf shardmtx;
s32 j;
+5 -5
View File
@@ -261,7 +261,7 @@ Gfx *smokeRenderPart(struct smoke *smoke, struct smokepart *part, Gfx *gdl, stru
return gdl;
}
struct smoke *smokeCreate(struct coord *pos, s16 *rooms, s16 type)
struct smoke *smokeCreate(struct coord *pos, RoomNum *rooms, s16 type)
{
struct smoke *smoke = NULL;
s32 playercount = PLAYERCOUNT();
@@ -326,7 +326,7 @@ struct smoke *smokeCreate(struct coord *pos, s16 *rooms, s16 type)
return smoke;
}
bool smokeCreateForHand(struct coord *pos, s16 *rooms, s16 type, s32 handnum)
bool smokeCreateForHand(struct coord *pos, RoomNum *rooms, s16 type, s32 handnum)
{
struct smoke *smoke;
s32 i;
@@ -368,7 +368,7 @@ bool smokeCreateForHand(struct coord *pos, s16 *rooms, s16 type, s32 handnum)
* smoke parts have a size of zero. Perhaps the caller is supposed to check if
* this function returns false and reuse the zero-sized smoke parts if so?
*/
bool smokeCreateWithSource(void *source, struct coord *pos, s16 *rooms, s16 type, bool srcispadeffect)
bool smokeCreateWithSource(void *source, struct coord *pos, RoomNum *rooms, s16 type, bool srcispadeffect)
{
struct smoke *smoke;
s32 i;
@@ -415,7 +415,7 @@ void smokeCreateAtProp(struct prop *prop, s16 type)
smokeCreateWithSource(prop, &prop->pos, prop->rooms, type, false);
}
void smokeCreateAtPadEffect(struct padeffectobj *effect, struct coord *pos, s16 *rooms, s16 type)
void smokeCreateAtPadEffect(struct padeffectobj *effect, struct coord *pos, RoomNum *rooms, s16 type)
{
smokeCreateWithSource(effect, pos, rooms, type, true);
}
@@ -432,7 +432,7 @@ void smokeClearForProp(struct prop *prop)
}
}
struct smoke *smokeCreateSimple(struct coord *pos, s16 *rooms, s16 type)
struct smoke *smokeCreateSimple(struct coord *pos, RoomNum *rooms, s16 type)
{
return smokeCreate(pos, rooms, type);
}
+4 -4
View File
@@ -245,9 +245,9 @@ bool splat0f149274(f32 arg0, struct prop *chrprop, struct shotdata *shotdata, f3
struct prop *objprop;
struct hitthing hitthing;
struct hitthing besthitthing;
s16 rooms[32];
s16 gunrooms[8];
s16 endrooms[8];
RoomNum rooms[32];
RoomNum gunrooms[8];
RoomNum endrooms[8];
struct coord endpos;
s32 i;
struct coord *sp50c;
@@ -422,7 +422,7 @@ void splat0f14986c(struct splatdata *splat)
bool sp84 = splat->isskedar & 1;
bool translucent = splat->translucent;
f32 distance;
s16 smokerooms[2];
RoomNum smokerooms[2];
texnum = WALLHITTEX_BLOOD1 + (random() % 3);
+4 -4
View File
@@ -532,10 +532,10 @@ void titleInitPdLogo(void)
{
struct coord coord = {0, 0, 0};
g_ModelStates[MODEL_NLOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_NLOGO].fileid, nextaddr, 0x47800, 0);
g_ModelStates[MODEL_NLOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_NLOGO].fileid, nextaddr, TITLE_ALLOCSIZE, 0);
size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_NLOGO].fileid));
nextaddr += size;
remaining = 0x47800 - size;
remaining = TITLE_ALLOCSIZE - size;
modelAllocateRwData(g_ModelStates[MODEL_NLOGO].modeldef);
g_TitleModel = modelmgrInstantiateModelWithAnim(g_ModelStates[MODEL_NLOGO].modeldef);
@@ -1782,7 +1782,7 @@ void titleInitNintendoLogo(void)
{
struct coord coord = {0, 0, 0};
g_ModelStates[MODEL_NINTENDOLOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_NINTENDOLOGO].fileid, nextaddr, 0x47800, 0);
g_ModelStates[MODEL_NINTENDOLOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_NINTENDOLOGO].fileid, nextaddr, TITLE_ALLOCSIZE, 0);
modelAllocateRwData(g_ModelStates[MODEL_NINTENDOLOGO].modeldef);
g_TitleModel = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_NINTENDOLOGO].modeldef);
@@ -1941,7 +1941,7 @@ void titleInitRareLogo(void)
{
struct coord coord = {0, 0, 0};
g_ModelStates[MODEL_RARELOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_RARELOGO].fileid, nextaddr, 0x47800, 0);
g_ModelStates[MODEL_RARELOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_RARELOGO].fileid, nextaddr, TITLE_ALLOCSIZE, 0);
modelAllocateRwData(g_ModelStates[MODEL_RARELOGO].modeldef);
g_TitleModel = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_RARELOGO].modeldef);
+1 -1
View File
@@ -21,7 +21,7 @@ void titleReset(void)
g_TitleNextMode = TITLEMODE_SKIP;
}
var8009cca0 = mempAlloc(0x47800, MEMPOOL_STAGE);
var8009cca0 = mempAlloc(TITLE_ALLOCSIZE, MEMPOOL_STAGE);
getitleReset();
}
+5 -5
View File
@@ -1248,9 +1248,9 @@ void frEndSession(bool hidetargets)
s32 j;
s16 propnums[256];
s16 *propnumptr;
s16 rooms[20];
RoomNum rooms[20];
u32 stack1;
s16 rooms2[10];
RoomNum rooms2[10];
u32 stack2;
if (g_FrDataLoaded) {
@@ -1507,8 +1507,8 @@ bool frIsAmmoWasted(void)
s32 ammototal[2];
s16 *propnumptr;
s16 propnums[258];
s16 rooms20[22];
s16 rooms10[12];
RoomNum rooms20[22];
RoomNum rooms10[12];
u32 stack[4];
s32 ammotype;
struct hand *hand;
@@ -3144,7 +3144,7 @@ void htEnd(void)
struct prop *prop;
s16 *propnum;
s16 propnums[256];
s16 rooms[5] = { 0x0016, 0x0017, 0x0018, 0x0019, -1 };
RoomNum rooms[5] = { 0x0016, 0x0017, 0x0018, 0x0019, -1 };
struct waypoint *waypoints = g_StageSetup.waypoints;
g_HtData.intraining = false;
+2 -2
View File
@@ -633,7 +633,7 @@ const char var7f1b5c44[] = "";
const char var7f1b5c48[] = "";
void wallhitCreate(struct coord *relpos, struct coord *arg1, struct coord *arg2, s16 arg3[3],
s16 arg4[3], s16 texnum, s16 room, struct prop *objprop,
s16 arg4[3], s16 texnum, RoomNum room, struct prop *objprop,
s8 mtxindex, s8 arg9, struct chrdata *chr, bool xlu)
{
f32 scale = RANDOMFRAC() * 0.1f + 0.6f;
@@ -648,7 +648,7 @@ void wallhitCreate(struct coord *relpos, struct coord *arg1, struct coord *arg2,
}
void wallhitCreateWith20Args(struct coord *relpos, struct coord *arg1, struct coord *arg2, s16 arg3[3],
s16 arg4[3], s16 texnum, s16 room, struct prop *objprop,
s16 arg4[3], s16 texnum, RoomNum room, struct prop *objprop,
struct prop *chrprop, s8 mtxindex, s8 arg10, struct chrdata *chr,
f32 width, f32 height, u8 minalpha, u8 maxalpha,
s32 rotdeg, u32 timermax, u32 timerspeed, bool xlu)
+2 -2
View File
@@ -856,7 +856,7 @@ Gfx *weatherRenderRain(Gfx *gdl, struct weatherdata *weather, s32 arg2)
u32 stack2;
struct coord distcamtobbmax;
struct coord distcamtobbmin;
s16 neighbours[20];
RoomNum neighbours[20];
particledata = weather->particledata[arg2];
numtris = 0;
@@ -2872,7 +2872,7 @@ Gfx *weatherRenderSnow(Gfx *gdl, struct weatherdata *weather, s32 arg2)
s32 i; // 184
struct coord sp178;
struct coord sp16c;
s16 sp144[20];
RoomNum sp144[20];
struct coord sp124;
struct coord sp118;
f32 f26;
+2 -2
View File
@@ -232,8 +232,8 @@ extern bool g_FogEnabled;
extern bool g_EnvHasTransparency;
extern struct distfadesettings *g_EnvDistFadeSettingsPtr;
extern u8 *g_RoomMtxAges;
extern s16 *g_RoomMtxLinkedRooms;
extern s16 *g_RoomMtxBaseRooms;
extern RoomNum *g_RoomMtxLinkedRooms;
extern RoomNum *g_RoomMtxBaseRooms;
extern f32 *g_RoomMtxScales;
extern Mtxf *g_RoomMtxMatrices;
extern struct fileinfo g_FileInfo[NUM_FILES];
+2 -2
View File
@@ -4334,11 +4334,11 @@
* Gets the distance from chr to pad, but only if they are on the same floor
* (ie. Y difference is less than 150).
*/
#define if_chr_same_floor_distance_to_pad_lt(chr, pad, distance, label) \
#define if_chr_same_floor_distance_to_pad_lt(chr, distance, pad, label) \
mkshort(0x01df), \
chr, \
mkshort(pad), \
mkshort(distance / 10), \
mkshort(pad), \
label,
/**
+56 -27
View File
@@ -1347,6 +1347,9 @@
#define HATTYPE_METAL 3
#define HATTYPE_CLOTH 5
#define HEADANIM_RESTING 0
#define HEADANIM_MOVING 1
#define HEADBODYTYPE_DEFAULT 0
#define HEADBODYTYPE_FEMALE 1
#define HEADBODYTYPE_FEMALEGUARD 2
@@ -1382,6 +1385,8 @@
#define HITPART_GENERAL 200
#define HITPART_GENERALHALF 201
#define HOVFLAG_FIRSTTICK 1
#define HOVTYPE_BED 0
#define HOVTYPE_BIKE 1
#define HOVTYPE_CRATE 2
@@ -3264,33 +3269,57 @@
#define PADFLAG_AIDUCK 0x10000
#define PADFLAG_AIBOTINUSE 0x20000
#define PAK010_00 0
#define PAK010_01 1
#define PAK010_02 2
#define PAK010_03 3
#define PAK010_04 4
#define PAK010_05 5
#define PAK010_06 6
#define PAK010_07 7
#define PAK010_08 8
#define PAK010_09 9
#define PAK010_10 10
#define PAK010_11 11
#define PAK010_12 12
#define PAK010_13 13
#define PAK010_14 14
#define PAK010_15 15
#define PAK010_16 16
#define PAK010_17 17
#define PAK010_18 18
#define PAK010_19 19
#define PAK010_20 20
#define PAK010_21 21
#define PAK010_22 22
#define PAK010_24 24
#define PAK010_25 25
#define PAK010_26 26
#define PAK010_27 27
#define PAK008_00 0
#define PAK008_01 1
#define PAK008_02 2
#define PAK008_03 3
#define PAK008_04 4
#define PAK008_05 5
#define PAK008_06 6
#define PAK008_07 7
#define PAK008_08 8
#define PAK008_09 9
#define PAK008_11 11
#define PAK008_12 12
#define PAK00C_00 0
#define PAK00C_01 1
#define PAK00C_02 2
#define PAK00C_03 3
#define PAKERRORDIALOG_FULL 0
#define PAKERRORDIALOG_CORRUPT 1
#define PAKERRORDIALOG_DEVICEERROR 2
#define PAKERRORDIALOG_GB_UNREADABLE 3
#define PAKERRORDIALOG_DATALOST 4
#define PAKSTATE_NOPAK 0
#define PAKSTATE_UNPLUGGING 1
#define PAKSTATE_PROBE 2
#define PAKSTATE_MEM_DISPATCH 3
#define PAKSTATE_MEM_PRE_PREPARE 4
#define PAKSTATE_MEM_PREPARE 5
#define PAKSTATE_MEM_POST_PREPARE 6
#define PAKSTATE_07 7
#define PAKSTATE_GB_PRE_PREPARE 8
#define PAKSTATE_GB_PREPARE 9
#define PAKSTATE_GB_POST_PREPARE1 10
#define PAKSTATE_READY 11
#define PAKSTATE_12 12
#define PAKSTATE_13 13
#define PAKSTATE_MEM_ENTER_DEVICEERROR 14
#define PAKSTATE_MEM_ENTER_CORRUPT 15
#define PAKSTATE_MEM_ENTER_FULL 16
#define PAKSTATE_17 17
#define PAKSTATE_18 18
#define PAKSTATE_MEM_DEVICEERROR 19
#define PAKSTATE_MEM_CORRUPT 20
#define PAKSTATE_MEM_FULL 21
#define PAKSTATE_22 22
#define PAKSTATE_GB_POST_PREPARE2 24
#define PAKSTATE_GB_POST_PREPARE3 25
#define PAKSTATE_GB_OPEN_UNREADABLE 26
#define PAKSTATE_GB_IDLE_UNREADABLE 27
#define PAK_ERR1_OK 0
#define PAK_ERR1_NOPAK PFS_ERR_NOPACK /* no memory card is plugged */
+2 -2
View File
@@ -46,7 +46,7 @@ extern s32 g_SoundMode;
extern s32 g_SndNumPlaying;
extern struct audiorussmapping g_AudioRussMappings[];
extern struct audioconfig g_AudioConfigs[];
extern bool var8005eedc;
extern bool g_JoyPfsPollMasterEnabled;
extern f32 var8005ef10[2];
extern s32 g_NumGlobalAilists;
extern s32 g_NumLvAilists;
@@ -310,7 +310,7 @@ extern struct menudialogdef g_MpEditSimulant4MbMenuDialog;
extern struct menudialogdef g_AdvancedSetup4MbMenuDialog;
extern struct filelist *g_FileLists[MAX_PLAYERS];
extern bool var80075bd0[];
extern struct var80075c00 var80075c00[];
extern struct headanim g_HeadAnims[2];
extern s32 var80075d60;
extern s32 var80075d64;
extern s32 var80075d68;
+9 -9
View File
@@ -72,25 +72,25 @@ bool bgTestHitInVtxBatch(struct coord *arg0, struct coord *arg1, struct coord *a
s32 bg0f1612e4(struct coord *bbmin, struct coord *bbmax, struct coord *frompos, struct coord *dist, struct coord *arg4, struct coord *arg5);
bool bgTestHitInRoom(struct coord *frompos, struct coord *topos, s32 roomnum, struct hitthing *hitthing);
bool bgRoomIsLoaded(s32 room);
bool bgRoomContainsCoord(struct coord *pos, s16 roomnum);
bool bgTestPosInRoomCheap(struct coord *pos, s16 roomnum);
bool bgTestPosInRoomExpensive(struct coord *pos, s16 roomnum);
bool bgTestPosInRoom(struct coord *pos, s16 roomnum);
void bgFindRoomsByPos(struct coord *pos, s16 *inrooms, s16 *aboverooms, s32 max, s16 *bestroom);
bool bgRoomContainsCoord(struct coord *pos, RoomNum roomnum);
bool bgTestPosInRoomCheap(struct coord *pos, RoomNum roomnum);
bool bgTestPosInRoomExpensive(struct coord *pos, RoomNum roomnum);
bool bgTestPosInRoom(struct coord *pos, RoomNum roomnum);
void bgFindRoomsByPos(struct coord *pos, RoomNum *inrooms, RoomNum *aboverooms, s32 max, RoomNum *bestroom);
bool bgCmdPushValue(bool value);
bool bgCmdPopValue(void);
bool bgCmdGetNthValueFromEnd(s32 offset);
struct bgcmd *bgCmdExecuteBranch(struct bgcmd *cmd, bool s2);
struct bgcmd *bgCmdExecute(struct bgcmd *cmd);
void bgTickPortalsXray(void);
void bgAddToSnake(s16 fromroomnum, s16 roomnum, s16 draworder, struct screenbox *box);
void bgAddToSnake(RoomNum fromroomnum, RoomNum roomnum, s16 draworder, struct screenbox *box);
void bgConsumeSnakeItem(struct bgsnakeitem *arg0);
bool bgTryConsumeSnake(void);
void bgChooseRoomsToLoad(void);
void bgTickPortals(void);
Gfx *bgRenderSceneAndLoadCandidate(Gfx *gdl);
s32 bgGetForceOnscreenRooms(s16 *rooms, s32 len);
s32 bgRoomGetNeighbours(s32 room, s16 *rooms, s32 len);
s32 bgGetForceOnscreenRooms(RoomNum *rooms, s32 len);
s32 bgRoomGetNeighbours(s32 room, RoomNum *rooms, s32 len);
bool bgRoomsAreNeighbours(s32 roomnum1, s32 roomnum2);
void bgCalculateScreenProperties(void);
void bgExpandRoomToPortals(s32 roomnum);
@@ -101,6 +101,6 @@ void bgSetPortalOpenState(s32 portal, bool open);
s32 bgFindPortalBetweenPositions(struct coord *pos1, struct coord *pos2);
bool bgIsBboxOverlapping(struct coord *arg0, struct coord *arg1, struct coord *arg2, struct coord *arg3);
void bgCalculatePortalBbox(s32 portalnum, struct coord *bbmin, struct coord *bbmax);
void bgFindEnteredRooms(struct coord *bbmin, struct coord *upper, s16 *rooms, s32 maxlen, bool arg4);
void bgFindEnteredRooms(struct coord *bbmin, struct coord *upper, RoomNum *rooms, s32 maxlen, bool arg4);
#endif
+1 -1
View File
@@ -16,7 +16,7 @@ struct model *bodyAllocateModel(s32 bodynum, s32 headnum, u32 spawnflags);
s32 body0f02d3f8(void);
s32 bodyChooseHead(s32 bodynum);
void bodyAllocateChr(s32 stagenum, struct packedchr *packed, s32 cmdindex);
struct prop *bodyAllocateEyespy(struct pad *pad, s16 room);
struct prop *bodyAllocateEyespy(struct pad *pad, RoomNum room);
void bodyCalculateHeadOffset(struct modeldef *headmodeldef, s32 headnum, s32 bodynum);
#endif
+1 -1
View File
@@ -4,7 +4,7 @@
#include "data.h"
#include "types.h"
f32 eyespyFindGround(s16 *floorroom);
f32 eyespyFindGround(RoomNum *floorroom);
s32 eyespyTryMoveUpwards(f32 yvel);
s32 eyespyCalculateNewPosition(struct coord *vel);
bool eyespyCalculateNewPositionWithPush(struct coord *vel);
+4 -4
View File
@@ -73,9 +73,9 @@ void bgunTickMasterLoad(void);
void bgunTickLoad(void);
bool bgunLoadAll(void);
struct modeldef *bgunGetCartModeldef(void);
void bgun0f09ebcc(struct defaultobj *obj, struct coord *coord, s16 *rooms, Mtxf *matrix1, struct coord *velocity, Mtxf *matrix2, struct prop *prop, struct coord *pos);
void bgun0f09ebcc(struct defaultobj *obj, struct coord *coord, RoomNum *rooms, Mtxf *matrix1, struct coord *velocity, Mtxf *matrix2, struct prop *prop, struct coord *pos);
void bgun0f09ed2c(struct defaultobj *obj, struct coord *coord, Mtxf *arg2, struct coord *velocity, Mtxf *arg4);
struct defaultobj *bgunCreateThrownProjectile2(struct chrdata *chr, struct gset *gset, struct coord *pos, s16 *rooms, Mtxf *arg4, struct coord *velocity);
struct defaultobj *bgunCreateThrownProjectile2(struct chrdata *chr, struct gset *gset, struct coord *pos, RoomNum *rooms, Mtxf *arg4, struct coord *velocity);
void bgunCreateThrownProjectile(s32 handnum, struct gset *gset);
void bgunUpdateHeldRocket(s32 handnum);
void bgunCreateHeldRocket(s32 handnum, struct weaponfunc_shootprojectile *func);
@@ -142,8 +142,8 @@ s32 bgunAllocateFireslot(void);
void bgunRender(Gfx **gdl);
struct sndstate **bgunAllocateAudioHandle(void);
void bgunPlayPropHitSound(struct gset *gset, struct prop *prop, s32 texturenum);
void bgunPlayGlassHitSound(struct coord *pos, s16 *rooms, s32 texturenum);
void bgunPlayBgHitSound(struct gset *gset, struct coord *hitpos, s32 texturenum, s16 *rooms);
void bgunPlayGlassHitSound(struct coord *pos, RoomNum *rooms, s32 texturenum);
void bgunPlayBgHitSound(struct gset *gset, struct coord *hitpos, s32 texturenum, RoomNum *rooms);
void bgunSetTriggerOn(s32 handnum, bool on);
s32 bgunConsiderToggleGunFunction(s32 usedowntime, bool trigpressed, bool fromactivemenu);
void bgun0f0a8c50(void);
+1 -1
View File
@@ -10,7 +10,7 @@ void bheadFlipAnimation(void);
void bheadUpdateIdleRoll(void);
void bheadUpdatePos(struct coord *vel);
void bheadUpdateRot(struct coord *lookvel, struct coord *upvel);
void bheadSetdamp(f32 headdamp);
void bheadSetDamp(f32 headdamp);
void bheadUpdate(f32 arg0, f32 arg1);
void bheadAdjustAnimation(f32 speed);
void bheadStartDeathAnimation(s16 animnum, u32 flip, f32 fstarttime, f32 speed);
+2 -2
View File
@@ -30,8 +30,8 @@ void bmoveUpdateSpeedThetaControl(f32 value);
f32 bmoveCalculateLookahead(void);
void bmoveResetMoveData(struct movedata *data);
void bmoveProcessInput(bool allowc1x, bool allowc1y, bool allowc1buttons, bool ignorec2);
void bmoveFindEnteredRoomsByPos(struct player *player, struct coord *arg1, s16 *rooms);
void bmoveFindEnteredRooms(struct player *player, s16 *rooms);
void bmoveFindEnteredRoomsByPos(struct player *player, struct coord *arg1, RoomNum *rooms);
void bmoveFindEnteredRooms(struct player *player, RoomNum *rooms);
void bmoveUpdateRooms(struct player *player);
void bmove0f0cb904(struct coord *coord);
void bmove0f0cba88(f32 *a, f32 *b, struct coord *c, f32 mult1, f32 mult2);
+3 -3
View File
@@ -4,7 +4,7 @@
#include "data.h"
#include "types.h"
bool botroomFindPos(s16 room, struct coord *pos, f32 *angleptr, s32 *padnumptr, s32 *covernumptr);
bool botroomFindPos(RoomNum room, struct coord *pos, f32 *angleptr, s32 *padnumptr, s32 *covernumptr);
bool botIsDizzy(struct chrdata *chr);
void botReset(struct chrdata *chr, u8 respawning);
@@ -45,8 +45,8 @@ char *botGetCommandName(s32 command);
void botApplyAttack(struct chrdata *chr, struct prop *prop);
void botApplyFollow(struct chrdata *chr, struct prop *prop);
void botApplyProtect(struct chrdata *chr, struct prop *prop);
void botApplyDefend(struct chrdata *chr, struct coord *pos, s16 *room, f32 angle);
void botApplyHold(struct chrdata *chr, struct coord *pos, s16 *room, f32 angle);
void botApplyDefend(struct chrdata *chr, struct coord *pos, RoomNum *room, f32 angle);
void botApplyHold(struct chrdata *chr, struct coord *pos, RoomNum *room, f32 angle);
void botApplyScenarioCommand(struct chrdata *chr, u32 arg1);
bool botCanFollow(struct chrdata *leader, struct chrdata *follower);
s32 botFindTeammateToFollow(struct chrdata *chr, f32 range);
+1 -1
View File
@@ -18,7 +18,7 @@ u32 botactGetProjectileThrowInterval(u32 weapon);
s32 botactGetWeaponByAmmoType(s32 ammotype);
void botactThrow(struct chrdata *chr);
s32 botactGetShootInterval60(s32 weaponnum, s32 funcnum);
bool botactFindRocketRoute(struct chrdata *chr, struct coord *frompos, struct coord *topos, s16 *fromrooms, s16 *torooms, struct projectile *projectile);
bool botactFindRocketRoute(struct chrdata *chr, struct coord *frompos, struct coord *topos, RoomNum *fromrooms, RoomNum *torooms, struct projectile *projectile);
void botactGetRocketNextStepPos(u16 padnum, struct coord *pos);
void botactCreateSlayerRocket(struct chrdata *chr);
+1 -1
View File
@@ -43,6 +43,6 @@ f32 camGetPerspAspect(void);
void cam0f0b5838(void);
bool cam0f0b5b9c(struct coord *arg0, f32 arg1);
bool camIsPosInScreenBox(struct coord *pos, f32 arg1, struct drawslot *drawslot);
bool camIsPosInFovAndVisibleRoom(s16 *rooms, struct coord *pos, f32 arg2);
bool camIsPosInFovAndVisibleRoom(RoomNum *rooms, struct coord *pos, f32 arg2);
#endif
+7 -7
View File
@@ -6,24 +6,24 @@
void chrSetChrnum(struct chrdata *chr, s16 chrnum);
void chrDeregister(s32 chrnum);
void chrCalculatePushPos(struct chrdata *chr, struct coord *pos, s16 *rooms, bool arg3);
void chrCalculatePushPos(struct chrdata *chr, struct coord *pos, RoomNum *rooms, bool arg3);
#if VERSION >= VERSION_NTSC_1_0
bool chr0f01f264(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 arg3, bool arg4);
bool chr0f01f264(struct chrdata *chr, struct coord *pos, RoomNum *rooms, f32 arg3, bool arg4);
#else
bool chr0f01f264(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 arg3);
bool chr0f01f264(struct chrdata *chr, struct coord *pos, RoomNum *rooms, f32 arg3);
#endif
bool chr0f01f378(struct model *model, struct coord *arg1, struct coord *arg2, f32 *mangroundptr);
s32 chrsGetNumFree(void);
s16 chrsGetNextUnusedChrnum(void);
struct prop *chr0f020b14(struct prop *prop, struct model *model, struct coord *pos, s16 *rooms, f32 arg3, u8 *ailist);
struct prop *chr0f020b14(struct prop *prop, struct model *model, struct coord *pos, RoomNum *rooms, f32 arg3, u8 *ailist);
void chrRemove(struct prop *prop, bool free);
void chrUpdateAimProperties(struct chrdata *chr);
void chrFlinchBody(struct chrdata *chr);
void chrFlinchHead(struct chrdata *chr, f32 arg1);
f32 chrGetFlinchAmount(struct chrdata *chr);
void chr0f021fa8(struct chrdata *chr, struct coord *pos, s16 *rooms);
void chr0f021fa8(struct chrdata *chr, struct coord *pos, RoomNum *rooms);
void chr0f0220ec(struct chrdata *chr, s32 lvupdate240, bool arg2);
void chr0f022214(struct chrdata *chr, struct prop *child, bool fulltick);
void chrUpdateCloak(struct chrdata *chr);
@@ -80,9 +80,9 @@ f32 chrGetMaxDamage(struct chrdata *chr);
void chrAddHealth(struct chrdata *chr, f32 health);
f32 chrGetArmor(struct chrdata *chr);
void chrInit(struct prop *prop, u8 *ailist);
struct prop *chrAllocate(struct model *model, struct coord *pos, s16 *rooms, f32 faceangle, u8 *ailist);
struct prop *chrAllocate(struct model *model, struct coord *pos, RoomNum *rooms, f32 faceangle, u8 *ailist);
void chrClearReferences(s32 propnum);
void chr0f022084(struct chrdata *chr, s16 *room);
void chr0f022084(struct chrdata *chr, RoomNum *room);
void chr0f0220ac(struct chrdata *chr);
void chrCloak(struct chrdata *chr, bool arg1);
void chrUncloak(struct chrdata *chr, bool value);
+25 -25
View File
@@ -66,8 +66,8 @@ void chrDamageByImpact(struct chrdata *chr, f32 damage, struct coord *vector, st
void chrDamageByExplosion(struct chrdata *chr, f32 damage, struct coord *vector, struct prop *prop, struct coord *explosionpos);
void playerUpdateDamageStats(struct prop *attacker, struct prop *victim, f32 damage);
void chrDamage(struct chrdata *chr, f32 damage, struct coord *vector, struct gset *gset, struct prop *aprop, s32 hitpart, bool damageshield, struct prop *prop2, struct modelnode *node, struct model *model, s32 side, s16 *arg11, bool explosion, struct coord *explosionpos);
bool func0f03645c(struct chrdata *chr, struct coord *arg1, s16 *arg2, struct coord *arg3, struct coord *arg4, s32 cdtypes);
bool func0f03654c(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, struct coord *vector, f32 arg6, u32 types);
bool func0f03645c(struct chrdata *chr, struct coord *arg1, RoomNum *arg2, struct coord *arg3, struct coord *arg4, s32 cdtypes);
bool func0f03654c(struct chrdata *chr, struct coord *pos, RoomNum *rooms, struct coord *pos2, RoomNum *rooms2, struct coord *vector, f32 arg6, u32 types);
bool propchrHasClearLineToPos(struct prop *prop, struct coord *dstpos, struct coord *vector);
bool propchrHasClearLineInVector(struct prop *prop, struct coord *coord, f32 arg2);
bool func0f036974(struct prop *prop, struct coord *coord);
@@ -75,9 +75,9 @@ void chrGetSideVectorToTarget(struct chrdata *chr, bool side, struct coord *vect
bool chrCanRollInDirection(struct chrdata *chr, bool toleft, f32 distance);
void chrGetSideVector(struct chrdata *chr, bool side, struct coord *vector);
bool chrCanJumpInDirection(struct chrdata *chr, bool side, f32 distance);
bool chrIsRoomOffScreen(struct chrdata *chr, struct coord *waypos, s16 *wayrooms);
bool chrIsRoomOffScreen(struct chrdata *chr, struct coord *waypos, RoomNum *wayrooms);
void chrGoPosInitMagic(struct chrdata *chr, struct waydata *waydata, struct coord *arg2, struct coord *prevpos);
void chrGoPosGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 *flags);
void chrGoPosGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, RoomNum *rooms, u32 *flags);
f32 func0f0370a8(struct chrdata *chr);
s32 chrGoPosCalculateBaseTtl(struct chrdata *chr);
void chrGoPosConsiderRestart(struct chrdata *chr);
@@ -85,20 +85,20 @@ void chrGoPosInitExpensive(struct chrdata *chr);
void chrGoPosAdvanceWaypoint(struct chrdata *chr);
s32 chrPatrolCalculateStep(struct chrdata *chr, bool *forward, s32 numsteps);
s16 chrPatrolCalculatePadNum(struct chrdata *chr, s32 numsteps);
void chrPatrolGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 *flags);
void chrPatrolGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, RoomNum *rooms, u32 *flags);
void func0f037580(struct chrdata *chr);
void func0f0375b0(struct chrdata *chr);
void chrNavTickMagic(struct chrdata *chr, struct waydata *waydata, f32 speed, struct coord *arg3, s16 *rooms);
void chrNavTickMagic(struct chrdata *chr, struct waydata *waydata, f32 speed, struct coord *arg3, RoomNum *rooms);
void chrCalculatePosition(struct chrdata *chr, struct coord *pos);
void chrGoPosChooseAnimation(struct chrdata *chr);
bool chrGoToRoomPos(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 goposflags);
bool chrGoToRoomPos(struct chrdata *chr, struct coord *pos, RoomNum *rooms, u32 goposflags);
void chrPatrolChooseAnimation(struct chrdata *chr);
void chrStartPatrol(struct chrdata *chr, struct path *path);
bool chrHasLosToEntity(struct chrdata *chr, struct coord *chrpos, s16 *chrrooms, bool allowextraheight, u32 attackflags, u32 entityid);
bool chrHasLosToAttackTarget(struct chrdata *chr, struct coord *pos, s16 *rooms, bool allowextraheight);
bool chrHasLosToChr(struct chrdata *chr, struct chrdata *target, s16 *room);
bool chrHasLosToPos(struct chrdata *viewerchr, struct coord *pos, s16 *rooms);
bool chrHasLosToPosWasteful(struct chrdata *chr, struct coord *pos, s16 *room);
bool chrHasLosToEntity(struct chrdata *chr, struct coord *chrpos, RoomNum *chrrooms, bool allowextraheight, u32 attackflags, u32 entityid);
bool chrHasLosToAttackTarget(struct chrdata *chr, struct coord *pos, RoomNum *rooms, bool allowextraheight);
bool chrHasLosToChr(struct chrdata *chr, struct chrdata *target, RoomNum *room);
bool chrHasLosToPos(struct chrdata *viewerchr, struct coord *pos, RoomNum *rooms);
bool chrHasLosToPosWasteful(struct chrdata *chr, struct coord *pos, RoomNum *room);
bool chrHasLosToProp(struct chrdata *chr, struct prop *prop);
bool chrIsStopped(struct chrdata *chr);
bool chrCheckCanSeeTarget(struct chrdata *chr);
@@ -166,8 +166,8 @@ bool posIsArrivingLaterallyAtPos(struct coord *prevpos, struct coord *curpos, st
bool posIsArrivingAtPos(struct coord *prevpos, struct coord *curpos, struct coord *targetpos, f32 range);
void chrTickRunPos(struct chrdata *chr);
void func0f044b68(struct coord *arg0, struct coord *arg1, struct coord *arg2);
bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coord *aimpos, struct coord *arg4, struct coord *arg5, f32 negchrradius, f32 chrradius, s32 cdtypes, s32 arg9);
bool chrNavCheckForObstacle(struct chrdata *chr, struct coord *chrpos, s16 *chrrooms, struct coord *aimpos, struct coord *leftpos, struct coord *rightpos, f32 negchrradius, f32 chrradius, s32 cdtypes, bool hasobstacle);
bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *pos, RoomNum *rooms, struct coord *aimpos, struct coord *arg4, struct coord *arg5, f32 negchrradius, f32 chrradius, s32 cdtypes, s32 arg9);
bool chrNavCheckForObstacle(struct chrdata *chr, struct coord *chrpos, RoomNum *chrrooms, struct coord *aimpos, struct coord *leftpos, struct coord *rightpos, f32 negchrradius, f32 chrradius, s32 cdtypes, bool hasobstacle);
bool chrNavTryObstacle(struct chrdata *chr, struct coord *arg1, bool arg2, struct coord *arg3, f32 radius, bool arg5, struct coord *nextpos, struct waydata *waydata, f32 arg8, s32 cdtypes, s32 arg10);
struct prop *chrOpenDoor(struct chrdata *chr, struct coord *rangepos);
void chrNavTickMain(struct chrdata *chr, struct coord *pos, struct waydata *waydata, bool arg3);
@@ -181,7 +181,7 @@ void chraTick(struct chrdata *chr);
void cutsceneStart(u32 ailistid);
void chraTickBg(void);
f32 chrGetAngleToPos(struct chrdata *chr, struct coord *pos);
void chrGetAttackEntityPos(struct chrdata *chr, u32 attackflags, s32 entityid, struct coord *pos, s16 *rooms);
void chrGetAttackEntityPos(struct chrdata *chr, u32 attackflags, s32 entityid, struct coord *pos, RoomNum *rooms);
f32 chrGetAngleFromTargetsFov(struct chrdata *chr);
f32 chrGetVerticalAngleToTarget(struct chrdata *chr);
bool chrIsInTargetsFovX(struct chrdata *chr, u8 fov360);
@@ -197,23 +197,23 @@ bool chrIsTargetAimingAtMe(struct chrdata *chr);
bool chrSawInjury(struct chrdata *chr, u8 arg1);
bool chrSawDeath(struct chrdata *chr, u8 arg1);
bool waypointIsWithin90DegreesOfPosAngle(struct waypoint *waypoint, struct coord *pos, f32 angle);
s32 chrFindWaypointWithinPosQuadrant(struct coord *pos, s16 *rooms, f32 angle, u8 quadrant);
s32 chrFindWaypointWithinPosQuadrant(struct coord *pos, RoomNum *rooms, f32 angle, u8 quadrant);
bool func0f04a4ec(struct chrdata *chr, u8 quadrant);
bool chrSetPadPresetToWaypointWithinTargetQuadrant(struct chrdata *chr, u8 arg1);
bool chrSetChrPresetToChrNearPad(u32 checktype, struct chrdata *chr, f32 distance, s32 padnum);
bool chrSetChrPresetToChrNearPos(u8 checktype, struct chrdata *chr, f32 distance, struct coord *pos, s16 *room);
bool chrSetChrPresetToChrNearPos(u8 checktype, struct chrdata *chr, f32 distance, struct coord *pos, RoomNum *room);
bool chrSetPadPresetToPadOnRouteToTarget(struct chrdata *chr);
bool chrIsPosOffScreen(struct coord *pos, s16 *rooms);
bool chrIsPosOffScreen(struct coord *pos, RoomNum *rooms);
#if VERSION >= VERSION_NTSC_1_0
bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, s16 *rooms, f32 angle, bool allowonscreen, bool force, bool onlysurrounding);
bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, RoomNum *rooms, f32 angle, bool allowonscreen, bool force, bool onlysurrounding);
#else
bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, s16 *rooms, f32 angle, bool allowonscreen, bool force);
bool chrAdjustPosForSpawn(f32 chrradius, struct coord *pos, RoomNum *rooms, f32 angle, bool allowonscreen, bool force);
#endif
struct prop *chrSpawnAtCoord(s32 body, s32 head, struct coord *pos, s16 *room, f32 angle, u8 *ailist, u32 spawnflags);
struct prop *chrSpawnAtCoord(s32 body, s32 head, struct coord *pos, RoomNum *room, f32 angle, u8 *ailist, u32 spawnflags);
bool chrIsPropPresetBlockingSightToTarget(struct chrdata *chr);
bool chrMoveToPos(struct chrdata *chr, struct coord *pos, s16 *room, f32 angle, bool ignorebg);
bool chrMoveToPos(struct chrdata *chr, struct coord *pos, RoomNum *room, f32 angle, bool ignorebg);
bool chrCheckCoverOutOfSight(struct chrdata *chr, s32 covernum, bool soft);
s32 chrAssignCoverByCriteria(struct chrdata *chr, u16 arg1, s32 arg2);
s32 chrAssignCoverAwayFromDanger(struct chrdata *chr, s32 mindist, s32 maxdist);
@@ -238,9 +238,9 @@ void chrRunToPos(struct chrdata *chr, struct coord *pos);
void chrBeginDead(struct chrdata *chr);
f32 chrGetShield(struct chrdata *chr);
void chrDie(struct chrdata *chr, s32 aplayernum);
void chrGoPosGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms);
void chrGoPosGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, RoomNum *rooms);
void chrGoPosClearRestartTtl(struct chrdata *chr);
void chrPatrolGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms);
void chrPatrolGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, RoomNum *rooms);
struct path *pathFindById(u32 path_id);
void chrRecordLastVisibleTargetTime(struct chrdata *chr);
bool chrHasLosToTarget(struct chrdata *chr);
@@ -340,7 +340,7 @@ s16 *teamGetChrIds(s32 team_id);
s16 *squadronGetChrIds(s32 squadron_id);
void audioMarkAsRecentlyPlayed(s16 audioid);
bool audioWasNotPlayedRecently(s16 audioid);
Gfx *chrsRenderChrStats(Gfx *gdl, s16 *rooms);
Gfx *chrsRenderChrStats(Gfx *gdl, RoomNum *rooms);
void chrToggleModelPart(struct chrdata *chr, s32 partnum);
bool chrIsAvoiding(struct chrdata *chr);
void chrDrCarollEmitSparks(struct chrdata *chr);
+1 -1
View File
@@ -19,7 +19,7 @@ bool lightIsVulnerable(s32 roomnum, s32 lightnum);
bool lightIsOn(s32 roomnum, s32 lightnum);
void roomSetFlashBrightness(s32 roomnum, s32 value);
void roomSetDefaults(struct room *room);
Gfx *lightsSetForRoom(Gfx *gdl, s16 roomnum);
Gfx *lightsSetForRoom(Gfx *gdl, RoomNum roomnum);
Gfx *lightsSetDefault(Gfx *gdl);
void roomInitLights(s32 roomnum);
bool lightsHandleHit(struct coord *gunpos, struct coord *hitpos, s32 roomnum);
+1 -1
View File
@@ -7,7 +7,7 @@
void dyntexTickRoom(s32 roomnum, Vtx *vertices);
void dyntexAddVertex(Vtx *vertex);
void dyntexSetCurrentType(s16 type);
void dyntexSetCurrentRoom(s16 roomnum);
void dyntexSetCurrentRoom(RoomNum roomnum);
void dyntexReset(void);
bool dyntexHasRoom(void);
+3 -3
View File
@@ -8,13 +8,13 @@ void explosionsReset(void);
void explosionsStop(void);
bool explosionCreateSimple(struct prop *prop, struct coord *pos, s16 *rooms, s16 type, s32 playernum);
bool explosionCreateComplex(struct prop *prop, struct coord *pos, s16 *rooms, s16 type, s32 playernum);
bool explosionCreateSimple(struct prop *prop, struct coord *pos, RoomNum *rooms, s16 type, s32 playernum);
bool explosionCreateComplex(struct prop *prop, struct coord *pos, RoomNum *rooms, s16 type, s32 playernum);
f32 explosionGetHorizontalRangeAtFrame(struct explosion *exp, s32 frame);
f32 explosionGetVerticalRangeAtFrame(struct explosion *exp, s32 frame);
void explosionGetBboxAtFrame(struct coord *lower, struct coord *upper, s32 frame, struct prop *prop);
void explosionAlertChrs(f32 *radius, struct coord *noisepos);
bool explosionCreate(struct prop *prop, struct coord *pos, s16 *rooms, s16 type, s32 playernum, bool makescorch, struct coord *arg6, s16 room, struct coord *arg8);
bool explosionCreate(struct prop *prop, struct coord *pos, RoomNum *rooms, s16 type, s32 playernum, bool makescorch, struct coord *arg6, RoomNum room, struct coord *arg8);
void explosionsUpdateShake(struct coord *arg0, struct coord *arg1, struct coord *arg2);
bool explosionOverlapsProp(struct explosion *exp, struct prop *prop, struct coord *pos1, struct coord *pos2);
void explosionInflictDamage(struct prop *prop);
+1 -1
View File
@@ -8,7 +8,7 @@ void func0f110bf0(void);
void func0f110bf8(void);
void filelistCreate(s32 listnum, u8 filetype);
s32 filelistFindOrCreate(u8 filetype);
void func0f110d90(s32 device);
void filelistInvalidatePak(s32 device);
void filelistsTick(void);
void filelistUpdate(struct filelist *list);
+4 -4
View File
@@ -97,11 +97,11 @@ Gfx *menuRenderBackgroundLayer2(Gfx *gdl, u8 bg, f32 frac);
Gfx *menuRender(Gfx *gdl);
u32 menuChooseMusic(void);
u32 menuGetRoot(void);
void func0f0fce8c(struct menudialogdef *dialogdef, s32 playernum, s32 arg2);
void menuPushPakDialogForPlayer(struct menudialogdef *dialogdef, s32 playernum, s32 arg2);
char *menuTextSaveDeviceName(struct menuitem *item);
u32 func0f0fd118(u32 arg0);
bool func0f0fd1f4(s32 device, s32 arg1);
void func0f0fd320(s32 arg0, s32 arg1);
s32 menuPakNumToPlayerNum(s32 paknum);
bool menuIsReadyForPakError(s32 device, s32 arg1);
void menuPushPakErrorDialog(s32 arg0, s32 arg1);
void func0f0fd494(struct coord *pos);
void func0f0fd548(s32 arg0);
struct menudialog *menuIsDialogOpen(struct menudialogdef *dialogdef);
+2 -2
View File
@@ -26,8 +26,8 @@ void scenarioTick(void);
void scenarioTickChr(struct chrdata *chr);
Gfx *scenarioRadarExtra(Gfx *gdl);
bool scenarioRadarChr(Gfx **gdl, struct prop *prop);
f32 scenarioChooseSpawnLocation(f32 chrradius, struct coord *pos, s16 *rooms, struct prop *prop);
f32 scenarioChooseSpawnLocation(f32 chrradius, struct coord *pos, RoomNum *rooms, struct prop *prop);
s32 scenarioGetMaxTeams(void);
void scenarioHighlightRoom(s16 room, s32 *arg1, s32 *arg2, s32 *arg3);
void scenarioHighlightRoom(RoomNum room, s32 *arg1, s32 *arg2, s32 *arg3);
#endif
+2 -2
View File
@@ -81,11 +81,11 @@ Gfx *htbRenderHud(Gfx *gdl);
void ctcInitProps(void);
bool ctcHighlightProp(struct prop *prop, s32 *colour);
void ctcAddPad(s32 *cmd);
void ctcHighlightRoom(s16 roomnum, s32 *arg1, s32 *arg2, s32 *arg3);
void ctcHighlightRoom(RoomNum roomnum, s32 *arg1, s32 *arg2, s32 *arg3);
void kohTick(void);
Gfx *kohRenderHud(Gfx *gdl);
void kohAddHill(s32 *cmd);
void kohHighlightRoom(s16 roomnum, s32 *arg1, s32 *arg2, s32 *arg3);
void kohHighlightRoom(RoomNum roomnum, s32 *arg1, s32 *arg2, s32 *arg3);
void htmAddPad(s16 padnum);
void htmReset(void);
void htbCreateUplink(void);
+1 -1
View File
@@ -27,7 +27,7 @@ void objectivesDisableChecking(void);
void objectivesShowHudmsg(char *buffer, s32 hudmsgtype);
void objectivesCheckAll(void);
void objectiveCheckRoomEntered(s32 currentroom);
void objectiveCheckThrowInRoom(s32 arg0, s16 *requiredrooms);
void objectiveCheckThrowInRoom(s32 arg0, RoomNum *requiredrooms);
void objectiveCheckHolograph(f32 sqdist);
struct prop *chopperGetTargetProp(struct chopperobj *heli);
struct defaultobj *objFindByTagId(s32 tag_id);
+1 -1
View File
@@ -5,7 +5,7 @@
#include "types.h"
void navSetSeed(u32 upper, u32 lower);
struct waypoint *waypointFindClosestToPos(struct coord *pos, s16 *rooms);
struct waypoint *waypointFindClosestToPos(struct coord *pos, RoomNum *rooms);
struct waygroup *waygroupChooseNeighbour(s32 *groupnums, s32 step, u32 ignoremask);
void waygroupSetStepIfUndiscovered(s32 *groupnums, s32 step, u32 ignoremask);
bool waygroupDiscoverOneStep(struct waygroup *group, s32 step, u32 ignoremask);
+12 -12
View File
@@ -9,29 +9,29 @@ u32 pakAlign(s8 device, u32 size);
s32 pakGetAlignedFileLenByBodyLen(s8 device, u32 bodylen);
u32 pakGetBodyLenByFileLen(u32 filelen);
u32 pakGenerateSerial(s8 device);
bool pakIsMemoryPak(s8 device);
bool mempakIsOkay(s8 device);
s32 pakGetFileIdsByType(s8 device, u32 filetype, u32 *fileids);
s32 pak0f1167d8(s8 device);
s32 pakReadBodyAtGuid(s8 device, s32 fileid, u8 *body, s32 arg3);
s32 pakSaveAtGuid(s8 device, s32 fileid, s32 filetype, u8 *body, s32 *outfileid, u8 *olddata);
bool pakDeleteFile(s8 device, s32 fileid);
s32 pakDeleteGameNote(s8 device, u16 company_code, u32 game_code, char *game_name, char *ext_name);
s32 pak0f1168c4(s8 device, struct pakdata **arg1);
PakErr1 pakDeleteGameNote(s8 device, u16 company_code, u32 game_code, char *game_name, char *ext_name);
PakErr1 pak0f1168c4(s8 device, struct pakdata **arg1);
s32 pakGetType(s8 device);
s32 pakGetSerial(s8 device);
void pak0f11698c(s8 device);
void pak0f116994(void);
void pak0f1169c8(s8 device, s32 arg1);
bool pak0f116aec(s8 device);
bool pak0f116b5c(s8 device);
void pak0f1169c8(s8 device, bool tick);
bool mempakIsReady(s8 device);
bool mempakIsReadyOrFull(s8 device);
void pak0f116bdc(s8 device, u8 *arg1, u8 *arg2);
u16 _pakGetSerial(s8 device);
u32 _pakGetType(s8 device);
void pakSetUnk010(s8 device, s32 value);
void pakSetState(s8 device, s32 value);
s32 pak0f116df0(s8 device, struct pakdata **arg1);
s32 _pakDeleteGameNote(s8 device, u16 company_code, u32 game_code, char *game_name, char *ext_name);
s32 _pakDeleteFile(s8 device, s32 fileid);
s32 pakGetUnk264(s8 device);
s32 pakGetPlugCount(s8 device);
u32 pakGetMaxFileSize(s8 device);
s32 pakGetBodyLenByType(s8 device, u32 filetype);
void pak0f117150(s8 device, u8 *ptr);
@@ -91,8 +91,8 @@ void pakCreateInitialFiles(s8 device);
s32 pakFindMaxFileId(s8 device);
void pakMergeBlanks(s8 device);
void paksReset(void);
void pak0f11a32c(s8 device, u8 arg1, u32 line, char *file);
void pakInit(s8 arg0);
void pakSetFeatures(s8 device, u8 features, u32 line, char *file);
void pakSetDefaults(s8 arg0);
PakErr1 pakReadWriteBlock(s8 device, OSPfs *pfs, s32 file_no, u8 flag, u32 address, u32 len, u8 *buffer);
bool pakQueryTotalUsage(s8 device);
void pakQueryPdSize(s8 device);
@@ -111,7 +111,7 @@ bool pakHandleResult(s32 err1, s8 device, bool arg2, u32 line);
void paksTick(void);
void pak0f11c6d0(void);
void pakExecuteDebugOperations(void);
void pak0f11ca30(void);
void pakCheckPlugged(void);
void gbpakHandleError(u32 arg0);
bool gbpakRead(s8 device, u16 address, u8 *buffer, u16 size);
bool gbpakWrite(s8 device, u16 address, u8 *buffer, u16 size);
@@ -140,7 +140,7 @@ void pakEnableRumbleForPlayer(s8 playernum);
void pakDisableRumbleForAllPlayers(void);
void pakEnableRumbleForAllPlayers(void);
void pakDumpPak(void);
void pak0f11df94(s8 device);
void pakTickState(s8 device);
void pak0f11e3bc(s8 device);
void pakProbeEeprom(void);
PakErr1 pakReadEeprom(u8 address, u8 *buffer, u32 len);
+3 -3
View File
@@ -4,8 +4,8 @@
#include "data.h"
#include "types.h"
f32 playerChooseSpawnLocation(f32 chrradius, struct coord *dstpos, s16 *dstrooms, struct prop *prop, s16 *spawnpads, s32 numspawnpads);
f32 playerChooseGeneralSpawnLocation(f32 chrradius, struct coord *pos, s16 *rooms, struct prop *prop);
f32 playerChooseSpawnLocation(f32 chrradius, struct coord *dstpos, RoomNum *dstrooms, struct prop *prop, s16 *spawnpads, s32 numspawnpads);
f32 playerChooseGeneralSpawnLocation(f32 chrradius, struct coord *pos, RoomNum *rooms, struct prop *prop);
void playerStartNewLife(void);
void playerLoadDefaults(void);
bool playerSpawnAnti(struct chrdata *chr, s32 param_2);
@@ -63,7 +63,7 @@ void playerDie(bool force);
void playerDieByShooter(u32 shooter, bool force);
void playerCheckIfShotInBack(s32 attackerplayernum, f32 x, f32 z);
f32 playerGetHealthBarHeightFrac(void);
void player0f0c1840(struct coord *pos, struct coord *up, struct coord *look, struct coord *pos2, s16 *rooms);
void player0f0c1840(struct coord *pos, struct coord *up, struct coord *look, struct coord *pos2, RoomNum *rooms);
void player0f0c1ba4(struct coord *pos, struct coord *up, struct coord *look, struct coord *memcampos, s32 memcamroom);
void player0f0c1bd8(struct coord *pos, struct coord *up, struct coord *look);
void playersClearMemCamRoom(void);
+12 -12
View File
@@ -21,7 +21,7 @@ void propDelist(struct prop *prop);
void propReparent(struct prop *mover, struct prop *adopter);
void propDetach(struct prop *prop);
Gfx *propRender(Gfx *gdl, struct prop *prop, bool xlupass);
Gfx *propsRender(Gfx *gdl, s16 renderroomnum, s32 renderpass, s16 *roomnumsbyprop);
Gfx *propsRender(Gfx *gdl, RoomNum renderroomnum, s32 renderpass, RoomNum *roomnumsbyprop);
void weaponPlayWhooshSound(s32 weaponnum, struct prop *prop);
void func0f060bac(s32 weaponnum, struct prop *prop);
struct prop *shotCalculateHits(s32 handnum, bool arg1, struct coord *arg2, struct coord *arg3, struct coord *gunpos, struct coord *dir, u32 arg6, f32 arg7, bool arg8);
@@ -46,21 +46,21 @@ void farsightChooseTarget(void);
void autoaimTick(void);
u32 propDoorGetCdTypes(struct prop *prop);
bool propIsOfCdType(struct prop *prop, u32 types);
void roomsCopy(s16 *srcrooms, s16 *dstrooms);
void roomsAppend(s16 *newrooms, s16 *dstrooms, s32 maxlen);
bool arrayIntersects(s16 *a, s16 *b);
void roomsCopy(RoomNum *srcrooms, RoomNum *dstrooms);
void roomsAppend(RoomNum *newrooms, RoomNum *dstrooms, s32 maxlen);
bool arrayIntersects(RoomNum *a, RoomNum *b);
bool propTryAddToChunk(s16 propnum, s32 chunkindex);
s32 roomAllocatePropListChunk(s32 room, s32 arg1);
void propRegisterRoom(struct prop *prop, s16 room);
void propDeregisterRoom(struct prop *prop, s16 room);
void propRegisterRoom(struct prop *prop, RoomNum room);
void propDeregisterRoom(struct prop *prop, RoomNum room);
void propDeregisterRooms(struct prop *prop);
void propRegisterRooms(struct prop *prop);
void func0f065d1c(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newrooms, s16 *morerooms, u32 arg5);
void func0f065dd8(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newrooms);
void func0f065dfc(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newrooms, s16 *morerooms, u32 arg5);
void func0f065e74(struct coord *pos, s16 *rooms, struct coord *newpos, s16 *newrooms);
void func0f065e98(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2);
void roomGetProps(s16 *room, s16 *propnums, s32 len);
void func0f065d1c(struct coord *pos, RoomNum *rooms, struct coord *newpos, RoomNum *newrooms, RoomNum *morerooms, u32 arg5);
void func0f065dd8(struct coord *pos, RoomNum *rooms, struct coord *newpos, RoomNum *newrooms);
void func0f065dfc(struct coord *pos, RoomNum *rooms, struct coord *newpos, RoomNum *newrooms, RoomNum *morerooms, u32 arg5);
void func0f065e74(struct coord *pos, RoomNum *rooms, struct coord *newpos, RoomNum *newrooms);
void func0f065e98(struct coord *pos, RoomNum *rooms, struct coord *pos2, RoomNum *rooms2);
void roomGetProps(RoomNum *room, s16 *propnums, s32 len);
void propsDefragRoomProps(void);
void propGetBbox(struct prop *prop, f32 *radius, f32 *ymax, f32 *ymin);
bool propUpdateGeometry(struct prop *prop, u8 **start, u8 **end);
+11 -11
View File
@@ -63,7 +63,7 @@ bool modelGetScreenCoords2(struct model *model, f32 *x2, f32 *x1, f32 *y2, f32 *
bool modelGetScreenCoords(struct model *model, f32 *x2, f32 *x1, f32 *y2, f32 *y1);
void func0f06803c(struct coord *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4);
struct defaultobj *objFindByPadNum(s32 padnum);
struct defaultobj *objFindByPos(struct coord *pos, s16 *rooms);
struct defaultobj *objFindByPos(struct coord *pos, RoomNum *rooms);
void projectileFree(struct projectile *projectile);
void projectilesUnrefOwner(struct prop *owner);
void projectileReset(struct projectile *projectile);
@@ -81,7 +81,7 @@ struct modelnode *modelFindBboxNode(struct model *model);
struct modelrodata_bbox *modelFindBboxRodata(struct model *model);
struct modelnode *objFindBboxNode(struct defaultobj *obj);
struct modelrodata_bbox *objFindBboxRodata(struct defaultobj *obj);
s32 objGetAverageBrightnessInRooms(s16 *rooms, s32 arg1);
s32 objGetAverageBrightnessInRooms(RoomNum *rooms, s32 arg1);
s32 door0f068c04(struct prop *prop, s32 *arg1, s32 *arg2);
s32 func0f068fc8(struct prop *prop, bool arg1);
void propCalculateShadeColour(struct prop *prop, u8 *nextcol, u16 floorcol);
@@ -98,10 +98,10 @@ void objCreateDebris(struct defaultobj *obj, struct prop *prop);
struct prop *objInit(struct defaultobj *obj, struct modeldef *modeldef, struct prop *prop, struct model *model);
struct prop *objInitWithModelDef(struct defaultobj *obj, struct modeldef *modeldef);
struct prop *objInitWithAutoModel(struct defaultobj *obj);
void func0f06a580(struct defaultobj *obj, struct coord *pos, Mtxf *matrix, s16 *rooms);
void func0f06a580(struct defaultobj *obj, struct coord *pos, Mtxf *matrix, RoomNum *rooms);
f32 func0f06a620(struct defaultobj *obj);
void func0f06a730(struct defaultobj *obj, struct coord *arg1, Mtxf *matrix, s16 *rooms, struct coord *arg4);
void func0f06ab60(struct defaultobj *obj, struct coord *arg1, Mtxf *matrix, s16 *rooms, struct coord *arg4);
void func0f06a730(struct defaultobj *obj, struct coord *arg1, Mtxf *matrix, RoomNum *rooms, struct coord *arg4);
void func0f06ab60(struct defaultobj *obj, struct coord *arg1, Mtxf *matrix, RoomNum *rooms, struct coord *arg4);
void objFreeProjectile(struct defaultobj *obj);
void objFreeEmbedmentOrProjectile(struct prop *prop);
void objFree(struct defaultobj *obj, bool freeprop, bool canregen);
@@ -112,7 +112,7 @@ bool func0f06b488(struct prop *prop, struct coord *arg1, struct coord *arg2, str
bool func0f06b610(struct defaultobj *obj, struct coord *arg1, struct coord *arg2, struct coord *arg3, f32 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7, struct coord *arg8, f32 *arg9);
bool func0f06bea0(struct model *model, struct modelnode *arg1, struct modelnode *arg2, struct coord *arg3, struct coord *arg4, void *arg5, f32 *arg6, struct modelnode **arg7, s32 *hitpart, s32 *arg9, struct modelnode **arg10);
bool func0f06c28c(struct chrdata *chr, struct coord *arg1, struct coord *arg2, struct coord *arg3, f32 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7, struct coord *arg8, f32 *arg9);
bool projectileFindCollidingProp(struct prop *prop, struct coord *pos, struct coord *arg2, u32 cdtypes, struct coord *arg4, struct coord *arg5, s16 *arg6);
bool projectileFindCollidingProp(struct prop *prop, struct coord *pos, struct coord *arg2, u32 cdtypes, struct coord *arg4, struct coord *arg5, RoomNum *rooms);
s32 func0f06cd00(struct defaultobj *obj, struct coord *pos, struct coord *arg2, struct coord *arg3);
bool func0f06d37c(struct defaultobj *obj, struct coord *arg1, struct coord *arg2, struct coord *arg3);
void applySpeed(f32 *distdone, f32 maxdist, f32 *speed, f32 accel, f32 decel, f32 maxspeed);
@@ -141,8 +141,8 @@ struct prop *liftFindByPad(s16 padnum);
f32 liftGetY(struct liftobj *lift);
void liftUpdateTiles(struct liftobj *lift, bool stationary);
void liftGoToStop(struct liftobj *lift, s32 stopnum);
f32 objGetHov04(struct defaultobj *obj);
void hovUpdateGround(struct defaultobj *obj, struct hov *hov, struct coord *pos, s16 *rooms, f32 matrix[3][3]);
f32 objGetHovBobOffsetY(struct defaultobj *obj);
void hovUpdateGround(struct defaultobj *obj, struct hov *hov, struct coord *pos, RoomNum *rooms, f32 matrix[3][3]);
void hovTick(struct defaultobj *obj, struct hov *hov);
s32 objIsHoverpropOrBike(struct defaultobj *obj);
f32 hoverpropGetTurnAngle(struct defaultobj *obj);
@@ -289,7 +289,7 @@ void weaponDeleteFromChr(struct chrdata *chr, s32 hand);
struct prop *weaponCreateForChr(struct chrdata *chr, s32 modelnum, s32 weaponnum, u32 flags, struct weaponobj *obj, struct modeldef *modeldef);
struct prop *chrGiveWeapon(struct chrdata *chr, s32 model, s32 weaponnum, u32 flags);
s32 weaponTestForPickup(struct prop *prop);
void weaponSetGunfireVisible(struct prop *prop, bool visible, s16 room);
void weaponSetGunfireVisible(struct prop *prop, bool visible, RoomNum room);
bool weaponIsGunfireVisible(struct prop *prop);
s32 hatGetType(struct prop *prop);
bool doorIsUnlocked(struct prop *playerprop, struct prop *doorprop);
@@ -306,7 +306,7 @@ void func0f08d3dc(struct doorobj *door);
void func0f08d460(struct doorobj *door);
void doorActivatePortal(struct doorobj *door);
void doorDeactivatePortal(struct doorobj *door);
struct prop *doorInit(struct doorobj *door, struct coord *pos, Mtxf *mtx, s16 *rooms, struct coord *coord, struct coord *centre);
struct prop *doorInit(struct doorobj *door, struct coord *pos, Mtxf *mtx, RoomNum *rooms, struct coord *coord, struct coord *centre);
void doorPlayOpeningSound(s32 soundtype, struct prop *prop);
void doorPlayClosingSound(s32 soundtype, struct prop *prop);
void doorPlayOpenedSound(s32 soundtype, struct prop *prop);
@@ -320,7 +320,7 @@ void doorSetMode(struct doorobj *door, s32 newmode);
void doorsRequestMode(struct doorobj *door, s32 newmode);
s32 doorIsClosed(struct doorobj *door);
s32 doorIsOpen(struct doorobj *door);
s32 func0f08e5a8(s16 *rooms, struct screenbox *box);
s32 func0f08e5a8(RoomNum *rooms, struct screenbox *box);
f32 objCalculateFadeDistOpacityFrac(struct prop *prop, f32 modelscale);
bool posIsInObjFadeDistance(struct coord *coord, f32 modelscale);
bool func0f08e8ac(struct prop *prop, struct coord *pos, f32 arg2, bool arg3);
+4 -4
View File
@@ -21,17 +21,17 @@ void psTick(void);
void psSetPitch(struct prop *prop, f32 targetpitch, s32 changespeed);
void psSetVolume(struct prop *prop, s32 vol);
void psStopOneShootChannel(struct prop *prop);
s16 psCreate(struct pschannel *channel, struct prop *prop, s16 soundnum, s16 padnum, s32 vol, u16 flags, u16 flags2, s32 type, struct coord *pos, f32 pitch, s16 *rooms, s32 room, f32 dist1, f32 dist2, f32 dist3);
s16 psCreate(struct pschannel *channel, struct prop *prop, s16 soundnum, s16 padnum, s32 vol, u16 flags, u16 flags2, s32 type, struct coord *pos, f32 pitch, RoomNum *rooms, s32 room, f32 dist1, f32 dist2, f32 dist3);
s32 psPlayFromProp(s32 channelnum, s16 soundnum, s32 vol, struct prop *prop, s16 type, u16 flags);
void psMuteChannel(s32 channelnum);
bool psIsChannelFree(s32 channelnum);
void psModify(s32 channelnum, s32 arg1, s16 padnum, struct prop *prop, s32 volchangetimer60, s32 dist2, s32 dist3, u16 flags);
s32 psCalculateVol(struct coord *pos, f32 arg1, f32 arg2, f32 arg3, s16 *rooms, s16 soundnum, s32 arg6, f32 *arg7);
s32 psCalculateVol(struct coord *pos, f32 arg1, f32 arg2, f32 arg3, RoomNum *rooms, s16 soundnum, s32 arg6, f32 *arg7);
s32 psCalculatePan3(s32 degrees, f32 arg1, struct pschannel *channel);
s32 psCalculatePan2(struct coord *pos, s32 arg1, f32 arg2, struct pschannel *channel);
s32 psCalculatePan(struct coord *pos, f32 dist1, f32 dist2, f32 dist3, f32 playerdist, bool arg5, struct pschannel *channel);
void psGetTheoreticalVolPan(struct coord *pos, s16 *rooms, s16 soundnum, s32 *vol, s32 *pan);
void psApplyVolPan(struct sndstate *handle, struct coord *pos, f32 dist1, f32 dist2, f32 dist3, s16 *rooms, s16 soundnum, s32 arg7, f32 *distanceptr);
void psGetTheoreticalVolPan(struct coord *pos, RoomNum *rooms, s16 soundnum, s32 *vol, s32 *pan);
void psApplyVolPan(struct sndstate *handle, struct coord *pos, f32 dist1, f32 dist2, f32 dist3, RoomNum *rooms, s16 soundnum, s32 arg7, f32 *distanceptr);
s32 psGetRandomSparkSound(void);
s32 psGetDuration60(s32 channelnum);
+1 -1
View File
@@ -11,7 +11,7 @@ u32 setupGetCmdIndexByProp(struct prop *prop);
bool setupLoadModeldef(s32 modelnum);
bool setupGetObjBbox(struct defaultobj *obj, struct coord *pos, f32 realrot[3][3], struct coord *arg3, struct coord *arg4);
bool setup0f092304(struct defaultobj *obj, struct coord *arg1, struct coord *arg2);
void setup0f09233c(struct defaultobj *obj, struct coord *pos, f32 realrot[3][3], s16 *rooms);
void setup0f09233c(struct defaultobj *obj, struct coord *pos, f32 realrot[3][3], RoomNum *rooms);
void setup0f0923d4(struct defaultobj *obj);
struct defaultobj *setupGetObjByCmdIndex(u32 cmdindex);
struct defaultobj *setupFindObjForReuse(s32 type, struct defaultobj **arg1, struct defaultobj **arg2, bool musthaveprop, bool musthavemodel, struct modeldef *modeldef);
+5 -5
View File
@@ -11,13 +11,13 @@ void smokeReset(void);
void smokeStop(void);
Gfx *smokeRenderPart(struct smoke *smoke, struct smokepart *part, Gfx *gdl, struct coord *coord, f32 size);
struct smoke *smokeCreate(struct coord *pos, s16 *rooms, s16 type);
bool smokeCreateForHand(struct coord *pos, s16 *rooms, s16 type, s32 handnum);
bool smokeCreateWithSource(void *source, struct coord *pos, s16 *rooms, s16 type, bool srcispadeffect);
struct smoke *smokeCreate(struct coord *pos, RoomNum *rooms, s16 type);
bool smokeCreateForHand(struct coord *pos, RoomNum *rooms, s16 type, s32 handnum);
bool smokeCreateWithSource(void *source, struct coord *pos, RoomNum *rooms, s16 type, bool srcispadeffect);
void smokeCreateAtProp(struct prop *prop, s16 type);
void smokeCreateAtPadEffect(struct padeffectobj *effect, struct coord *pos, s16 *rooms, s16 type);
void smokeCreateAtPadEffect(struct padeffectobj *effect, struct coord *pos, RoomNum *rooms, s16 type);
void smokeClearForProp(struct prop *prop);
struct smoke *smokeCreateSimple(struct coord *pos, s16 *rooms, s16 type);
struct smoke *smokeCreateSimple(struct coord *pos, RoomNum *rooms, s16 type);
u32 smokeTick(struct prop *prop);
u32 smokeTickPlayer(struct prop *prop);
Gfx *smokeRender(struct prop *prop, Gfx *gdl, bool xlupass);
+2
View File
@@ -4,6 +4,8 @@
#include "data.h"
#include "types.h"
#define TITLE_ALLOCSIZE 1024 * 286
extern u32 var800624d4;
extern u32 var800624d8;
extern u32 var800624dc;
+2 -2
View File
@@ -17,11 +17,11 @@ void wallhitRemoveOne(void);
void wallhitsTick(void);
void wallhitCreate(struct coord *relpos, struct coord *arg1, struct coord *arg2, s16 arg3[3],
s16 arg4[3], s16 texnum, s16 room, struct prop *objprop,
s16 arg4[3], s16 texnum, RoomNum room, struct prop *objprop,
s8 mtxindex, s8 arg9, struct chrdata *chr, bool xlu);
void wallhitCreateWith20Args(struct coord *relpos, struct coord *arg1, struct coord *arg2, s16 arg3[3],
s16 arg4[3], s16 texnum, s16 room, struct prop *objprop,
s16 arg4[3], s16 texnum, RoomNum room, struct prop *objprop,
struct prop *chrprop, s8 mtxindex, s8 arg10, struct chrdata *chr,
f32 width, f32 height, u8 minalpha, u8 maxalpha,
s32 rotdeg, u32 timermax, u32 timerspeed, bool xlu);
+35 -35
View File
@@ -25,47 +25,47 @@ bool cd000266a4(f32 x, f32 z, struct geo *tile);
void cdGetPropsOnPlatform(struct prop *platform, s16 *propnums, s32 len);
s32 cd000274e0Block(struct geoblock *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collision *collision);
bool cd000276c8Cyl(struct geocyl *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collision *collision);
bool cdFindLadder(struct coord *pos, f32 width, f32 ymax, f32 ymin, s16 *rooms, u16 geoflags, struct coord *laddernormal);
bool cd0002a13c(struct coord *pos, f32 radius, f32 arg2, f32 arg3, s16 *rooms, u16 geoflags);
f32 cdFindGroundInfoAtCyl(struct coord *pos, f32 radius, s16 *rooms, u16 *floorcol, u8 *floortype, u16 *floorflags, s16 *floorroom, s32 *inlift, struct prop **lift);
bool cdFindLadder(struct coord *pos, f32 width, f32 ymax, f32 ymin, RoomNum *rooms, u16 geoflags, struct coord *laddernormal);
bool cd0002a13c(struct coord *pos, f32 radius, f32 arg2, f32 arg3, RoomNum *rooms, u16 geoflags);
f32 cdFindGroundInfoAtCyl(struct coord *pos, f32 radius, RoomNum *rooms, u16 *floorcol, u8 *floortype, u16 *floorflags, RoomNum *floorroom, s32 *inlift, struct prop **lift);
f32 cdReturnZero(void);
f32 cdFindGroundAtCyl(struct coord *pos, f32 radius, s16 *rooms, u16 *floorcol, u8 *floortype);
f32 cdFindFloorYColourTypeAtPos(struct coord *pos, s16 *rooms, u16 *floorcol, u8 *floortype);
s32 cdFindFloorRoomAtPos(struct coord *pos, s16 *nearrooms);
f32 cdFindGroundAtCyl(struct coord *pos, f32 radius, RoomNum *rooms, u16 *floorcol, u8 *floortype);
f32 cdFindFloorYColourTypeAtPos(struct coord *pos, RoomNum *rooms, u16 *floorcol, u8 *floortype);
s32 cdFindFloorRoomAtPos(struct coord *pos, RoomNum *nearrooms);
#if VERSION >= VERSION_NTSC_1_0
s16 cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr);
s16 cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr);
RoomNum cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr);
RoomNum cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr);
#else
s16 cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr);
s16 cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr);
RoomNum cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcolptr);
RoomNum cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcolptr);
#endif
s16 cdFindFloorRoomYColourNormalPropAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, struct coord *normal, struct prop **propptr);
s16 cdFindCeilingRoomYColourFlagsNormalAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, u16 *geoflags, struct coord *normal);
s32 cdTestVolume(struct coord *pos, f32 radius, s16 *rooms, s32 types, bool checkvertical, f32 ymax, f32 ymin);
s32 cdExamCylMove01(struct coord *pos, struct coord *pos2, f32 radius, s16 *rooms, s32 types, bool checkvertical, f32 ymax, f32 ymin);
s32 cdExamCylMove02(struct coord *origpos, struct coord *dstpos, f32 width, s16 *dstrooms, s32 types, bool checkvertical, f32 ymax, f32 ymin);
bool cdTestCylMove01(struct coord *pos, s16 *rooms, struct coord *targetpos, u32 types, u32 arg4, f32 ymax, f32 ymin);
s32 cdTestCylMove02(struct coord *pos, s16 *rooms, struct coord *coord2, s16 *rooms2, u32 types, bool arg5, f32 ymax, f32 ymin);
s32 cdExamCylMove03(struct coord *pos, s16 *rooms, struct coord *arg2, u32 types, u32 arg4, f32 ymax, f32 ymin);
s32 cdTestCylMove04(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types, s32 arg5, f32 ymax, f32 ymin);
s32 cdExamCylMove05(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, s32 types, bool arg5, f32 ymax, f32 ymin);
s32 cdExamCylMove06(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, f32 arg4, s32 types, s32 arg6, f32 ymax, f32 ymin);
s32 cdExamCylMove07(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types, s32 arg5, f32 ymax, f32 ymin);
s32 cdExamCylMove08(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, f32 width, u32 types, s32 arg6, f32 ymax, f32 ymin);
bool cdTestLos03(struct coord *viewpos, s16 *rooms, struct coord *targetpos, u32 types, u16 geoflags);
bool cdTestLos04(struct coord *coord, s16 *rooms, struct coord *coord2, s32 arg3);
bool cdTestLos05(struct coord *coord, s16 *rooms, struct coord *coord2, s16 *rooms2, s32 cdtypes, u16 geoflags);
bool cdTestLos06(struct coord *arg0, s16 *rooms1, struct coord *arg2, s16 *rooms2, u32 types);
bool cdTestLos07(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, s16 *rooms3, u32 types, u16 geoflags);
s32 cdExamLos08(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types, u16 geoflags);
s32 cdExamLos09(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types);
s32 cdTestLos10(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types, u16 geoflags);
s32 cdTestLos11(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types);
RoomNum cdFindFloorRoomYColourNormalPropAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcol, struct coord *normal, struct prop **propptr);
RoomNum cdFindCeilingRoomYColourFlagsNormalAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcol, u16 *geoflags, struct coord *normal);
s32 cdTestVolume(struct coord *pos, f32 radius, RoomNum *rooms, s32 types, bool checkvertical, f32 ymax, f32 ymin);
s32 cdExamCylMove01(struct coord *pos, struct coord *pos2, f32 radius, RoomNum *rooms, s32 types, bool checkvertical, f32 ymax, f32 ymin);
s32 cdExamCylMove02(struct coord *origpos, struct coord *dstpos, f32 width, RoomNum *dstrooms, s32 types, bool checkvertical, f32 ymax, f32 ymin);
bool cdTestCylMove01(struct coord *pos, RoomNum *rooms, struct coord *targetpos, u32 types, u32 arg4, f32 ymax, f32 ymin);
s32 cdTestCylMove02(struct coord *pos, RoomNum *rooms, struct coord *coord2, RoomNum *rooms2, u32 types, bool arg5, f32 ymax, f32 ymin);
s32 cdExamCylMove03(struct coord *pos, RoomNum *rooms, struct coord *arg2, u32 types, u32 arg4, f32 ymax, f32 ymin);
s32 cdTestCylMove04(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, u32 types, s32 arg5, f32 ymax, f32 ymin);
s32 cdExamCylMove05(struct coord *pos, RoomNum *rooms, struct coord *pos2, RoomNum *rooms2, s32 types, bool arg5, f32 ymax, f32 ymin);
s32 cdExamCylMove06(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, f32 arg4, s32 types, s32 arg6, f32 ymax, f32 ymin);
s32 cdExamCylMove07(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, u32 types, s32 arg5, f32 ymax, f32 ymin);
s32 cdExamCylMove08(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, f32 width, u32 types, s32 arg6, f32 ymax, f32 ymin);
bool cdTestLos03(struct coord *viewpos, RoomNum *rooms, struct coord *targetpos, u32 types, u16 geoflags);
bool cdTestLos04(struct coord *coord, RoomNum *rooms, struct coord *coord2, s32 arg3);
bool cdTestLos05(struct coord *coord, RoomNum *rooms, struct coord *coord2, RoomNum *rooms2, s32 cdtypes, u16 geoflags);
bool cdTestLos06(struct coord *arg0, RoomNum *rooms1, struct coord *arg2, RoomNum *rooms2, u32 types);
bool cdTestLos07(struct coord *pos, RoomNum *rooms, struct coord *pos2, RoomNum *rooms2, RoomNum *rooms3, u32 types, u16 geoflags);
s32 cdExamLos08(struct coord *pos, RoomNum *rooms, struct coord *pos2, u32 types, u16 geoflags);
s32 cdExamLos09(struct coord *pos, RoomNum *rooms, struct coord *pos2, u32 types);
s32 cdTestLos10(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, u32 types, u16 geoflags);
s32 cdTestLos11(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, u32 types);
bool cd0002ded8(struct coord *arg0, struct coord *arg1, struct prop *prop);
s32 cdTestBlockOverlapsAnyProp(struct geoblock *geo, s16 *rooms, u32 types);
s32 cd0002f02c(struct geoblock *block, s16 *rooms, s32 types);
bool cdIsNearlyInSight(struct coord *viewpos, s16 *rooms, struct coord *targetpos, f32 distance, s32 arg4);
s32 cdTestBlockOverlapsAnyProp(struct geoblock *geo, RoomNum *rooms, u32 types);
s32 cd0002f02c(struct geoblock *block, RoomNum *rooms, s32 types);
bool cdIsNearlyInSight(struct coord *viewpos, RoomNum *rooms, struct coord *targetpos, f32 distance, s32 arg4);
#endif
+9 -9
View File
@@ -4,15 +4,15 @@
#include "data.h"
#include "types.h"
void joy00013900(void);
void joy00013938(void);
void joy00013974(u32 value);
u32 joy00013980(void);
void joy0001398c(s32 value);
void joy000139c8(void);
void joyLockCyclicPolling(void);
void joyUnlockCyclicPolling(void);
void joySetPfsPollEnabled(bool enabled);
bool joyIsPfsPollEnabled(void);
void joySetPfsPollInterval(s32 value);
void joySetDefaultPfsPollInterval(void);
s32 joyShiftPfsStates(void);
void joyRecordPfsState(u8 pfsstate);
void joyCheckPfs(s32 arg0);
void joyPollPfs(s32 force);
void joySetPfsTemporarilyPlugged(s8 index);
void joyInit(void);
void joyDisableTemporarily(void);
@@ -49,8 +49,8 @@ void joyEnableCyclicPolling(s32 line, char *file);
void joyDestroy(void);
void joyGetContpadNumsForPlayer(s8 playernum, s32 *pad1, s32 *pad2);
void joyStopRumble(s8 device, bool disablepolling);
s32 joy000155b4(s8 device);
s32 joy000155f4(s8 device);
s32 joyGetPakState(s8 device);
s32 joyGetPakState2(s8 device);
void joysTickRumble(void);
#endif
+2 -2
View File
@@ -9,8 +9,8 @@
#define PORTALINTERSECTION_FRONTTOBEHIND 2
void portalGetAvgVertexPos(s32 portalnum, struct coord *avg);
void portal00017dc4(s16 *rooms, s16 roomnum);
void portal00017dc4(RoomNum *rooms, RoomNum roomnum);
s32 portalCalculateIntersection(s32 portalnum, struct coord *pos1, struct coord *pos2);
void portal00018148(struct coord *pos, struct coord *pos2, s16 *rooms, s16 *arg3, s16 *arg4, s32 arg5);
void portal00018148(struct coord *pos, struct coord *pos2, RoomNum *rooms, RoomNum *arg3, RoomNum *arg4, s32 arg5);
#endif
+2 -2
View File
@@ -186,14 +186,14 @@
#define hoverbike(scale, model, pad, flags, flags2, flags3, maxdamage) \
_generic_object(0x33, scale, model, pad, flags, flags2, flags3, maxdamage), \
_mkword(_mkshort(HOVTYPE_BIKE, TRUE), 0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
_mkword(_mkshort(HOVTYPE_BIKE, HOVFLAG_FIRSTTICK), 0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
#define endprops \
0x34,
#define hover_prop(scale, model, pad, flags, flags2, flags3, maxdamage, hovtype) \
_generic_object(0x35, scale, model, pad, flags, flags2, flags3, maxdamage), \
_mkword(_mkshort(hovtype, TRUE), 0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
_mkword(_mkshort(hovtype, HOVFLAG_FIRSTTICK), 0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
#define fan(scale, model, pad, flags, flags2, flags3, maxdamage, maxspeed, accel, on) \
_generic_object(0x36, scale, model, pad, flags, flags2, flags3, maxdamage), \
+63 -80
View File
@@ -28,6 +28,7 @@ typedef s32 PakErr1;
typedef s32 PakErr2;
typedef s32 MenuDialogHandlerResult;
typedef intptr_t MenuItemHandlerResult;
typedef s16 RoomNum;
// Float version of a graphics matrix, which has higher precision than an Mtx.
// Matrices are stored as Mtxfs then converted to an Mtx when passed to the GPU.
@@ -231,8 +232,8 @@ struct g_vars {
/*0x4b8*/ struct prop *aibuddies[4];
/*0x4c8*/ u32 dontplaynrg; // allow X music to be played (NRG = energy track)
/*0x4cc*/ s32 in_cutscene;
/*0x4d0*/ u8 paksconnected;
/*0x4d1*/ u8 paksconnected2;
/*0x4d0*/ u8 paksneededformenu;
/*0x4d1*/ u8 paksneededforgame;
/*0x4d2*/ s8 autocutnum; // cutscene scene number (0, 1 or 2), set to -1 while loading cutscene
/*0x4d3*/ s8 autocutplaying; // true if playing a cutscene via the menu, false when a button is pressed
/*0x4d4*/ s8 autocutgroupcur; // index into g_Cutscenes
@@ -247,9 +248,9 @@ struct g_vars {
/*0x4e3*/ u8 langfilteron;
// 000f = Counter: if 10-15 then ticks down 1 per 7 frames, if under 10 then 1 per frame.
// 00f0 = One bit per pak. Does something with the pak if counter expired.
// 0f00 = One bit per pak. Does something with the pak if counter expired (likely opposite of the above).
/*0x4e4*/ u16 unk0004e4;
// 00f0 = One bit per pak. These paks are checked and ticked.
// 0f00 = One bit per pak. These paks are checked but not ticked.
/*0x4e4*/ u16 pakstocheck;
/*0x4e8*/ u32 unk0004e8;
/*0x4ec*/ u32 unk0004ec;
@@ -301,7 +302,7 @@ struct prop {
/*0x1c*/ struct prop *child;
/*0x20*/ struct prop *next;
/*0x24*/ struct prop *prev;
/*0x28*/ s16 rooms[8];
/*0x28*/ RoomNum rooms[8];
/*0x38*/ u16 lastupdateframe;
/*0x3a*/ u16 propupdate240;
/*0x3c*/ u8 propupdate60err;
@@ -753,7 +754,7 @@ struct aibot {
/*0x076*/ s16 lastkilledbyplayernum;
/*0x078*/ u8 forceslowupdates;
/*0x079*/ u8 command;
/*0x07a*/ s16 defendholdrooms[1];
/*0x07a*/ RoomNum defendholdrooms[1];
/*0x07c*/ u32 unk07c; // unused
/*0x080*/ u32 unk080; // unused
/*0x084*/ u32 unk084; // unused
@@ -785,7 +786,7 @@ struct aibot {
/*0x0e0*/ s16 reaperspeed[2];
/*0x0e4*/ f32 maulercharge[2];
/*0x0ec*/ struct coord gotopos;
/*0x0f8*/ s16 gotorooms[8];
/*0x0f8*/ RoomNum gotorooms[8];
/*0x108*/ struct coord shotspeed; // "boost" when aibot is shot
/*0x114*/ s32 feudplayernum;
/*0x118*/ s32 commandtimer60;
@@ -798,7 +799,7 @@ struct aibot {
/*0x13c*/ f32 chrdistances[MAX_MPCHRS];
/*0x16c*/ u8 chrsinsight[MAX_MPCHRS];
/*0x178*/ s32 chrslastseen60[MAX_MPCHRS];
/*0x1a8*/ s16 chrrooms[MAX_MPCHRS];
/*0x1a8*/ RoomNum chrrooms[MAX_MPCHRS];
/*0x1c0*/ f32 extraangle;
/*0x1c4*/ f32 extraanglerate;
/*0x1c8*/ f32 extraanglebase;
@@ -1055,7 +1056,7 @@ struct act_patrol {
struct act_gopos {
/*0x02c*/ struct coord endpos;
/*0x038*/ s16 endrooms[8];
/*0x038*/ RoomNum endrooms[8];
/*0x048*/ struct waypoint *target; // Target/final waypoint
// Array of pointers to the next couple of waypoints. Recalculated each time
@@ -1258,9 +1259,9 @@ struct chrdata {
/*0x2ae*/ u16 unk2ae;
/*0x2b0*/ u8 tude;
/*0x2b1*/ u8 voicebox;
/*0x2b2*/ s16 floorroom;
/*0x2b2*/ RoomNum floorroom;
/*0x2b4*/ u32 unk2b4;
/*0x2b8*/ s16 oldrooms[8];
/*0x2b8*/ RoomNum oldrooms[8];
/*0x2c8*/ struct coord runfrompos;
/*0x2d4*/ struct aibot *aibot;
/*0x2d8*/ s16 blurdrugamount;
@@ -1433,21 +1434,21 @@ struct tvscreen {
struct hov {
/*0x00*/ u8 type;
/*0x01*/ u8 flags;
/*0x04*/ f32 unk04;
/*0x08*/ f32 unk08;
/*0x0c*/ f32 unk0c;
/*0x10*/ f32 unk10;
/*0x14*/ f32 unk14;
/*0x18*/ f32 unk18;
/*0x1c*/ f32 unk1c;
/*0x20*/ f32 unk20;
/*0x24*/ f32 unk24;
/*0x28*/ f32 unk28;
/*0x2c*/ f32 unk2c;
/*0x30*/ f32 unk30;
/*0x04*/ f32 bobycur;
/*0x08*/ f32 bobytarget;
/*0x0c*/ f32 bobyspeed;
/*0x10*/ f32 yrot;
/*0x14*/ f32 bobpitchcur;
/*0x18*/ f32 bobpitchtarget;
/*0x1c*/ f32 bobpitchspeed;
/*0x20*/ f32 bobrollcur;
/*0x24*/ f32 bobrolltarget;
/*0x28*/ f32 bobrollspeed;
/*0x2c*/ f32 groundpitch;
/*0x30*/ f32 y;
/*0x34*/ f32 ground;
/*0x38*/ s32 nexttick60; // framenum of when next tick should occur
/*0x3c*/ s32 prevtick60; // framenum of when hov was last ticked
/*0x38*/ s32 prevframe60;
/*0x3c*/ s32 prevgroundframe60;
};
struct defaultobj {
@@ -2478,7 +2479,7 @@ struct player {
/*0x0278*/ f32 shieldshowrot;
/*0x027c*/ u32 shieldshowrnd;
/*0x0280*/ f32 shieldshowtime;
/*0x0284*/ s16 bondprevrooms[8];
/*0x0284*/ RoomNum bondprevrooms[8];
/*0x0294*/ f32 liftground;
/*0x0298*/ struct prop *lift;
/*0x029c*/ f32 ladderupdown;
@@ -2674,7 +2675,7 @@ struct player {
/*0x19a4*/ f32 speedgo;
/*0x19a8*/ s32 sighttimer240;
/*0x19ac*/ s32 crouchoffsetreal;
/*0x19b0*/ s16 floorroom;
/*0x19b0*/ RoomNum floorroom;
/*0x19b2*/ u8 unk19b2;
/*0x19b3*/ u8 dostartnewlife;
/*0x19b4*/ f32 crouchoffsetsmall;
@@ -2820,7 +2821,7 @@ struct coverdefinition {
struct cover {
/*0x00*/ struct coord *pos;
/*0x04*/ struct coord *look;
/*0x08*/ s16 rooms[2];
/*0x08*/ RoomNum rooms[2];
/*0x0c*/ u16 flags;
};
@@ -4450,7 +4451,7 @@ struct scenariodata_koh {
/*0x800ac118*/ s16 movehill;
/*0x800ac11a*/ s16 hillindex;
/*0x800ac11c*/ s16 hillcount;
/*0x800ac11e*/ s16 hillrooms[2];
/*0x800ac11e*/ RoomNum hillrooms[2];
/*0x800ac122*/ s16 hillpads[9];
/*0x800ac134*/ struct coord hillpos;
/*0x800ac140*/ f32 colourfracr;
@@ -4467,7 +4468,7 @@ struct ctcspawnpadsperteam {
struct scenariodata_ctc {
/*0x00*/ s16 playercountsperteam[4];
/*0x08*/ s16 teamindexes[4];
/*0x10*/ s16 baserooms[4];
/*0x10*/ RoomNum baserooms[4];
/*0x18*/ struct ctcspawnpadsperteam spawnpadsperteam[4];
/*0x58*/ struct prop *tokens[4];
};
@@ -4616,8 +4617,8 @@ struct explosionpart {
struct explosionbb {
struct coord bbmin;
struct coord bbmax;
s16 room;
s16 room2;
RoomNum room;
RoomNum room2;
};
struct explosion {
@@ -4625,7 +4626,7 @@ struct explosion {
struct prop *source; // Prop of the thing that created the explosion
struct explosionpart parts[40];
/*0x3c8*/ s16 age;
/*0x3ca*/ s16 room;
/*0x3ca*/ RoomNum room;
/*0x3cc*/ s8 type;
/*0x3cd*/ s8 makescorch;
/*0x3ce*/ s8 owner;
@@ -4714,12 +4715,12 @@ struct pak {
/*0x004*/ u32 rumblestate;
/*0x008*/ u32 unk008;
/*0x00c*/ u32 unk00c;
/*0x010*/ s32 unk010;
/*0x014*/ u8 unk014;
/*0x010*/ s32 state;
/*0x014*/ u8 features;
/*0x018*/ struct pakdata pakdata;
/*0x25c*/ u32 maxfileid;
/*0x260*/ u32 serial;
/*0x264*/ u32 unk264;
/*0x264*/ u32 plugcount;
/*0x268*/ u32 unk268;
/*0x26c*/ u32 unk26c;
/*0x270*/ u32 unk270;
@@ -4746,7 +4747,7 @@ struct pak {
/*0x2b8*/ u8 isgbpd : 1;
/*0x2b8*/ u8 unk2b8_05 : 1;
/*0x2b8*/ u8 unk2b8_06 : 1;
/*0x2b8*/ u8 unk2b8_07 : 1;
/*0x2b8*/ u8 showdatalost : 1;
/*0x2b9*/ u8 unk2b9;
/*0x2ba*/ u8 unk2ba;
/*0x2bb*/ u8 unk2bb;
@@ -4836,13 +4837,13 @@ struct animtable {
s32 injuryanimcount;
};
struct var80075c00 {
struct headanim {
s16 animnum;
f32 loopframe;
f32 endframe;
f32 unk0c;
f32 unk10;
f32 unk14;
f32 translateperframe;
f32 minspeed;
f32 maxspeed;
};
struct vimode {
@@ -5161,7 +5162,7 @@ struct bgcmd {
};
struct drawslot {
s16 roomnum;
RoomNum roomnum;
u8 unk02;
u8 draworder;
struct screenbox box;
@@ -5178,8 +5179,8 @@ struct zrange {
};
struct bgsnakeitem {
/*0x00*/ s16 roomnum;
/*0x02*/ s16 fromroomnums[5];
/*0x00*/ RoomNum roomnum;
/*0x02*/ RoomNum fromroomnums[5];
/*0x0c*/ u8 depth;
/*0x0d*/ u8 numportals;
/*0x0e*/ s16 roomportallistoffset;
@@ -5625,7 +5626,7 @@ struct var80067e6c {
};
struct shard {
/*0x00*/ s16 room;
/*0x00*/ RoomNum room;
/*0x04*/ s32 age60;
/*0x08*/ struct coord pos;
/*0x14*/ struct coord rot;
@@ -5670,7 +5671,7 @@ struct pschannel {
/*0x50*/ struct prop *prop;
/*0x54*/ struct coord *posptr;
/*0x58*/ struct coord pos;
/*0x64*/ s16 rooms[8];
/*0x64*/ RoomNum rooms[8];
#if VERSION >= VERSION_NTSC_1_0
/*0x74*/ u32 uuid;
#endif
@@ -5708,7 +5709,7 @@ struct wallhit {
/*0x5c*/ struct prop *chrprop;
/*0x60*/ struct prop *objprop;
/*0x64*/ Vtx *vertices2; // overridden vertices for when blood is expanding
/*0x68*/ s16 roomnum;
/*0x68*/ RoomNum roomnum;
/*0x6a*/ u8 texturenum;
/*0x6b*/ u8 unk6b;
/*0x6c*/ u8 mtxindex;
@@ -5818,7 +5819,6 @@ typedef struct AudioInfo_s {
short *data; /* Output data pointer */
short frameSamples; /* # of samples synthesized in this frame */
OSScTask task; /* scheduler structure */
AudioMsg msg; /* completion message */
} AudioInfo;
typedef struct {
@@ -5926,12 +5926,7 @@ struct mp3vars {
/*0x38*/ struct mp3thing *var8009c3c8;
/*0x3c*/ s32 var8009c3cc;
/*0x40*/ s32 var8009c3d0;
union {
/*0x44*/ u32 *var8009c3d4;
/*0x44*/ u32 *var8009c3d4_arr[1];
};
/*0x44*/ u32 *var8009c3d4[1];
/*0x48*/ u32 var8009c3d8;
/*0x4c*/ void *var8009c3dc;
/*0x50*/ u32 var8009c3e0;
@@ -5943,18 +5938,6 @@ struct mp3vars {
/*0x61*/ u8 var8009c3f1;
};
struct sndcache {
/*0x0000*/ u16 *indexes; // indexed by sfxnum, value is cache index (0-44) or 0xffff
/*0x0004*/ u8 refcounts[45];
/*0x0032*/ u16 ages[45];
/*0x008c*/ ALEnvelope envelopes[45];
/*0x035c*/ ALKeyMap keymaps[45];
/*0x046c*/ ALWaveTable wavetables[45];
/*0x07f0*/ ALADPCMBook books[45];
/*0x3658*/ ALADPCMloop loops[45];
/*0x3e14*/ ALSound sounds[45];
};
struct rdptask {
OSScTask sctask;
u16 *framebuffer;
@@ -6313,19 +6296,19 @@ struct skyvtx2d {
};
struct hovtype {
/*0x00*/ f32 unk00;
/*0x04*/ f32 unk04;
/*0x08*/ f32 unk08;
/*0x0c*/ f32 unk0c;
/*0x10*/ f32 unk10;
/*0x14*/ f32 unk14;
/*0x18*/ f32 unk18;
/*0x1c*/ f32 unk1c;
/*0x20*/ f32 unk20;
/*0x24*/ f32 unk24;
/*0x28*/ f32 unk28;
/*0x2c*/ f32 unk2c;
/*0x30*/ f32 unk30;
/*0x00*/ f32 bobymid;
/*0x04*/ f32 bobyminradius;
/*0x08*/ f32 bobyrandradius;
/*0x0c*/ f32 bobyaccel;
/*0x10*/ f32 bobymaxspeed;
/*0x14*/ f32 bobpitchminangle;
/*0x18*/ f32 bobpitchrandangle;
/*0x1c*/ f32 bobpitchaccel;
/*0x20*/ f32 bobpitchmaxspeed;
/*0x24*/ f32 bobrollminangle;
/*0x28*/ f32 bobrollrandangle;
/*0x2c*/ f32 bobrollaccel;
/*0x30*/ f32 bobrollmaxspeed;
};
struct modelrwdatabinding {
+4 -4
View File
@@ -1,6 +1,7 @@
#include <ultra64.h>
#include "lib/boot.h"
#include "lib/sched.h"
#include "naudio/n_synthInternals.h"
#include "constants.h"
#include "bss.h"
#include "lib/audiodma.h"
@@ -85,8 +86,8 @@ void amgrCreate(ALSynConfig *config)
g_AmgrFreqPerTick++;
}
g_AmgrFreqPerTick = g_AmgrFreqPerTick / 184 * 184 + 184;
var800918dc = g_AmgrFreqPerTick - 184;
g_AmgrFreqPerTick = g_AmgrFreqPerTick / SAMPLES * SAMPLES + SAMPLES;
var800918dc = g_AmgrFreqPerTick - SAMPLES;
var800918e4 = g_AmgrFreqPerTick + 80;
var8005cf94 = 0;
@@ -108,8 +109,7 @@ void amgrCreate(ALSynConfig *config)
}
for (i = 0; i < ARRAYCOUNT(g_AudioManager.audioInfo); i++) {
// @todo: Find out why AudioInfo is only 0x60
g_AudioManager.audioInfo[i] = alHeapAlloc(&g_SndHeap, 1, 0x60);
g_AudioManager.audioInfo[i] = alHeapAlloc(&g_SndHeap, 1, sizeof(AudioInfo));
g_AudioManager.audioInfo[i]->frameSamples = 0;
g_AudioManager.audioInfo[i]->data = alHeapAlloc(&g_SndHeap, 1, PAL ? 3688 : 1024 * 3);
}
+76 -76
View File
@@ -962,9 +962,9 @@ bool cd00026a04(struct coord *pos, u8 *start, u8 *end, u16 geoflags, s32 room, s
return result;
}
void cdFindClosestVertical(struct coord *pos, s16 *rooms, u16 geoflags, struct geo **geoptr, s16 *roomptr, f32 *groundptr, struct prop **propptr, bool ceiling)
void cdFindClosestVertical(struct coord *pos, RoomNum *rooms, u16 geoflags, struct geo **geoptr, RoomNum *roomptr, f32 *groundptr, struct prop **propptr, bool ceiling)
{
s16 *roomptr2;
RoomNum *roomptr2;
s32 roomnum;
u8 *start;
u8 *end;
@@ -1262,9 +1262,9 @@ void cdCollectGeoForCylFromList(struct coord *pos, f32 radius, u8 *start, u8 *en
}
}
void cdCollectGeoForCyl(struct coord *pos, f32 radius, s16 *rooms, u32 types, u16 geoflags, bool checkvertical, f32 ymax, f32 ymin, struct collision *collisions, s32 maxcollisions)
void cdCollectGeoForCyl(struct coord *pos, f32 radius, RoomNum *rooms, u32 types, u16 geoflags, bool checkvertical, f32 ymax, f32 ymin, struct collision *collisions, s32 maxcollisions)
{
s16 *roomptr;
RoomNum *roomptr;
s32 roomnum;
u8 *start;
u8 *end;
@@ -1590,9 +1590,9 @@ void cdCollectGeoForCylMoveFromList(u8 *start, u8 *end, struct coord *pos, f32 r
}
}
void cdCollectGeoForCylMove(struct coord *pos, f32 width, s16 *rooms, u32 types, u16 geoflags, bool checkvertical, f32 ymax, f32 ymin, struct collision *collisions, s32 maxcollisions)
void cdCollectGeoForCylMove(struct coord *pos, f32 width, RoomNum *rooms, u32 types, u16 geoflags, bool checkvertical, f32 ymax, f32 ymin, struct collision *collisions, s32 maxcollisions)
{
s16 *roomptr;
RoomNum *roomptr;
s32 roomnum;
u8 *start;
u8 *end;
@@ -2139,7 +2139,7 @@ f32 cdFindGroundFromList(struct collision *collisions, struct coord *pos, struct
* There is nothing specific to ladders in this function, but it's only used
* for finding ladders.
*/
bool cdFindLadder(struct coord *pos, f32 width, f32 ymax, f32 ymin, s16 *rooms, u16 geoflags, struct coord *laddernormal)
bool cdFindLadder(struct coord *pos, f32 width, f32 ymax, f32 ymin, RoomNum *rooms, u16 geoflags, struct coord *laddernormal)
{
struct collision collisions[2];
@@ -2167,7 +2167,7 @@ bool cdFindLadder(struct coord *pos, f32 width, f32 ymax, f32 ymin, s16 *rooms,
return false;
}
bool cd0002a13c(struct coord *pos, f32 radius, f32 ymax, f32 ymin, s16 *rooms, u16 geoflags)
bool cd0002a13c(struct coord *pos, f32 radius, f32 ymax, f32 ymin, RoomNum *rooms, u16 geoflags)
{
struct collision collisions[2];
@@ -2180,8 +2180,8 @@ bool cd0002a13c(struct coord *pos, f32 radius, f32 ymax, f32 ymin, s16 *rooms, u
return false;
}
f32 cdFindGroundInfoAtCyl(struct coord *pos, f32 radius, s16 *rooms, u16 *floorcol,
u8 *floortype, u16 *floorflags, s16 *floorroom, s32 *inlift, struct prop **lift)
f32 cdFindGroundInfoAtCyl(struct coord *pos, f32 radius, RoomNum *rooms, u16 *floorcol,
u8 *floortype, u16 *floorflags, RoomNum *floorroom, s32 *inlift, struct prop **lift)
{
struct collision collisions[21];
struct collision *sp72 = NULL;
@@ -2244,15 +2244,15 @@ f32 cdReturnZero(void)
return 0;
}
f32 cdFindGroundAtCyl(struct coord *pos, f32 radius, s16 *rooms, u16 *floorcol, u8 *floortype)
f32 cdFindGroundAtCyl(struct coord *pos, f32 radius, RoomNum *rooms, u16 *floorcol, u8 *floortype)
{
return cdFindGroundInfoAtCyl(pos, radius, rooms, floorcol, floortype, NULL, NULL, NULL, NULL);
}
f32 cdFindFloorYColourTypeAtPos(struct coord *pos, s16 *rooms, u16 *floorcol, u8 *floortype)
f32 cdFindFloorYColourTypeAtPos(struct coord *pos, RoomNum *rooms, u16 *floorcol, u8 *floortype)
{
struct geo *geo;
s16 sp30[2];
RoomNum sp30[2];
f32 sp2c;
f32 result = -4294967296;
@@ -2273,10 +2273,10 @@ f32 cdFindFloorYColourTypeAtPos(struct coord *pos, s16 *rooms, u16 *floorcol, u8
return result;
}
s32 cdFindFloorRoomAtPos(struct coord *pos, s16 *nearrooms)
s32 cdFindFloorRoomAtPos(struct coord *pos, RoomNum *nearrooms)
{
struct geo *geo;
s16 room;
RoomNum room;
f32 sp2c;
cdFindClosestVertical(pos, nearrooms, GEOFLAG_FLOOR1 | GEOFLAG_FLOOR2, &geo, &room, &sp2c, 0, SURFACE_FLOOR);
@@ -2285,13 +2285,13 @@ s32 cdFindFloorRoomAtPos(struct coord *pos, s16 *nearrooms)
}
#if VERSION >= VERSION_NTSC_1_0
s16 cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr)
RoomNum cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr)
#else
s16 cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr)
RoomNum cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcolptr)
#endif
{
struct geo *geo;
s16 room;
RoomNum room;
f32 sp2c;
cdFindClosestVertical(pos, rooms, GEOFLAG_FLOOR1 | GEOFLAG_FLOOR2, &geo, &room, &sp2c, NULL, SURFACE_FLOOR);
@@ -2314,13 +2314,13 @@ s16 cdFindFloorRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u
}
#if VERSION >= VERSION_NTSC_1_0
s16 cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr)
RoomNum cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr)
#else
s16 cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr)
RoomNum cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcolptr)
#endif
{
struct geo *geo;
s16 sp32;
RoomNum sp32;
f32 sp2c;
cdFindClosestVertical(pos, rooms, GEOFLAG_FLOOR1 | GEOFLAG_FLOOR2, &geo, &sp32, &sp2c, NULL, SURFACE_CEILING);
@@ -2342,10 +2342,10 @@ s16 cdFindCeilingRoomYColourFlagsAtPos(struct coord *pos, s16 *rooms, f32 *arg2,
return sp32;
}
s16 cdFindFloorRoomYColourNormalPropAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, struct coord *normal, struct prop **propptr)
RoomNum cdFindFloorRoomYColourNormalPropAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcol, struct coord *normal, struct prop **propptr)
{
struct geo *geo;
s16 room;
RoomNum room;
f32 sp2c;
cdFindClosestVertical(pos, rooms, GEOFLAG_FLOOR1 | GEOFLAG_FLOOR2, &geo, &room, &sp2c, propptr, SURFACE_FLOOR);
@@ -2362,10 +2362,10 @@ s16 cdFindFloorRoomYColourNormalPropAtPos(struct coord *pos, s16 *rooms, f32 *ar
return room;
}
s16 cdFindCeilingRoomYColourFlagsNormalAtPos(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, u16 *flagsptr, struct coord *normal)
RoomNum cdFindCeilingRoomYColourFlagsNormalAtPos(struct coord *pos, RoomNum *rooms, f32 *arg2, u16 *floorcol, u16 *flagsptr, struct coord *normal)
{
struct geo *geo;
s16 sp32;
RoomNum sp32;
f32 sp2c;
cdFindClosestVertical(pos, rooms, GEOFLAG_FLOOR1 | GEOFLAG_FLOOR2, &geo, &sp32, &sp2c, NULL, SURFACE_CEILING);
@@ -2389,7 +2389,7 @@ s16 cdFindCeilingRoomYColourFlagsNormalAtPos(struct coord *pos, s16 *rooms, f32
/**
* Tests if a cylinder volume fits in the given position.
*/
s32 cdTestVolume(struct coord *pos, f32 width, s16 *rooms, s32 types, bool checkvertical, f32 ymax, f32 ymin)
s32 cdTestVolume(struct coord *pos, f32 width, RoomNum *rooms, s32 types, bool checkvertical, f32 ymax, f32 ymin)
{
struct collision collisions[2];
bool result = true;
@@ -2404,7 +2404,7 @@ s32 cdTestVolume(struct coord *pos, f32 width, s16 *rooms, s32 types, bool check
return result;
}
s32 cdExamCylMove01(struct coord *pos, struct coord *pos2, f32 radius, s16 *rooms, s32 types, bool checkvertical, f32 ymax, f32 ymin)
s32 cdExamCylMove01(struct coord *pos, struct coord *pos2, f32 radius, RoomNum *rooms, s32 types, bool checkvertical, f32 ymax, f32 ymin)
{
struct collision collisions[2];
s32 cdresult;
@@ -2469,7 +2469,7 @@ s32 cdExamCylMove01(struct coord *pos, struct coord *pos2, f32 radius, s16 *room
return cdresult;
}
s32 cdExamCylMove02(struct coord *origpos, struct coord *dstpos, f32 width, s16 *dstrooms, s32 types, bool checkvertical, f32 ymax, f32 ymin)
s32 cdExamCylMove02(struct coord *origpos, struct coord *dstpos, f32 width, RoomNum *dstrooms, s32 types, bool checkvertical, f32 ymax, f32 ymin)
{
struct collision collisions[21];
struct coord dist;
@@ -3337,10 +3337,10 @@ bool cdExamAToBGeolist(u8 *start, u8 *end, struct coord *arg2, struct coord *arg
return !result;
}
bool cdTestAToB(struct coord *pos, struct coord *coord2, s16 *rooms, u32 types, u16 geoflags, bool checkvertical, s32 arg6, f32 ymax, f32 ymin)
bool cdTestAToB(struct coord *pos, struct coord *coord2, RoomNum *rooms, u32 types, u16 geoflags, bool checkvertical, s32 arg6, f32 ymax, f32 ymin)
{
s32 roomnum;
s16 *roomptr;
RoomNum *roomptr;
u8 *start;
u8 *end;
struct coord sp27c;
@@ -3391,10 +3391,10 @@ bool cdTestAToB(struct coord *pos, struct coord *coord2, s16 *rooms, u32 types,
return true;
}
s32 cdExamAToB(struct coord *arg0, struct coord *arg1, s16 *rooms, s32 types, u16 geoflags, bool checkvertical, s32 arg6, f32 ymax, f32 ymin)
s32 cdExamAToB(struct coord *arg0, struct coord *arg1, RoomNum *rooms, s32 types, u16 geoflags, bool checkvertical, s32 arg6, f32 ymax, f32 ymin)
{
s32 roomnum;
s16 *roomptr;
RoomNum *roomptr;
u8 *start;
u8 *end;
struct coord sp2c4;
@@ -3451,21 +3451,21 @@ s32 cdExamAToB(struct coord *arg0, struct coord *arg1, s16 *rooms, s32 types, u1
return !sp2c0;
}
bool cdTestCylMove01(struct coord *pos, s16 *rooms, struct coord *targetpos, u32 types, u32 arg4, f32 ymax, f32 ymin)
bool cdTestCylMove01(struct coord *pos, RoomNum *rooms, struct coord *targetpos, u32 types, u32 arg4, f32 ymax, f32 ymin)
{
s16 sp44[21];
s16 sp34[8];
RoomNum sp44[21];
RoomNum sp34[8];
portal00018148(pos, targetpos, rooms, sp34, sp44, 20);
return cdTestAToB(pos, targetpos, sp44, types, GEOFLAG_WALL, CHECKVERTICAL_NO, arg4, ymax, ymin);
}
s32 cdTestCylMove02(struct coord *pos, s16 *rooms, struct coord *coord2, s16 *rooms2, u32 types, s32 arg5, f32 ymax, f32 ymin)
s32 cdTestCylMove02(struct coord *pos, RoomNum *rooms, struct coord *coord2, RoomNum *rooms2, u32 types, s32 arg5, f32 ymax, f32 ymin)
{
s32 result;
s16 sp44[20];
s16 sp34[8];
RoomNum sp44[20];
RoomNum sp34[8];
func0f065d1c(pos, rooms, coord2, sp34, sp44, 20);
@@ -3478,29 +3478,29 @@ s32 cdTestCylMove02(struct coord *pos, s16 *rooms, struct coord *coord2, s16 *ro
return result;
}
s32 cdExamCylMove03(struct coord *pos, s16 *rooms, struct coord *arg2, u32 types, u32 arg4, f32 ymax, f32 ymin)
s32 cdExamCylMove03(struct coord *pos, RoomNum *rooms, struct coord *arg2, u32 types, u32 arg4, f32 ymax, f32 ymin)
{
s16 sp44[21];
s16 sp34[8];
RoomNum sp44[21];
RoomNum sp34[8];
portal00018148(pos, arg2, rooms, sp34, sp44, 20);
return cdExamAToB(pos, arg2, sp44, types, GEOFLAG_WALL, CHECKVERTICAL_NO, arg4, ymax, ymin);
}
s32 cdTestCylMove04(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types, s32 arg5, f32 ymax, f32 ymin)
s32 cdTestCylMove04(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, u32 types, s32 arg5, f32 ymax, f32 ymin)
{
s16 rooms[21];
RoomNum rooms[21];
portal00018148(arg0, arg2, arg1, arg3, rooms, 20);
return cdTestAToB(arg0, arg2, rooms, types, GEOFLAG_WALL, CHECKVERTICAL_NO, arg5, ymax, ymin);
}
s32 cdExamCylMove05(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, s32 types, bool arg5, f32 ymax, f32 ymin)
s32 cdExamCylMove05(struct coord *pos, RoomNum *rooms, struct coord *pos2, RoomNum *rooms2, s32 types, bool arg5, f32 ymax, f32 ymin)
{
s16 sp44[21];
s16 sp34[8];
RoomNum sp44[21];
RoomNum sp34[8];
s32 result;
func0f065d1c(pos, rooms, pos2, sp34, sp44, 20);
@@ -3515,10 +3515,10 @@ s32 cdExamCylMove05(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *room
return result;
}
s32 cdExamCylMove06(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, f32 width, s32 types, s32 arg6, f32 ymax, f32 ymin)
s32 cdExamCylMove06(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, f32 width, s32 types, s32 arg6, f32 ymax, f32 ymin)
{
s16 sp5c[21];
s16 sp4c[8];
RoomNum sp5c[21];
RoomNum sp4c[8];
struct coord sp40;
s32 result;
@@ -3540,18 +3540,18 @@ s32 cdExamCylMove06(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3
return result;
}
s32 cdExamCylMove07(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types, s32 arg5, f32 ymax, f32 ymin)
s32 cdExamCylMove07(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, u32 types, s32 arg5, f32 ymax, f32 ymin)
{
s16 rooms[21];
RoomNum rooms[21];
portal00018148(arg0, arg2, arg1, arg3, rooms, 20);
return cdExamAToB(arg0, arg2, rooms, types, GEOFLAG_WALL, CHECKVERTICAL_NO, arg5, ymax, ymin);
}
s32 cdExamCylMove08(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, f32 width, u32 types, s32 arg6, f32 ymax, f32 ymin)
s32 cdExamCylMove08(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, f32 width, u32 types, s32 arg6, f32 ymax, f32 ymin)
{
s16 rooms[21];
RoomNum rooms[21];
struct coord sp40;
s32 result;
@@ -3570,26 +3570,26 @@ s32 cdExamCylMove08(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3
return result;
}
bool cdTestLos03(struct coord *viewpos, s16 *rooms, struct coord *targetpos, u32 types, u16 geoflags)
bool cdTestLos03(struct coord *viewpos, RoomNum *rooms, struct coord *targetpos, u32 types, u16 geoflags)
{
s16 sp44[21];
s16 sp34[8];
RoomNum sp44[21];
RoomNum sp34[8];
portal00018148(viewpos, targetpos, rooms, sp34, sp44, 20);
return cdTestAToB(viewpos, targetpos, sp44, types, geoflags, CHECKVERTICAL_YES, 1, 0, 0);
}
bool cdTestLos04(struct coord *frompos, s16 *fromrooms, struct coord *topos, s32 types)
bool cdTestLos04(struct coord *frompos, RoomNum *fromrooms, struct coord *topos, s32 types)
{
return cdTestLos03(frompos, fromrooms, topos, types, GEOFLAG_WALL | GEOFLAG_BLOCK_SIGHT | GEOFLAG_BLOCK_SHOOT);
}
bool cdTestLos05(struct coord *coord, s16 *rooms, struct coord *coord2, s16 *rooms2, s32 types, u16 geoflags)
bool cdTestLos05(struct coord *coord, RoomNum *rooms, struct coord *coord2, RoomNum *rooms2, s32 types, u16 geoflags)
{
bool result;
s16 sp44[20];
s16 sp34[8];
RoomNum sp44[20];
RoomNum sp34[8];
func0f065d1c(coord, rooms, coord2, sp34, sp44, 20);
@@ -3602,15 +3602,15 @@ bool cdTestLos05(struct coord *coord, s16 *rooms, struct coord *coord2, s16 *roo
return result;
}
bool cdTestLos06(struct coord *arg0, s16 *rooms1, struct coord *arg2, s16 *rooms2, u32 types)
bool cdTestLos06(struct coord *arg0, RoomNum *rooms1, struct coord *arg2, RoomNum *rooms2, u32 types)
{
return cdTestLos05(arg0, rooms1, arg2, rooms2, types, GEOFLAG_WALL | GEOFLAG_BLOCK_SIGHT | GEOFLAG_BLOCK_SHOOT);
}
bool cdTestLos07(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, s16 *rooms3, u32 types, u16 geoflags)
bool cdTestLos07(struct coord *pos, RoomNum *rooms, struct coord *pos2, RoomNum *rooms2, RoomNum *rooms3, u32 types, u16 geoflags)
{
bool result;
s16 sp34[20];
RoomNum sp34[20];
func0f065d1c(pos, rooms, pos2, rooms3, sp34, 20);
@@ -3623,31 +3623,31 @@ bool cdTestLos07(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2,
return result;
}
s32 cdExamLos08(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types, u16 geoflags)
s32 cdExamLos08(struct coord *pos, RoomNum *rooms, struct coord *pos2, u32 types, u16 geoflags)
{
s16 sp44[21];
s16 sp34[8];
RoomNum sp44[21];
RoomNum sp34[8];
portal00018148(pos, pos2, rooms, sp34, sp44, 20);
return cdExamAToB(pos, pos2, sp44, types, geoflags, CHECKVERTICAL_YES, 1, 0, 0);
}
s32 cdExamLos09(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types)
s32 cdExamLos09(struct coord *pos, RoomNum *rooms, struct coord *pos2, u32 types)
{
return cdExamLos08(pos, rooms, pos2, types, GEOFLAG_WALL | GEOFLAG_BLOCK_SIGHT | GEOFLAG_BLOCK_SHOOT);
}
s32 cdTestLos10(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types, u16 geoflags)
s32 cdTestLos10(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, u32 types, u16 geoflags)
{
s16 rooms[21];
RoomNum rooms[21];
portal00018148(arg0, arg2, arg1, arg3, rooms, 20);
return cdTestAToB(arg0, arg2, rooms, types, geoflags, CHECKVERTICAL_YES, 1, 0, 0);
}
s32 cdTestLos11(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types)
s32 cdTestLos11(struct coord *arg0, RoomNum *arg1, struct coord *arg2, RoomNum *arg3, u32 types)
{
return cdTestLos10(arg0, arg1, arg2, arg3, types, GEOFLAG_WALL | GEOFLAG_BLOCK_SIGHT | GEOFLAG_BLOCK_SHOOT);
}
@@ -3811,13 +3811,13 @@ s32 cdTestBlockOverlapsGeolist(u8 *start, u8 *end, struct geoblock *block, u16 g
* and is also used in a sanity check to make sure a moved object hasn't moved
* into the player's position.
*/
s32 cdTestBlockOverlapsAnyProp(struct geoblock *geo, s16 *rooms, u32 types)
s32 cdTestBlockOverlapsAnyProp(struct geoblock *geo, RoomNum *rooms, u32 types)
{
s32 result = CDRESULT_NOCOLLISION;
s32 roomnum;
u8 *start;
u8 *end;
s16 *roomptr;
RoomNum *roomptr;
s16 propnums[256];
s16 *propnumptr;
@@ -4065,7 +4065,7 @@ bool cd0002ed30(u8 *start, u8 *end, struct geoblock *block, s32 numvertices, str
return true;
}
bool cd0002f02c(struct geoblock *block, s16 *rooms, s32 types)
bool cd0002f02c(struct geoblock *block, RoomNum *rooms, s32 types)
{
s32 numvertices = block->header.numvertices;
s32 i;
@@ -4093,7 +4093,7 @@ bool cd0002f02c(struct geoblock *block, s16 *rooms, s32 types)
}
if (types & CDTYPE_BG) {
s16 *roomsptr = rooms;
RoomNum *roomsptr = rooms;
s32 roomnum = *roomsptr;
while (roomnum != -1) {
@@ -4232,7 +4232,7 @@ void cd0002f2fc(u32 arg0, u32 arg1)
// empty
}
bool cdIsNearlyInSightWithFlags(struct coord *viewpos, s16 *rooms, struct coord *targetpos, f32 distance, s32 types, u16 geoflags)
bool cdIsNearlyInSightWithFlags(struct coord *viewpos, RoomNum *rooms, struct coord *targetpos, f32 distance, s32 types, u16 geoflags)
{
struct coord diff;
f32 x;
@@ -4271,7 +4271,7 @@ bool cdIsNearlyInSightWithFlags(struct coord *viewpos, s16 *rooms, struct coord
return false;
}
bool cdIsNearlyInSight(struct coord *viewpos, s16 *rooms, struct coord *targetpos, f32 distance, s32 types)
bool cdIsNearlyInSight(struct coord *viewpos, RoomNum *rooms, struct coord *targetpos, f32 distance, s32 types)
{
return cdIsNearlyInSightWithFlags(viewpos, rooms, targetpos, distance, types, GEOFLAG_BLOCK_SIGHT);
}
Loaded 100 of 113 files, more files were not shown because too many files have changed in this diff. Show more