Rename chrTick to chraTick and decompile new chrTick

This commit is contained in:
Ryan Dwyer committed 2021-12-06 00:04:28 +10:00
1 parent 4654bc649e
commit ed8d980c8c
16 files changed
+630 -4363

No files matched your search

+544 -4272
View File
File diff suppressed because it is too large. Load diff
+5 -5
View File
@@ -22601,7 +22601,7 @@ void chrTickSkJump(struct chrdata *chr)
}
}
void chrTick(struct chrdata *chr)
void chraTick(struct chrdata *chr)
{
u32 race = CHRRACE(chr);
@@ -22963,7 +22963,7 @@ glabel func0f048398
/* f04860c: 53000006 */ beqzl $t8,.L0f048628
/* f048610: 26b50001 */ addiu $s5,$s5,0x1
.L0f048614:
/* f048614: 0fc11f20 */ jal chrTick
/* f048614: 0fc11f20 */ jal chraTick
/* f048618: 02622021 */ addu $a0,$s3,$v0
/* f04861c: 3c038006 */ lui $v1,%hi(g_NumBgChrs)
/* f048620: 8c637e60 */ lw $v1,%lo(g_NumBgChrs)($v1)
@@ -23423,7 +23423,7 @@ glabel func0f048398
/* f04860c: 53000006 */ beqzl $t8,.L0f048628
/* f048610: 26b50001 */ addiu $s5,$s5,0x1
.L0f048614:
/* f048614: 0fc11f20 */ jal chrTick
/* f048614: 0fc11f20 */ jal chraTick
/* f048618: 02622021 */ addu $a0,$s3,$v0
/* f04861c: 3c038006 */ lui $v1,%hi(g_NumBgChrs)
/* f048620: 8c637e60 */ lw $v1,%lo(g_NumBgChrs)($v1)
@@ -23761,7 +23761,7 @@ glabel func0f048398
/* f047b78: 51600006 */ beqzl $t3,.NB0f047b94
/* f047b7c: 26730001 */ addiu $s3,$s3,0x1
.NB0f047b80:
/* f047b80: 0fc11cec */ jal chrTick
/* f047b80: 0fc11cec */ jal chraTick
/* f047b84: 02422021 */ addu $a0,$s2,$v0
/* f047b88: 3c038007 */ lui $v1,0x8007
/* f047b8c: 8c63a578 */ lw $v1,-0x5a88($v1)
@@ -24096,7 +24096,7 @@ glabel func0f048398
//
// for (i = 0; i < g_NumBgChrs; i++) {
// if (!g_Vars.autocutplaying || (g_BgChrs[i].hidden2 & CHRH2FLAG_TICKDURINGAUTOCUT)) {
// chrTick(&g_BgChrs[i]);
// chraTick(&g_BgChrs[i]);
// }
// }
//
+1 -1
View File
@@ -1471,7 +1471,7 @@ bool ai0045(void)
*/
bool aiIfNeverBeenOnScreen(void)
{
if ((g_Vars.chrdata->chrflags & CHRCFLAG_NEVER_BEEN_ON_SCREEN) == 0) {
if ((g_Vars.chrdata->chrflags & CHRCFLAG_EVERONSCREEN) == 0) {
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]);
} else {
+13 -36
View File
@@ -3636,42 +3636,19 @@ struct headorbody g_HeadsAndBodies[] = {
{ /*0x0097*/ 0, 0, 0, HEADBODYTYPE_DEFAULT, 0, 0, 1, 0, 0, FILE_GCOMBATHANDSLOD },
};
u32 var8007dae4 = 0xbd8ff972;
u32 var8007dae8 = 0x3efbda51;
u32 var8007daec = 0xbf5566cf;
u32 var8007daf0 = 0x3f8951e7;
u32 var8007daf4 = 0x3f8b4e44;
u32 var8007daf8 = 0x3f6d1644;
u32 var8007dafc = 0xbdcccccd;
u32 var8007db00 = 0x3edae148;
u32 var8007db04 = 0xbef70a3d;
u32 var8007db08 = 0x3f844567;
u32 var8007db0c = 0x3f772c62;
u32 var8007db10 = 0x3f6e0e41;
u32 var8007db14 = 0x3e3851ec;
u32 var8007db18 = 0x00000000;
u32 var8007db1c = 0x00000000;
u32 var8007db20 = 0x3f893e4f;
u32 var8007db24 = 0x3f800000;
u32 var8007db28 = 0x3f800000;
u32 var8007db2c = 0x3e72b021;
u32 var8007db30 = 0x3f7a1cac;
u32 var8007db34 = 0xbee147ae;
u32 var8007db38 = 0x3f96d7e0;
u32 var8007db3c = 0x3f91ff82;
u32 var8007db40 = 0x3f925d10;
u32 var8007db44 = 0xbdb8ef35;
u32 var8007db48 = 0x3e6d7732;
u32 var8007db4c = 0x3e016f00;
u32 var8007db50 = 0x3f7da512;
u32 var8007db54 = 0x3f828f5c;
u32 var8007db58 = 0x3f58bac7;
u32 var8007db5c = 0x00000000;
u32 var8007db60 = 0x3e181062;
u32 var8007db64 = 0x3ec2339c;
u32 var8007db68 = 0x3f93d07d;
u32 var8007db6c = 0x3f7ded29;
u32 var8007db70 = 0x3f738ef3;
// [headnum][hattype]
struct hatposition var8007dae4[1][6] = {
{
// HEAD_SHAUN
{ -0.070299997925758, 0.49189999699593, -0.83359998464584, 1.072811961174, 1.0883259773254, 0.92612099647522 },
{ -0.10000000149012, 0.42750000953674, -0.48249998688698, 1.0333679914474, 0.96552097797394, 0.92990499734879 },
{ 0.18000000715256, 0, 0, 1.0722140073776, 1, 1 },
{ 0.23700000345707, 0.97699999809265, -0.43999999761581, 1.1784629821777, 1.1406099796295, 1.1434650421143 },
{ -0.090300001204014, 0.23190000653267, 0.12639999389648, 0.99080002307892, 1.0199999809265, 0.84659999608994 },
{ 0, 0.14849999547005, 0.37929999828339, 1.1548000574112, 0.99190002679825, 0.95139998197556 },
}
};
u32 var8007db74 = 0x00000000;
u32 var8007db78 = 0x00000000;
u32 var8007db7c = 0x00000000;
+2 -2
View File
@@ -15251,7 +15251,7 @@ s32 playerTick(struct prop *prop)
chr->chrflags |= CHRCFLAG_00000001;
player->bondperimenabled = false;
tickop1 = func0f023098(prop);
tickop1 = chrTick(prop);
player->bondperimenabled = true;
player->vv_ground = chr->ground;
@@ -15354,7 +15354,7 @@ s32 playerTick(struct prop *prop)
chr->chrflags |= CHRHFLAG_00000001;
tickop2 = func0f023098(prop);
tickop2 = chrTick(prop);
prop->pos.x = sp80.x;
prop->pos.y = sp80.y;
+4 -4
View File
@@ -3190,7 +3190,7 @@ glabel var7f1b8ef0
.L0f191f2c:
/* f191f2c: 0fc64512 */ jal func0f191448
/* f191f30: 02202025 */ or $a0,$s1,$zero
/* f191f34: 0fc08c26 */ jal func0f023098
/* f191f34: 0fc08c26 */ jal chrTick
/* f191f38: 8fa40068 */ lw $a0,0x68($sp)
/* f191f3c: 3c0d800a */ lui $t5,%hi(g_Vars+0x8)
/* f191f40: 8dad9fc8 */ lw $t5,%lo(g_Vars+0x8)($t5)
@@ -3702,7 +3702,7 @@ glabel var7f1b8ef0
.L0f191f2c:
/* f191f2c: 0fc64512 */ jal func0f191448
/* f191f30: 02202025 */ or $a0,$s1,$zero
/* f191f34: 0fc08c26 */ jal func0f023098
/* f191f34: 0fc08c26 */ jal chrTick
/* f191f38: 8fa40068 */ lw $a0,0x68($sp)
/* f191f3c: 3c0d800a */ lui $t5,%hi(g_Vars+0x8)
/* f191f40: 8dad9fc8 */ lw $t5,%lo(g_Vars+0x8)($t5)
@@ -3749,7 +3749,7 @@ glabel var7f1b8ef0
// f32 tweenangle;
// s32 i;
//
// updateable = ((prop->flags & PROPFLAG_08) && g_Vars.lvupdate240) != 0;
// updateable = ((prop->flags & PROPFLAG_NOTYETTICKED) && g_Vars.lvupdate240) != 0;
//
// if (aibot) {
// if (updateable && g_Vars.lvframe60 >= 145) {
@@ -3908,7 +3908,7 @@ glabel var7f1b8ef0
//
// func0f191448(chr);
//
// result = func0f023098(prop);
// result = chrTick(prop);
//
// if (g_Vars.lvframe60 >= 145) {
// if (updateable) {
+11 -11
View File
@@ -40,10 +40,10 @@
s16 *g_RoomPropListChunkIndexes;
struct roomproplistchunk *g_RoomPropListChunks;
struct prop *g_InteractProp;
u32 var8009cdac;
s32 var8009cdac;
#if VERSION >= VERSION_NTSC_1_0
u32 var8009cdb0;
s32 var8009cdb0;
u32 var8009cdb4;
u32 var8009cdb8;
u32 var8009cdbc;
@@ -1978,7 +1978,7 @@ glabel var7f1ab190pf
/* f063754: 10000004 */ b .PF0f063768
/* f063758: 00403025 */ move $a2,$v0
.PF0f06375c:
/* f06375c: 0fc08c75 */ jal func0f023098
/* f06375c: 0fc08c75 */ jal chrTick
/* f063760: 02002025 */ move $a0,$s0
/* f063764: 00403025 */ move $a2,$v0
.PF0f063768:
@@ -2148,7 +2148,7 @@ glabel var7f1ab190pf
/* f0639c0: 1000003c */ b .PF0f063ab4
/* f0639c4: 00403025 */ move $a2,$v0
.PF0f0639c8:
/* f0639c8: 0fc08c75 */ jal func0f023098
/* f0639c8: 0fc08c75 */ jal chrTick
/* f0639cc: 02002025 */ move $a0,$s0
/* f0639d0: 10000038 */ b .PF0f063ab4
/* f0639d4: 00403025 */ move $a2,$v0
@@ -2964,7 +2964,7 @@ glabel propsTick
/* f0634e8: 10000004 */ b .L0f0634fc
/* f0634ec: 00403025 */ or $a2,$v0,$zero
.L0f0634f0:
/* f0634f0: 0fc08c26 */ jal func0f023098
/* f0634f0: 0fc08c26 */ jal chrTick
/* f0634f4: 02002025 */ or $a0,$s0,$zero
/* f0634f8: 00403025 */ or $a2,$v0,$zero
.L0f0634fc:
@@ -3128,7 +3128,7 @@ glabel propsTick
/* f06373c: 1000003c */ b .L0f063830
/* f063740: 00403025 */ or $a2,$v0,$zero
.L0f063744:
/* f063744: 0fc08c26 */ jal func0f023098
/* f063744: 0fc08c26 */ jal chrTick
/* f063748: 02002025 */ or $a0,$s0,$zero
/* f06374c: 10000038 */ b .L0f063830
/* f063750: 00403025 */ or $a2,$v0,$zero
@@ -3937,7 +3937,7 @@ glabel propsTick
/* f06275c: 10000004 */ beqz $zero,.NB0f062770
/* f062760: 00403025 */ or $a2,$v0,$zero
.NB0f062764:
/* f062764: 0fc08ae1 */ jal func0f023098
/* f062764: 0fc08ae1 */ jal chrTick
/* f062768: 02002025 */ or $a0,$s0,$zero
/* f06276c: 00403025 */ or $a2,$v0,$zero
.NB0f062770:
@@ -4101,7 +4101,7 @@ glabel propsTick
/* f0629b0: 1000003c */ beqz $zero,.NB0f062aa4
/* f0629b4: 00403025 */ or $a2,$v0,$zero
.NB0f0629b8:
/* f0629b8: 0fc08ae1 */ jal func0f023098
/* f0629b8: 0fc08ae1 */ jal chrTick
/* f0629bc: 02002025 */ or $a0,$s0,$zero
/* f0629c0: 10000038 */ beqz $zero,.NB0f062aa4
/* f0629c4: 00403025 */ or $a2,$v0,$zero
@@ -4696,7 +4696,7 @@ glabel propsTick
// flags &= ~PROPFLAG_ONANYSCREENPREVTICK;
// }
//
// (prop++)->flags = flags | PROPFLAG_08;
// (prop++)->flags = flags | PROPFLAG_NOTYETTICKED;
// }
// } else {
// // 23c
@@ -4805,7 +4805,7 @@ glabel propsTick
// if (chr && chr->aibot) {
// op = aibotTick(prop);
// } else {
// op = func0f023098(prop);
// op = chrTick(prop);
// }
//
// g_Vars.propstates[prop->propstateindex].foregroundchrpropcount++;
@@ -4868,7 +4868,7 @@ glabel propsTick
// if (chr && chr->aibot) {
// op = aibotTick(prop);
// } else {
// op = func0f023098(prop);
// op = chrTick(prop);
// }
// } else if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON || prop->type == PROPTYPE_DOOR) {
// struct defaultobj *obj = prop->obj;
+26 -18
View File
@@ -49592,6 +49592,14 @@ u32 func0f07e474(struct prop *prop)
return TICKOP_NONE;
}
/**
* Tick the given object.
*
* This function is called once per player per frame. The first time it is
* called per frame a "fulltick" is done. On consecutive calls for this tick
* much of the logic is skipped, and only the logic specific to the current
* player is executed.
*/
s32 objTick(struct prop *prop)
{
bool pass;
@@ -49602,7 +49610,7 @@ s32 objTick(struct prop *prop)
struct prop *child;
struct prop *next;
s32 result = TICKOP_NONE;
bool sp572 = false;
bool fulltick = false;
u32 playercount = PLAYERCOUNT();
bool sp564 = true;
bool sp560 = false;
@@ -49643,16 +49651,16 @@ s32 objTick(struct prop *prop)
}
}
if (prop->flags & PROPFLAG_08) {
sp572 = true;
prop->flags &= ~PROPFLAG_08;
if (prop->flags & PROPFLAG_NOTYETTICKED) {
fulltick = true;
prop->flags &= ~PROPFLAG_NOTYETTICKED;
}
if (obj->hidden & OBJHFLAG_AIRBORNE) {
struct projectile *projectile = obj->projectile;
if (projectile->ownerprop && propGetPlayerNum(projectile->ownerprop) >= 0) {
sp572 = (projectile->ownerprop == g_Vars.currentplayer->prop);
fulltick = (projectile->ownerprop == g_Vars.currentplayer->prop);
}
}
@@ -49670,7 +49678,7 @@ s32 objTick(struct prop *prop)
s16 sp384[8];
struct hov *hov = NULL;
if (sp572) {
if (fulltick) {
s32 iVar10 = g_Vars.lvupdate240;
if (g_Vars.tickmode == TICKMODE_CUTSCENE && iVar10 > 0 && g_Vars.cutsceneskip60ths > 0) {
@@ -49686,7 +49694,7 @@ s32 objTick(struct prop *prop)
&& anim0002384c(model->anim->animnum, model->anim->framea) < 0) {
sp552 = true;
} else {
if (sp572) {
if (fulltick) {
model0001b3bc(model);
}
@@ -49695,7 +49703,7 @@ s32 objTick(struct prop *prop)
sp476.matrix = currentPlayerGetMatrix1740();
model0001cebc(&sp476, model);
if (sp572) {
if (fulltick) {
mtx00015be4(currentPlayerGetUnk174c(), model->matrices, &sp412);
mtx4ToMtx3(&sp412, obj->realrot);
@@ -49767,7 +49775,7 @@ s32 objTick(struct prop *prop)
u8 *end;
f32 damage;
if (sp572) {
if (fulltick) {
sp148 = floorf(model->anim->frame);
sp148++;
model0001ee18(model, g_Vars.lvupdate240, 1);
@@ -49793,7 +49801,7 @@ s32 objTick(struct prop *prop)
sp312.matrix = &sp152;
model0001cebc(&sp312, model);
if (sp572) {
if (fulltick) {
sp236.x = (f32)sp116.x + prop->pos.x;
sp236.y = prop->pos.y;
sp236.z = (f32)sp116.z + prop->pos.z;
@@ -49847,7 +49855,7 @@ s32 objTick(struct prop *prop)
}
}
if (sp572) {
if (fulltick) {
if (model->anim == NULL && (obj->hidden & OBJHFLAG_AIRBORNE)) {
sp592 = func0f073c6c(obj, &sp560);
@@ -49920,7 +49928,7 @@ s32 objTick(struct prop *prop)
func0f069630(prop, obj->nextcol, obj->floorcol);
}
if (sp572) {
if (fulltick) {
if (prop->flags & PROPFLAG_ONANYSCREENPREVTICK) {
colourTween(obj->shadecol, obj->nextcol);
} else {
@@ -49946,22 +49954,22 @@ s32 objTick(struct prop *prop)
}
prop->z = -model->matrices[0].m[3][2];
func0f07063c(prop, sp572);
func0f07063c(prop, fulltick);
child = prop->child;
while (child) {
next = child->next;
func0f07079c(child, sp572);
func0f07079c(child, fulltick);
child = next;
}
} else {
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
func0f07063c(prop, sp572);
func0f07063c(prop, fulltick);
child = prop->child;
while (child) {
next = child->next;
func0f0706f8(child, sp572);
func0f0706f8(child, fulltick);
child = next;
}
}
@@ -49971,7 +49979,7 @@ s32 objTick(struct prop *prop)
objDamage(obj, random() * (1.0f / U32_MAX) * 4.0f + 2.0f, &prop->pos, WEAPON_NONE, (obj->hidden & 0xf0000000) >> 28);
}
if (sp572) {
if (fulltick) {
if (obj->type == OBJTYPE_AUTOGUN) {
func0f079f1c(prop);
}
@@ -68443,7 +68451,7 @@ bool func0f08e794(struct coord *coord, f32 arg1)
return result;
}
bool func0f08e8ac(struct prop *prop, struct coord *coord, f32 arg2, bool arg3)
u32 func0f08e8ac(struct prop *prop, struct coord *coord, f32 arg2, bool arg3)
{
s16 *rooms;
s32 roomnum;
+2 -2
View File
@@ -93,8 +93,8 @@ extern u32 g_ActiveFemaleHeads[8];
extern s16 *g_RoomPropListChunkIndexes;
extern struct roomproplistchunk *g_RoomPropListChunks;
extern struct prop *g_InteractProp;
extern u32 var8009cdac;
extern u32 var8009cdb0;
extern s32 var8009cdac;
extern s32 var8009cdb0;
extern struct weaponobj *g_Proxies[30];
extern s32 g_MaxWeaponSlots;
extern s32 g_MaxHatSlots;
+4 -3
View File
@@ -484,7 +484,7 @@
#define CHRCFLAG_00000001 0x00000001 // Villa takers, Attack Ship Cass and skedar - both set at end of intros
#define CHRCFLAG_CLONEABLE 0x00000002
#define CHRCFLAG_NEAR_MISS 0x00000004
#define CHRCFLAG_NEVER_BEEN_ON_SCREEN 0x00000008
#define CHRCFLAG_EVERONSCREEN 0x00000008
#define CHRCFLAG_INVINCIBLE 0x00000010
#define CHRCFLAG_LOSEXTRAHEIGHT 0x00000020 // Chicago, Infiltration, AF1, Ruins, WAR
#define CHRCFLAG_00000040 0x00000040 // Used quite a lot
@@ -1122,6 +1122,7 @@
#define HANGARBIO_MAIANVESSEL 21
#define HANGARBIO_SKEDARSHUTTLE 22
#define HATTYPE_2 2
#define HATTYPE_METAL 3
#define HATTYPE_CLOTH 5
@@ -2062,7 +2063,7 @@
#define MODELPART_HAND_0035 0x0035 // toggle
#define MODELPART_HAND_0036 0x0036 // toggle
#define MODELPART_HEAD_SUNGLASSES 0x0000 // toggle
#define MODELPART_HEAD_0001 0x0001 // toggle
#define MODELPART_HEAD_HAT 0x0001 // toggle
#define MODELPART_HEAD_EYESOPEN 0x0002 // toggle
#define MODELPART_HEAD_EYESCLOSED 0x0003 // toggle
#define MODELPART_HEAD_HUDPIECE 0x0004 // toggle
@@ -3244,7 +3245,7 @@
#define PROPFLAG_01 0x01
#define PROPFLAG_ONTHISSCREENTHISTICK 0x02
#define PROPFLAG_ENABLED 0x04
#define PROPFLAG_08 0x08
#define PROPFLAG_NOTYETTICKED 0x08
#define PROPFLAG_DONTPAUSE 0x10
#define PROPFLAG_20 0x20
#define PROPFLAG_ONANYSCREENTHISTICK 0x40
+1 -1
View File
@@ -403,7 +403,7 @@ extern struct modeltype g_ModelTypeDrCaroll;
extern struct modeltype g_ModelType22;
extern struct modeltype g_ModelTypeRobot;
extern struct headorbody g_HeadsAndBodies[];
extern u32 var8007dae4;
extern struct hatposition var8007dae4[1][6];
extern f32 var8007db80;
extern f32 var8007db84;
extern u32 var8007db88;
+3 -3
View File
@@ -19,14 +19,14 @@ void chrFlinchBody(struct chrdata *chr);
void chrFlinchHead(struct chrdata *chr, f32 arg1);
f32 func0f02143c(struct chrdata *chr);
void func0f021fa8(struct chrdata *chr, struct coord *pos, s16 *rooms);
void func0f0220ec(struct chrdata *chr, s32 arg1, s32 arg2);
u32 func0f022214(void);
void func0f0220ec(struct chrdata *chr, s32 lvupdate240, s32 arg2);
void func0f022214(struct chrdata *chr, struct prop *child, bool fulltick);
void chrUpdateCloak(struct chrdata *chr);
s32 func0f022be4(struct chrdata *chr);
void chrSetPoisoned(struct chrdata *chr, struct prop *poisonprop);
void chrTickPoisoned(struct chrdata *chr);
bool chrTickBeams(struct prop *prop);
s32 func0f023098(struct prop *prop);
s32 chrTick(struct prop *prop);
void chrDropConcealedItems(struct chrdata *chr);
void chrSetHudpieceVisible(struct chrdata *chr, bool visible);
void chrDropItemsForOwnerReap(struct chrdata *chr);
+1 -1
View File
@@ -177,7 +177,7 @@ void chrTickGoPos(struct chrdata *chr);
void chrTickPatrol(struct chrdata *chr);
bool chrStartSkJump(struct chrdata *chr, u8 arg1, u8 arg2, s32 arg3, u8 arg4);
void chrTickSkJump(struct chrdata *chr);
void chrTick(struct chrdata *chr);
void chraTick(struct chrdata *chr);
void cutsceneStart(u32 ailistid);
void func0f048398(void);
f32 chrGetAngleToPos(struct chrdata *chr, struct coord *pos);
+2 -2
View File
@@ -132,7 +132,7 @@ void ammocrateTick(struct prop *ammocrate);
void weaponTick(struct prop *weapon);
void func0f07063c(struct prop *prop, bool arg1);
void objDropRecursively(struct prop *prop, bool arg1);
void func0f0706f8(struct prop *prop, bool arg1);
void func0f0706f8(struct prop *prop, bool fulltick);
void func0f07079c(struct prop *prop, bool arg1);
s32 glassCalculateOpacity(struct coord *pos, f32 xludist, f32 opadist, f32 arg3);
u32 func0f070a1c(void);
@@ -325,7 +325,7 @@ s32 doorIsOpen(struct doorobj *door);
s32 func0f08e5a8(s16 *rooms, struct screenbox *box);
f32 func0f08e6bc(struct prop *prop, f32 arg1);
bool func0f08e794(struct coord *coord, f32 arg1);
bool func0f08e8ac(struct prop *prop, struct coord *coord, f32 arg2, bool arg3);
u32 func0f08e8ac(struct prop *prop, struct coord *coord, f32 arg2, bool arg3);
bool posIsInDrawDistance(struct coord *arg);
void doorCreateSparks(struct doorobj *door);
bool doorCalcIntendedFrac(struct doorobj *door);
+2 -2
View File
@@ -19,9 +19,9 @@ void mtx3ToMtx4(f32 src[3][3], Mtxf *dst);
void mtx4ToMtx3(Mtxf *src, f32 dst[3][3]);
void mtx4SetTranslation(struct coord *pos, Mtxf *mtx);
void mtx00015df0(f32 arg0, Mtxf *mtx);
void mtx00015e24(f32 mult, f32 *mtx);
void mtx00015e24(f32 mult, Mtxf *mtx);
void mtx00015e4c(f32 arg0, Mtxf *mtx);
void mtx00015e80(f32 mult, f32 *mtx);
void mtx00015e80(f32 mult, Mtxf *mtx);
u32 mtx00015ea8(void);
void mtx00015edc(f32 mult, Mtxf *mtx);
void mtx00015f04(f32 scale, Mtxf *arg1);
+9
View File
@@ -7344,4 +7344,13 @@ struct var8007f8dc {
/*0x100*/ u32 unk100;
};
struct hatposition {
f32 x;
f32 y;
f32 z;
f32 unk0c;
f32 unk10;
f32 unk14;
};
#endif