diff --git a/src/game/bondbike.c b/src/game/bondbike.c index 3e2090d85..a263168d5 100644 --- a/src/game/bondbike.c +++ b/src/game/bondbike.c @@ -170,10 +170,10 @@ void bbikeHandleActivate(void) if (g_Vars.currentplayer->bondvehiclemode == VEHICLEMODE_RUNNING && g_Vars.lvframe60 - g_Vars.currentplayer->activatetimelast < PALDOWN(25)) { struct hoverbikeobj *bike = (struct hoverbikeobj *)g_Vars.currentplayer->hoverbike->obj; - struct model08thing *thing = func0f068af4(&bike->base); + struct modelrodata_bbox *bbox = objFindBboxRodata(&bike->base); - f32 sidedist = thing->unk04[1] * bike->base.model->scale; - f32 frontdist = thing->unk18 * bike->base.model->scale; + f32 sidedist = bbox->xmax * bike->base.model->scale; + f32 frontdist = bbox->zmax * bike->base.model->scale; f32 diagdist = sqrtf(sidedist * sidedist + frontdist * frontdist); g_Vars.currentplayer->walkinitmove = false; diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index 90778926c..9a94ca24b 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -11443,7 +11443,7 @@ glabel func0f024738 .L0f02495c: /* f02495c: 55a00034 */ bnezl $t5,.L0f024a30 /* f024960: 8fb90280 */ lw $t9,0x280($sp) -/* f024964: 0fc1a2bd */ jal func0f068af4 +/* f024964: 0fc1a2bd */ jal objFindBboxRodata /* f024968: 02402025 */ or $a0,$s2,$zero /* f02496c: 8c410000 */ lw $at,0x0($v0) /* f024970: 2611002c */ addiu $s1,$s0,0x2c diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index a1547b38c..de1a9a629 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -616,7 +616,7 @@ glabel var7f1a7f80 /* f00d290: 86040006 */ lh $a0,0x6($s0) /* f00d294: 504000c1 */ beqzl $v0,.L0f00d59c /* f00d298: 8e040018 */ lw $a0,0x18($s0) -/* f00d29c: 0fc1a2bd */ jal func0f068af4 +/* f00d29c: 0fc1a2bd */ jal objFindBboxRodata /* f00d2a0: 02002025 */ or $a0,$s0,$zero /* f00d2a4: 104000bc */ beqz $v0,.L0f00d598 /* f00d2a8: 3c013f80 */ lui $at,0x3f80 diff --git a/src/game/game_091e10.c b/src/game/game_091e10.c index 3f6bb43b8..dd49cabb9 100644 --- a/src/game/game_091e10.c +++ b/src/game/game_091e10.c @@ -218,7 +218,7 @@ glabel func0f09220c /* f09221c: 00c08825 */ or $s1,$a2,$zero /* f092220: 00a09025 */ or $s2,$a1,$zero /* f092224: afb00018 */ sw $s0,0x18($sp) -/* f092228: 0fc1a2bd */ jal func0f068af4 +/* f092228: 0fc1a2bd */ jal objFindBboxRodata /* f09222c: afa70034 */ sw $a3,0x34($sp) /* f092230: 1040002d */ beqz $v0,.L0f0922e8 /* f092234: 00408025 */ or $s0,$v0,$zero diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 8ba0bf7e3..70fbca6f1 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -5613,13 +5613,13 @@ glabel var7f1b3c40pf /* f0f460c: 8fa4003c */ lw $a0,0x3c($sp) /* f0f4610: 46128102 */ mul.s $f4,$f16,$f18 /* f0f4614: 46041203 */ div.s $f8,$f2,$f4 -/* f0f4618: 0fc1a34e */ jal func0f068aa8 +/* f0f4618: 0fc1a34e */ jal modelFindBboxRodata /* f0f461c: e7a802f8 */ swc1 $f8,0x2f8($sp) /* f0f4620: 8fb902f4 */ lw $t9,0x2f4($sp) .PF0f0f4624: /* f0f4624: 13200025 */ beqz $t9,.PF0f0f46bc /* f0f4628: 00000000 */ nop -/* f0f462c: 0fc1a34e */ jal func0f068aa8 +/* f0f462c: 0fc1a34e */ jal modelFindBboxRodata /* f0f4630: 8fa4003c */ lw $a0,0x3c($sp) /* f0f4634: 10400021 */ beqz $v0,.PF0f0f46bc /* f0f4638: 00000000 */ nop @@ -7215,13 +7215,13 @@ glabel var7f1b2948 /* f0f3eb8: 8fa4003c */ lw $a0,0x3c($sp) /* f0f3ebc: 46065202 */ mul.s $f8,$f10,$f6 /* f0f3ec0: 46081103 */ div.s $f4,$f2,$f8 -/* f0f3ec4: 0fc1a2aa */ jal func0f068aa8 +/* f0f3ec4: 0fc1a2aa */ jal modelFindBboxRodata /* f0f3ec8: e7a402f8 */ swc1 $f4,0x2f8($sp) /* f0f3ecc: 8faf02f4 */ lw $t7,0x2f4($sp) .L0f0f3ed0: /* f0f3ed0: 11e00025 */ beqz $t7,.L0f0f3f68 /* f0f3ed4: 00000000 */ nop -/* f0f3ed8: 0fc1a2aa */ jal func0f068aa8 +/* f0f3ed8: 0fc1a2aa */ jal modelFindBboxRodata /* f0f3edc: 8fa4003c */ lw $a0,0x3c($sp) /* f0f3ee0: 10400021 */ beqz $v0,.L0f0f3f68 /* f0f3ee4: 00000000 */ nop @@ -8824,13 +8824,13 @@ glabel var7f1b2948 /* f0f09fc: 8fa40040 */ lw $a0,0x40($sp) /* f0f0a00: 46065202 */ mul.s $f8,$f10,$f6 /* f0f0a04: 46081103 */ div.s $f4,$f2,$f8 -/* f0f0a08: 0fc19f4a */ jal func0f068aa8 +/* f0f0a08: 0fc19f4a */ jal modelFindBboxRodata /* f0f0a0c: e7a40320 */ swc1 $f4,0x320($sp) /* f0f0a10: 8faf031c */ lw $t7,0x31c($sp) .NB0f0f0a14: /* f0f0a14: 11e00025 */ beqz $t7,.NB0f0f0aac /* f0f0a18: 00000000 */ sll $zero,$zero,0x0 -/* f0f0a1c: 0fc19f4a */ jal func0f068aa8 +/* f0f0a1c: 0fc19f4a */ jal modelFindBboxRodata /* f0f0a20: 8fa40040 */ lw $a0,0x40($sp) /* f0f0a24: 10400021 */ beqz $v0,.NB0f0f0aac /* f0f0a28: 00000000 */ sll $zero,$zero,0x0 diff --git a/src/game/propobj.c b/src/game/propobj.c index 61f8523da..27b4dbb3a 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -2933,7 +2933,7 @@ glabel func0f06896c ); GLOBAL_ASM( -glabel func0f068998 +glabel modelFindBboxNode /* f068998: 27bdffd0 */ addiu $sp,$sp,-48 /* f06899c: afbf002c */ sw $ra,0x2c($sp) /* f0689a0: afb50028 */ sw $s5,0x28($sp) @@ -3016,28 +3016,22 @@ glabel func0f068998 /* f068aa4: 27bd0030 */ addiu $sp,$sp,0x30 ); -GLOBAL_ASM( -glabel func0f068aa8 -/* f068aa8: 27bdffe8 */ addiu $sp,$sp,-24 -/* f068aac: afbf0014 */ sw $ra,0x14($sp) -/* f068ab0: 0fc1a266 */ jal func0f068998 -/* f068ab4: 00000000 */ nop -/* f068ab8: 10400003 */ beqz $v0,.L0f068ac8 -/* f068abc: 8fbf0014 */ lw $ra,0x14($sp) -/* f068ac0: 10000002 */ b .L0f068acc -/* f068ac4: 8c420004 */ lw $v0,0x4($v0) -.L0f068ac8: -/* f068ac8: 00001025 */ or $v0,$zero,$zero -.L0f068acc: -/* f068acc: 03e00008 */ jr $ra -/* f068ad0: 27bd0018 */ addiu $sp,$sp,0x18 -); +struct modelrodata_bbox *modelFindBboxRodata(struct model *model) +{ + struct modelnode *node = modelFindBboxNode(model); + + if (node) { + return &node->rodata->bbox; + } + + return NULL; +} GLOBAL_ASM( glabel func0f068ad4 /* f068ad4: 27bdffe8 */ addiu $sp,$sp,-24 /* f068ad8: afbf0014 */ sw $ra,0x14($sp) -/* f068adc: 0fc1a266 */ jal func0f068998 +/* f068adc: 0fc1a266 */ jal modelFindBboxNode /* f068ae0: 8c840018 */ lw $a0,0x18($a0) /* f068ae4: 8fbf0014 */ lw $ra,0x14($sp) /* f068ae8: 27bd0018 */ addiu $sp,$sp,0x18 @@ -3045,9 +3039,9 @@ glabel func0f068ad4 /* f068af0: 00000000 */ nop ); -struct model08thing *func0f068af4(struct defaultobj *obj) +struct modelrodata_bbox *objFindBboxRodata(struct defaultobj *obj) { - return func0f068aa8(obj->model); + return modelFindBboxRodata(obj->model); } GLOBAL_ASM( @@ -4620,7 +4614,7 @@ glabel func0f069850 /* f069860: 00808025 */ or $s0,$a0,$zero /* f069864: 00e08825 */ or $s1,$a3,$zero /* f069868: afa5007c */ sw $a1,0x7c($sp) -/* f06986c: 0fc1a2bd */ jal func0f068af4 +/* f06986c: 0fc1a2bd */ jal objFindBboxRodata /* f069870: afa60080 */ sw $a2,0x80($sp) /* f069874: afa20034 */ sw $v0,0x34($sp) /* f069878: afa00030 */ sw $zero,0x30($sp) @@ -5895,7 +5889,7 @@ glabel func0f06a650 /* f06a660: afa5004c */ sw $a1,0x4c($sp) /* f06a664: afa60050 */ sw $a2,0x50($sp) /* f06a668: afa70054 */ sw $a3,0x54($sp) -/* f06a66c: 0fc1a2aa */ jal func0f068aa8 +/* f06a66c: 0fc1a2aa */ jal modelFindBboxRodata /* f06a670: 8c840018 */ lw $a0,0x18($a0) /* f06a674: afa20044 */ sw $v0,0x44($sp) /* f06a678: 8fa4004c */ lw $a0,0x4c($sp) @@ -5957,7 +5951,7 @@ glabel func0f06a650 /* f0698cc: afa50044 */ sw $a1,0x44($sp) /* f0698d0: afa60048 */ sw $a2,0x48($sp) /* f0698d4: afa7004c */ sw $a3,0x4c($sp) -/* f0698d8: 0fc19f4a */ jal func0f068aa8 +/* f0698d8: 0fc19f4a */ jal modelFindBboxRodata /* f0698dc: 8c840018 */ lw $a0,0x18($a0) /* f0698e0: afa2003c */ sw $v0,0x3c($sp) /* f0698e4: 8fa40044 */ lw $a0,0x44($sp) @@ -6024,7 +6018,7 @@ glabel var7f1aa200 /* f06a740: afa500cc */ sw $a1,0xcc($sp) /* f06a744: afa600d0 */ sw $a2,0xd0($sp) /* f06a748: afa700d4 */ sw $a3,0xd4($sp) -/* f06a74c: 0fc1a2aa */ jal func0f068aa8 +/* f06a74c: 0fc1a2aa */ jal modelFindBboxRodata /* f06a750: 8c840018 */ lw $a0,0x18($a0) /* f06a754: afa200c4 */ sw $v0,0xc4($sp) /* f06a758: 0fc199ef */ jal func0f0667bc @@ -6315,7 +6309,7 @@ glabel var7f1aa200 /* f0699a8: afa500c4 */ sw $a1,0xc4($sp) /* f0699ac: afa600c8 */ sw $a2,0xc8($sp) /* f0699b0: afa700cc */ sw $a3,0xcc($sp) -/* f0699b4: 0fc19f4a */ jal func0f068aa8 +/* f0699b4: 0fc19f4a */ jal modelFindBboxRodata /* f0699b8: 8c840018 */ lw $a0,0x18($a0) /* f0699bc: afa200bc */ sw $v0,0xbc($sp) /* f0699c0: 0fc1968f */ jal func0f0667bc @@ -6607,7 +6601,7 @@ glabel var7f1aa208 /* f06ab6c: afa500c4 */ sw $a1,0xc4($sp) /* f06ab70: afa600c8 */ sw $a2,0xc8($sp) /* f06ab74: afa700cc */ sw $a3,0xcc($sp) -/* f06ab78: 0fc1a2aa */ jal func0f068aa8 +/* f06ab78: 0fc1a2aa */ jal modelFindBboxRodata /* f06ab7c: 8c840018 */ lw $a0,0x18($a0) /* f06ab80: 0fc199f3 */ jal func0f0667cc /* f06ab84: 00402025 */ or $a0,$v0,$zero @@ -11093,7 +11087,7 @@ glabel var7f1aa298 /* f06dd44: afab0194 */ sw $t3,0x194($sp) /* f06dd48: afac0198 */ sw $t4,0x198($sp) /* f06dd4c: afaa019c */ sw $t2,0x19c($sp) -/* f06dd50: 0fc1a2bd */ jal func0f068af4 +/* f06dd50: 0fc1a2bd */ jal objFindBboxRodata /* f06dd54: 8fa401a0 */ lw $a0,0x1a0($sp) /* f06dd58: c4440008 */ lwc1 $f4,0x8($v0) /* f06dd5c: c4460004 */ lwc1 $f6,0x4($v0) @@ -12192,7 +12186,7 @@ glabel func0f06eb4c /* f06eb54: afa40080 */ sw $a0,0x80($sp) /* f06eb58: afa50084 */ sw $a1,0x84($sp) /* f06eb5c: afa60088 */ sw $a2,0x88($sp) -/* f06eb60: 0fc1a2aa */ jal func0f068aa8 +/* f06eb60: 0fc1a2aa */ jal modelFindBboxRodata /* f06eb64: 8c840018 */ lw $a0,0x18($a0) /* f06eb68: 0fc199ef */ jal func0f0667bc /* f06eb6c: 00402025 */ or $a0,$v0,$zero @@ -12249,7 +12243,7 @@ glabel func0f06ec20 /* f06ec28: 00808025 */ or $s0,$a0,$zero /* f06ec2c: afbf001c */ sw $ra,0x1c($sp) /* f06ec30: afa5009c */ sw $a1,0x9c($sp) -/* f06ec34: 0fc1a2aa */ jal func0f068aa8 +/* f06ec34: 0fc1a2aa */ jal modelFindBboxRodata /* f06ec38: 8c840018 */ lw $a0,0x18($a0) /* f06ec3c: 8e0e0014 */ lw $t6,0x14($s0) /* f06ec40: 240f000d */ addiu $t7,$zero,0xd @@ -12352,7 +12346,7 @@ glabel var7f1aa2bc /* f06ed6c: afa40110 */ sw $a0,0x110($sp) /* f06ed70: afa50114 */ sw $a1,0x114($sp) /* f06ed74: afa60118 */ sw $a2,0x118($sp) -/* f06ed78: 0fc1a2aa */ jal func0f068aa8 +/* f06ed78: 0fc1a2aa */ jal modelFindBboxRodata /* f06ed7c: 8c840018 */ lw $a0,0x18($a0) /* f06ed80: 8faf0110 */ lw $t7,0x110($sp) /* f06ed84: 00402025 */ or $a0,$v0,$zero @@ -12815,7 +12809,7 @@ glabel func0f06f314 /* f06f41c: 1541002d */ bne $t2,$at,.L0f06f4d4 /* f06f420: 00002025 */ or $a0,$zero,$zero /* f06f424: 8d040018 */ lw $a0,0x18($t0) -/* f06f428: 0fc1a2aa */ jal func0f068aa8 +/* f06f428: 0fc1a2aa */ jal modelFindBboxRodata /* f06f42c: afa80094 */ sw $t0,0x94($sp) /* f06f430: 0fc199ef */ jal func0f0667bc /* f06f434: 00402025 */ or $a0,$v0,$zero @@ -13768,7 +13762,7 @@ glabel var7f1aa2c4 /* f070180: 28610002 */ slti $at,$v1,0x2 /* f070184: 14200099 */ bnez $at,.L0f0703ec /* f070188: 00000000 */ nop -/* f07018c: 0fc1a2aa */ jal func0f068aa8 +/* f07018c: 0fc1a2aa */ jal modelFindBboxRodata /* f070190: 8e040018 */ lw $a0,0x18($s0) /* f070194: 8faf01a8 */ lw $t7,0x1a8($sp) /* f070198: 3c014140 */ lui $at,0x4140 @@ -14977,7 +14971,7 @@ glabel var7f1aa2c4 /* f070180: 28610002 */ slti $at,$v1,0x2 /* f070184: 14200099 */ bnez $at,.L0f0703ec /* f070188: 00000000 */ nop -/* f07018c: 0fc1a2aa */ jal func0f068aa8 +/* f07018c: 0fc1a2aa */ jal modelFindBboxRodata /* f070190: 8e040018 */ lw $a0,0x18($s0) /* f070194: 8faf01a8 */ lw $t7,0x1a8($sp) /* f070198: 3c014140 */ lui $at,0x4140 @@ -15903,7 +15897,7 @@ glabel var7f1aa2c4 /* f06f02c: 142000a2 */ bnez $at,.NB0f06f2b8 /* f06f030: 00000000 */ sll $zero,$zero,0x0 /* f06f034: 8dc40018 */ lw $a0,0x18($t6) -/* f06f038: 0fc19f4a */ jal func0f068aa8 +/* f06f038: 0fc19f4a */ jal modelFindBboxRodata /* f06f03c: afa70170 */ sw $a3,0x170($sp) /* f06f040: 8fa70170 */ lw $a3,0x170($sp) /* f06f044: 3c014140 */ lui $at,0x4140 @@ -16886,7 +16880,7 @@ glabel func0f070f08 /* f070fa0: 8d240008 */ lw $a0,0x8($t1) /* f070fa4: 14400030 */ bnez $v0,.L0f071068 /* f070fa8: 0040a025 */ or $s4,$v0,$zero -/* f070fac: 0fc1a2bd */ jal func0f068af4 +/* f070fac: 0fc1a2bd */ jal objFindBboxRodata /* f070fb0: 02202025 */ or $a0,$s1,$zero /* f070fb4: 1000002c */ b .L0f071068 /* f070fb8: 0040a025 */ or $s4,$v0,$zero @@ -17057,7 +17051,7 @@ glabel func0f071360 /* f07139c: 1000000c */ b .L0f0713d0 /* f0713a0: c4420004 */ lwc1 $f2,0x4($v0) .L0f0713a4: -/* f0713a4: 0fc1a2bd */ jal func0f068af4 +/* f0713a4: 0fc1a2bd */ jal objFindBboxRodata /* f0713a8: afa60030 */ sw $a2,0x30($sp) /* f0713ac: 8fa60030 */ lw $a2,0x30($sp) /* f0713b0: 00402025 */ or $a0,$v0,$zero @@ -17199,7 +17193,7 @@ glabel var7f1ab5c0pf /* f071768: 502002ef */ beqzl $at,.PF0f072328 /* f07176c: 8fbf004c */ lw $ra,0x4c($sp) /* f071770: 8c980014 */ lw $t8,0x14($a0) -/* f071774: 0fc1a361 */ jal func0f068af4 +/* f071774: 0fc1a361 */ jal objFindBboxRodata /* f071778: afb801d4 */ sw $t8,0x1d4($sp) /* f07177c: 92190000 */ lbu $t9,0x0($s0) /* f071780: 3c0a8007 */ lui $t2,0x8007 @@ -18060,7 +18054,7 @@ glabel var7f1aa314 /* f0714e0: 502002f0 */ beqzl $at,.L0f0720a4 /* f0714e4: 8fbf004c */ lw $ra,0x4c($sp) /* f0714e8: 8c980014 */ lw $t8,0x14($a0) -/* f0714ec: 0fc1a2bd */ jal func0f068af4 +/* f0714ec: 0fc1a2bd */ jal objFindBboxRodata /* f0714f0: afb801d4 */ sw $t8,0x1d4($sp) /* f0714f4: 92190000 */ lbu $t9,0x0($s0) /* f0714f8: 3c0a8007 */ lui $t2,%hi(var80069a70) @@ -24696,7 +24690,7 @@ glabel var7f1ab6dcpf .PF0f07631c: /* f07631c: 55c003a4 */ bnezl $t6,.PF0f0771b0 /* f076320: 8fbf005c */ lw $ra,0x5c($sp) -/* f076324: 0fc1a361 */ jal func0f068af4 +/* f076324: 0fc1a361 */ jal objFindBboxRodata /* f076328: 02202025 */ move $a0,$s1 /* f07632c: 00402025 */ move $a0,$v0 /* f076330: 0fc19afb */ jal func0f06695c @@ -25439,7 +25433,7 @@ glabel var7f1ab6dcpf /* f076dfc: 8faf00fc */ lw $t7,0xfc($sp) /* f076e00: afa90074 */ sw $t1,0x74($sp) .PF0f076e04: -/* f076e04: 0fc1a361 */ jal func0f068af4 +/* f076e04: 0fc1a361 */ jal objFindBboxRodata /* f076e08: afa000fc */ sw $zero,0xfc($sp) /* f076e0c: 00402025 */ move $a0,$v0 /* f076e10: 0fc19afb */ jal func0f06695c @@ -28234,7 +28228,7 @@ glabel var7f1aa438 .L0f076098: /* f076098: 55c0039e */ bnezl $t6,.L0f076f14 /* f07609c: 8fbf005c */ lw $ra,0x5c($sp) -/* f0760a0: 0fc1a2bd */ jal func0f068af4 +/* f0760a0: 0fc1a2bd */ jal objFindBboxRodata /* f0760a4: 02202025 */ or $a0,$s1,$zero /* f0760a8: 00402025 */ or $a0,$v0,$zero /* f0760ac: 0fc19a57 */ jal func0f06695c @@ -28977,7 +28971,7 @@ glabel var7f1aa438 /* f076b78: 8faf00fc */ lw $t7,0xfc($sp) /* f076b7c: afa90074 */ sw $t1,0x74($sp) .L0f076b80: -/* f076b80: 0fc1a2bd */ jal func0f068af4 +/* f076b80: 0fc1a2bd */ jal objFindBboxRodata /* f076b84: afa000fc */ sw $zero,0xfc($sp) /* f076b88: 00402025 */ or $a0,$v0,$zero /* f076b8c: 0fc19a57 */ jal func0f06695c @@ -31737,7 +31731,7 @@ glabel var7f1aa438 .NB0f074dc8: /* f074dc8: 55600353 */ bnezl $t3,.NB0f075b18 /* f074dcc: 8fbf005c */ lw $ra,0x5c($sp) -/* f074dd0: 0fc19f5d */ jal func0f068af4 +/* f074dd0: 0fc19f5d */ jal objFindBboxRodata /* f074dd4: 02202025 */ or $a0,$s1,$zero /* f074dd8: 00402025 */ or $a0,$v0,$zero /* f074ddc: 0fc196f7 */ jal func0f06695c @@ -32415,7 +32409,7 @@ glabel var7f1aa438 /* f0757b0: 8faf00fc */ lw $t7,0xfc($sp) /* f0757b4: afa90078 */ sw $t1,0x78($sp) .NB0f0757b8: -/* f0757b8: 0fc19f5d */ jal func0f068af4 +/* f0757b8: 0fc19f5d */ jal objFindBboxRodata /* f0757bc: afa000fc */ sw $zero,0xfc($sp) /* f0757c0: 00402025 */ or $a0,$v0,$zero /* f0757c4: 0fc196f7 */ jal func0f06695c @@ -44103,7 +44097,7 @@ glabel var7f1aa6e4 /* f07d244: 86180094 */ lh $t8,0x94($s0) /* f07d248: 07030036 */ bgezl $t8,.L0f07d324 /* f07d24c: 860f0092 */ lh $t7,0x92($s0) -/* f07d250: 0fc1a2aa */ jal func0f068aa8 +/* f07d250: 0fc1a2aa */ jal modelFindBboxRodata /* f07d254: 8e040018 */ lw $a0,0x18($s0) /* f07d258: 0fc199ef */ jal func0f0667bc /* f07d25c: 00402025 */ or $a0,$v0,$zero @@ -45069,7 +45063,7 @@ glabel var7f1aa6e4 /* f07d244: 86180094 */ lh $t8,0x94($s0) /* f07d248: 07030036 */ bgezl $t8,.L0f07d324 /* f07d24c: 860f0092 */ lh $t7,0x92($s0) -/* f07d250: 0fc1a2aa */ jal func0f068aa8 +/* f07d250: 0fc1a2aa */ jal modelFindBboxRodata /* f07d254: 8e040018 */ lw $a0,0x18($s0) /* f07d258: 0fc199ef */ jal func0f0667bc /* f07d25c: 00402025 */ or $a0,$v0,$zero @@ -46033,7 +46027,7 @@ glabel var7f1aa6e0 /* f07bcf0: 86180094 */ lh $t8,0x94($s0) /* f07bcf4: 07030036 */ bgezl $t8,.NB0f07bdd0 /* f07bcf8: 860f0092 */ lh $t7,0x92($s0) -/* f07bcfc: 0fc19f4a */ jal func0f068aa8 +/* f07bcfc: 0fc19f4a */ jal modelFindBboxRodata /* f07bd00: 8e040018 */ lw $a0,0x18($s0) /* f07bd04: 0fc1968f */ jal func0f0667bc /* f07bd08: 00402025 */ or $a0,$v0,$zero @@ -46974,7 +46968,7 @@ glabel var7f1aa6e0 // // 23c // if (active && hovercar->deadtimer60 < 0) { // // Exploding -// tmp = func0f0667bc(func0f068aa8(hovercar->base.model)); +// tmp = func0f0667bc(modelFindBboxRodata(hovercar->base.model)); // sp1d6 = prop->rooms[0]; // // sp1d8.x = hovercar->base.realrot[3]; @@ -52750,7 +52744,7 @@ glabel var7f1aa838 /* f081e34: c422a834 */ lwc1 $f2,%lo(var7f1aa834)($at) /* f081e38: 8fa40098 */ lw $a0,0x98($sp) /* f081e3c: e7ae00cc */ swc1 $f14,0xcc($sp) -/* f081e40: 0fc1a2aa */ jal func0f068aa8 +/* f081e40: 0fc1a2aa */ jal modelFindBboxRodata /* f081e44: e7a200c8 */ swc1 $f2,0xc8($sp) /* f081e48: 8faa0080 */ lw $t2,0x80($sp) /* f081e4c: c7a200c8 */ lwc1 $f2,0xc8($sp) @@ -53455,7 +53449,7 @@ glabel var7f1aa838 /* f080890: c4224b50 */ lwc1 $f2,0x4b50($at) /* f080894: 8fa400a0 */ lw $a0,0xa0($sp) /* f080898: e7ae00d4 */ swc1 $f14,0xd4($sp) -/* f08089c: 0fc19f4a */ jal func0f068aa8 +/* f08089c: 0fc19f4a */ jal modelFindBboxRodata /* f0808a0: e7a200d0 */ swc1 $f2,0xd0($sp) /* f0808a4: 8faa0084 */ lw $t2,0x84($sp) /* f0808a8: c7a200d0 */ lwc1 $f2,0xd0($sp) @@ -54674,7 +54668,7 @@ glabel var7f1aa8d0 /* f082bc8: e46600f0 */ swc1 $f6,0xf0($v1) .L0f082bcc: /* f082bcc: afa3002c */ sw $v1,0x2c($sp) -/* f082bd0: 0fc1a2bd */ jal func0f068af4 +/* f082bd0: 0fc1a2bd */ jal objFindBboxRodata /* f082bd4: afa60030 */ sw $a2,0x30($sp) /* f082bd8: 8fa60030 */ lw $a2,0x30($sp) /* f082bdc: afa20028 */ sw $v0,0x28($sp) @@ -54966,7 +54960,7 @@ glabel var7f1aa8d0 /* f082bc8: e46600f0 */ swc1 $f6,0xf0($v1) .L0f082bcc: /* f082bcc: afa3002c */ sw $v1,0x2c($sp) -/* f082bd0: 0fc1a2bd */ jal func0f068af4 +/* f082bd0: 0fc1a2bd */ jal objFindBboxRodata /* f082bd4: afa60030 */ sw $a2,0x30($sp) /* f082bd8: 8fa60030 */ lw $a2,0x30($sp) /* f082bdc: afa20028 */ sw $v0,0x28($sp) @@ -59171,7 +59165,7 @@ u32 add43214321(u32 value) void func0f084cf0(struct defaultobj *obj) { struct prop *prop = obj->prop; - struct model08thing *thing = func0f068af4(obj); + struct modelrodata_bbox *bbox = objFindBboxRodata(obj); func0f13e40c(prop, 0); func0f13e40c(prop, 1); @@ -59180,12 +59174,10 @@ void func0f084cf0(struct defaultobj *obj) || obj->modelnum == MODEL_AIVILLABOT2 || obj->modelnum == MODEL_AIVILLABOT3) { shardsCreate(&prop->pos, &obj->realrot[0], &obj->realrot[3], &obj->realrot[6], - thing->unk04[0], thing->unk04[1], thing->unk04[2], - thing->unk04[3], SHARDTYPE_BOTTLE, prop); + bbox->xmin, bbox->xmax, bbox->ymin, bbox->ymax, SHARDTYPE_BOTTLE, prop); } else { shardsCreate(&prop->pos, &obj->realrot[0], &obj->realrot[3], &obj->realrot[6], - thing->unk04[0], thing->unk04[1], thing->unk04[2], - thing->unk04[3], SHARDTYPE_GLASS, prop); + bbox->xmin, bbox->xmax, bbox->ymin, bbox->ymax, SHARDTYPE_GLASS, prop); } #if PIRACYCHECKS @@ -60688,7 +60680,7 @@ glabel func0f085e00 /* f085e10: 8c840004 */ lw $a0,0x4($a0) /* f085e14: 8c8f0018 */ lw $t7,0x18($a0) /* f085e18: afa40020 */ sw $a0,0x20($sp) -/* f085e1c: 0fc1a2bd */ jal func0f068af4 +/* f085e1c: 0fc1a2bd */ jal objFindBboxRodata /* f085e20: afaf001c */ sw $t7,0x1c($sp) /* f085e24: 8fb80028 */ lw $t8,0x28($sp) /* f085e28: 8fa40020 */ lw $a0,0x20($sp) @@ -69942,7 +69934,7 @@ glabel func0f08be80 /* f08be88: afa40018 */ sw $a0,0x18($sp) /* f08be8c: afa5001c */ sw $a1,0x1c($sp) /* f08be90: afa60020 */ sw $a2,0x20($sp) -/* f08be94: 0fc1a2bd */ jal func0f068af4 +/* f08be94: 0fc1a2bd */ jal objFindBboxRodata /* f08be98: 00a02025 */ or $a0,$a1,$zero /* f08be9c: 44800000 */ mtc1 $zero,$f0 /* f08bea0: c4420004 */ lwc1 $f2,0x4($v0) @@ -70406,7 +70398,7 @@ glabel func0f08c484 /* f08c48c: 00803025 */ or $a2,$a0,$zero /* f08c490: 8c840018 */ lw $a0,0x18($a0) /* f08c494: afa60018 */ sw $a2,0x18($sp) -/* f08c498: 0fc1a2aa */ jal func0f068aa8 +/* f08c498: 0fc1a2aa */ jal modelFindBboxRodata /* f08c49c: afa5001c */ sw $a1,0x1c($sp) /* f08c4a0: 8fa5001c */ lw $a1,0x1c($sp) /* f08c4a4: 8c410000 */ lw $at,0x0($v0) diff --git a/src/game/shards/shards.c b/src/game/shards/shards.c index 2d395063a..e55038a88 100644 --- a/src/game/shards/shards.c +++ b/src/game/shards/shards.c @@ -22,7 +22,7 @@ bool g_ShardsActive = false; void shardCreate(s16 room, struct coord *pos, f32 rotx, f32 size, s32 type); -void shardsCreate(struct coord *pos, f32 *rotx, f32 *roty, f32 *rotz, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 type, struct prop *prop) +void shardsCreate(struct coord *pos, f32 *rotx, f32 *roty, f32 *rotz, f32 relxmin, f32 relxmax, f32 relymin, f32 relymax, s32 type, struct prop *prop) { s32 y; s32 x; @@ -50,8 +50,8 @@ void shardsCreate(struct coord *pos, f32 *rotx, f32 *roty, f32 *rotz, f32 arg4, spcc[1] *= 1.0f / f0; spcc[2] *= 1.0f / f0; - arg4 *= f0; - arg5 *= f0; + relxmin *= f0; + relxmax *= f0; spc0[0] = roty[0]; spc0[1] = roty[1]; @@ -63,21 +63,21 @@ void shardsCreate(struct coord *pos, f32 *rotx, f32 *roty, f32 *rotz, f32 arg4, spc0[1] *= 1.0f / f0; spc0[2] *= 1.0f / f0; - arg6 *= f0; - arg7 *= f0; + relymin *= f0; + relymax *= f0; f30 = atan2f(rotz[0], rotz[2]); - f20 = arg5 - arg4; - spac = arg7 - arg6; + f20 = relxmax - relxmin; + spac = relymax - relymin; spec = sqrtf(f20 * spac / (f32) (g_MaxShards / 2)); speci = spec; speci2 = speci; - basepos.x = (pos->f[0] + (arg4 + (speci >> 1)) * spcc[0]) + spc0[0] * (arg6 + (speci >> 1)); - basepos.y = (pos->f[1] + (arg4 + (speci >> 1)) * spcc[1]) + spc0[1] * (arg6 + (speci >> 1)); - basepos.z = (pos->f[2] + (arg4 + (speci >> 1)) * spcc[2]) + spc0[2] * (arg6 + (speci >> 1)); + basepos.x = (pos->f[0] + (relxmin + (speci >> 1)) * spcc[0]) + spc0[0] * (relymin + (speci >> 1)); + basepos.y = (pos->f[1] + (relxmin + (speci >> 1)) * spcc[1]) + spc0[1] * (relymin + (speci >> 1)); + basepos.z = (pos->f[2] + (relxmin + (speci >> 1)) * spcc[2]) + spc0[2] * (relymin + (speci >> 1)); if (type == SHARDTYPE_GLASS) { func0f0939f8(NULL, NULL, SFX_GLASS_SHATTER, -1, diff --git a/src/game/training/training.c b/src/game/training/training.c index 56b08aac1..1374364ea 100644 --- a/src/game/training/training.c +++ b/src/game/training/training.c @@ -3588,7 +3588,7 @@ glabel var7f1b94e4 /* f1a125c: 1420005c */ bnez $at,.PF0f1a13d0 /* f1a1260: 00000000 */ nop .PF0f1a1264: -/* f1a1264: 0fc1a361 */ jal func0f068af4 +/* f1a1264: 0fc1a361 */ jal objFindBboxRodata /* f1a1268: 00001025 */ move $v0,$zero /* f1a126c: 3c038009 */ lui $v1,0x8009 /* f1a1270: 90638d5c */ lbu $v1,-0x72a4($v1) @@ -4688,7 +4688,7 @@ glabel var7f1b94e4 /* f1a0148: 1420005c */ bnez $at,.L0f1a02bc /* f1a014c: 00000000 */ nop .L0f1a0150: -/* f1a0150: 0fc1a2bd */ jal func0f068af4 +/* f1a0150: 0fc1a2bd */ jal objFindBboxRodata /* f1a0154: 00001025 */ or $v0,$zero,$zero /* f1a0158: 3c038009 */ lui $v1,%hi(g_FrNumSounds) /* f1a015c: 9063880c */ lbu $v1,%lo(g_FrNumSounds)($v1) @@ -5801,7 +5801,7 @@ glabel var7f1b94e4 /* f19a150: 1420005c */ bnez $at,.NB0f19a2c4 /* f19a154: 00000000 */ sll $zero,$zero,0x0 .NB0f19a158: -/* f19a158: 0fc19f5d */ jal func0f068af4 +/* f19a158: 0fc19f5d */ jal objFindBboxRodata /* f19a15c: 00001025 */ or $v0,$zero,$zero /* f19a160: 3c038009 */ lui $v1,0x8009 /* f19a164: 9063af7c */ lbu $v1,-0x5084($v1) @@ -6371,7 +6371,7 @@ glabel var7f1b94e4 // struct inventory_ammo *ammo; // u8 exploding; // 123 // bool oldside; -// struct model08thing *model08thing; // 118 +// struct modelrodata_bbox *bbox; // 118 // s32 tmp; // f32 mult; // 110 // bool newside; @@ -6618,7 +6618,7 @@ glabel var7f1b94e4 // // Handle target being destroyed // if (exploding || (g_FrData.targets[i].maxdamage != 255 && g_FrData.targets[i].damage >= g_FrData.targets[i].maxdamage)) { // // 150 -// model08thing = func0f068af4(obj); +// bbox = objFindBboxRodata(obj); // // if (g_FrNumSounds && g_FrData.targets[i].travelling) { // g_FrNumSounds--; @@ -6629,8 +6629,7 @@ glabel var7f1b94e4 // // // 1d0 // shardsCreate(&prop->pos, &obj->realrot[0], &obj->realrot[3], &obj->realrot[6], -// model08thing->unk04[0], model08thing->unk04[1], model08thing->unk04[2], -// model08thing->unk04[3], 2, prop); +// bbox->xmin, bbox->xmax, bbox->ymin, bbox->ymax, 2, prop); // // g_FrData.targetsdestroyed++; // diff --git a/src/include/game/propobj.h b/src/include/game/propobj.h index 99effccd1..96a924bcc 100644 --- a/src/include/game/propobj.h +++ b/src/include/game/propobj.h @@ -79,10 +79,10 @@ s32 func0f0687b8(struct defaultobj *obj); struct modelnode *func0f0687e4(struct model *model); u32 func0f0688f4(void); struct modelrodata_bbox *func0f06896c(struct modelfiledata *filedata); -u32 func0f068998(void); -struct model08thing *func0f068aa8(struct model *model); +struct modelnode *modelFindBboxNode(struct model *model); +struct modelrodata_bbox *modelFindBboxRodata(struct model *model); u32 func0f068ad4(void); -struct model08thing *func0f068af4(struct defaultobj *obj); +struct modelrodata_bbox *objFindBboxRodata(struct defaultobj *obj); u32 func0f068b14(void); u32 func0f068c04(void); s32 func0f068fc8(struct prop *prop, bool arg1); diff --git a/src/include/game/shards.h b/src/include/game/shards.h index b09e8d14e..34e6c78df 100644 --- a/src/include/game/shards.h +++ b/src/include/game/shards.h @@ -4,7 +4,7 @@ #include "data.h" #include "types.h" -void shardsCreate(struct coord *pos, f32 *rotx, f32 *roty, f32 *rotz, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 type, struct prop *prop); +void shardsCreate(struct coord *pos, f32 *rotx, f32 *roty, f32 *rotz, f32 xmin, f32 xmax, f32 ymin, f32 ymax, s32 type, struct prop *prop); void shardsInit(void); Gfx *shardsRender(Gfx *gdl); void shardsReset(void); diff --git a/src/include/types.h b/src/include/types.h index d869d1a1d..8bd7c60fb 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6168,13 +6168,6 @@ struct healthdamagetype { s32 closeendframe; }; -struct model08thing { - u32 unk00; - f32 unk04[4]; - u32 unk14; - f32 unk18; -}; - struct optiongroup { s32 offset; u16 name;