modelRender.c replace obsolete asm ref

This commit is contained in:
Banjo Kazooie 2022-12-01 18:55:54 -06:00
parent 342011dd23
commit 263b5bab4e
22 changed files with 182 additions and 181 deletions

View File

@ -749,7 +749,7 @@ segments:
- [0xFCF5E0, c, code_79C80] #DONE - [0xFCF5E0, c, code_79C80] #DONE
- [0xFD00C0, c, code_7A760] #DONE - [0xFD00C0, c, code_7A760] #DONE
- [0xFD08E0, c, code_7AF80] - [0xFD08E0, c, code_7AF80]
- [0xFD7960, c, levelModel] #DONE - [0xFD7960, c, mapModel] #DONE
- [0xFD8CA0, c, code_83340] - [0xFD8CA0, c, code_83340]
- [0xFD96D0, c, gc/section] #DONE - [0xFD96D0, c, gc/section] #DONE
- [0xFD9A30, c, gc/sky] #DONE - [0xFD9A30, c, gc/sky] #DONE
@ -1023,7 +1023,7 @@ segments:
- [0x10392E0, .data, code_79C80] - [0x10392E0, .data, code_79C80]
- [0x1039330, .data, code_7A760] - [0x1039330, .data, code_7A760]
- [0x1039380, .data, code_7AF80] - [0x1039380, .data, code_7AF80]
- [0x10395B0, .data, levelModel] - [0x10395B0, .data, mapModel]
- [0x103A1D0, .data, code_83340] - [0x103A1D0, .data, code_83340]
- [0x103A1E0, .data, gc/section] - [0x103A1E0, .data, gc/section]
- [0x103A710, .data, gc/sky] - [0x103A710, .data, gc/sky]
@ -1267,7 +1267,7 @@ segments:
- [0x1045E50, .rodata, code_79C80] - [0x1045E50, .rodata, code_79C80]
- [0x1045E60, .rodata, code_7A760] - [0x1045E60, .rodata, code_7A760]
- [0x1045E80, .rodata, code_7AF80] - [0x1045E80, .rodata, code_7AF80]
- [0x1045F40, .rodata, levelModel] - [0x1045F40, .rodata, mapModel]
- [0x1046100, .rodata, code_83340] - [0x1046100, .rodata, code_83340]
- [0x1046110, .rodata, gc/section] - [0x1046110, .rodata, gc/section]
- [0x1046E10, .rodata, gc/sky] - [0x1046E10, .rodata, gc/sky]
@ -1530,7 +1530,7 @@ segments:
- [0x1048560, .bss, code_79C80] - [0x1048560, .bss, code_79C80]
- [0x1048560, .bss, code_7A760] - [0x1048560, .bss, code_7A760]
- [0x1048560, .bss, code_7AF80] - [0x1048560, .bss, code_7AF80]
- [0x1048560, .bss, levelModel] - [0x1048560, .bss, mapModel]
- [0x1048560, .bss, code_83340] - [0x1048560, .bss, code_83340]
- [0x1048560, .bss, gc/section] - [0x1048560, .bss, gc/section]
- [0x1048560, .bss, gc/sky] - [0x1048560, .bss, gc/sky]

View File

@ -10,6 +10,7 @@ enum player_model_direction_e {
void playerModel_80292048(s32, f32, f32, f32); void playerModel_80292048(s32, f32, f32, f32);
void playerModel_setDirection(enum player_model_direction_e arg0); void playerModel_setDirection(enum player_model_direction_e arg0);
void playerModel_setScale(f32); void playerModel_setScale(f32);
void playerModel_setYDisplacement(f32);
void playerModel_8029217C(f32); void playerModel_8029217C(f32);
void playerModel_setVisible(s32 arg0); void playerModel_setVisible(s32 arg0);

View File

@ -101,7 +101,6 @@ void _player_getPosition(f32 dst[3]);
void player_getPosition(f32 dst[3]); void player_getPosition(f32 dst[3]);
void player_getRotation(f32 *dst); void player_getRotation(f32 *dst);
void playerModel_80291A50(s32 arg0, f32* arg1);
int button_pressed(s32); int button_pressed(s32);
u32 button_held(s32); u32 button_held(s32);
@ -311,11 +310,11 @@ int func_80291698(s32);
int func_80291700(s32, f32); int func_80291700(s32, f32);
void func_802917E4(s32, f32); void func_802917E4(s32, f32);
void playerModel_80291A50(s32 arg0, f32* arg1);
void playerModel_80292078(s32, f32); void playerModel_80292078(s32, f32);
void playerModel_80292158(f32); void playerModel_80292158(f32);
f32 playerModel_80292230(void); f32 playerModel_80292230(void);
void func_802927E0(f32, f32); void func_802927E0(f32, f32);
void func_80292974(f32, f32, f32); void func_80292974(f32, f32, f32);
void func_80292900(f32, f32); void func_80292900(f32, f32);

View File

@ -246,8 +246,7 @@ Actor *chvile_draw(ActorMarker *marker, Gfx **gfx, Mtx** mtx, Vtx **vtx){
return this; return this;
} }
//chvile_get_position f32 *chVile_getPostion(ActorMarker *marker){
f32 *func_8038C284(ActorMarker *marker){
Actor *this; Actor *this;
this = marker_getActor(marker); this = marker_getActor(marker);
@ -255,15 +254,15 @@ f32 *func_8038C284(ActorMarker *marker){
} }
bool func_8038C2A8(ActorMarker *marker) { bool func_8038C2A8(ActorMarker *marker) {
f32 sp24[3]; f32 player_position[3];
Actor *this; Actor *this;
ActorLocal_MrVile *local; ActorLocal_MrVile *local;
this = marker_getActor(marker); this = marker_getActor(marker);
local = (ActorLocal_MrVile *)&this->local; local = (ActorLocal_MrVile *)&this->local;
player_getPosition(&sp24); player_getPosition(player_position);
if (this->state == 6) { if (this->state == 6) {
return ml_vec3f_distance(this->position, &sp24) < 150.0f; return ml_vec3f_distance(this->position, player_position) < 150.0f;
} }
return local->unk0 == 1; return local->unk0 == 1;
} }

View File

@ -4,7 +4,7 @@
extern f32 func_80256AB4(f32, f32, f32, f32); extern f32 func_80256AB4(f32, f32, f32, f32);
extern f32 func_8025715C(f32, f32); extern f32 func_8025715C(f32, f32);
extern f32 *func_8038C284(ActorMarker *); extern f32 *chVile_getPostion(ActorMarker *);
extern void func_802C8F7C(f32); extern void func_802C8F7C(f32);
extern void func_802FDCB8(s32); extern void func_802FDCB8(s32);
@ -159,7 +159,7 @@ void func_80389C58(ActorMarker *marker) {
this = marker_getActor(marker); this = marker_getActor(marker);
local = (ActorLocal_BGS_3420 *)&this->local; local = (ActorLocal_BGS_3420 *)&this->local;
BGS_func_80389850(this, 0); BGS_func_80389850(this, 0);
func_80311480(D_80390984[local->unkC], 0xF, func_8038C284(local->vile_marker), this->marker, func_80389BF8, NULL); func_80311480(D_80390984[local->unkC], 0xF, chVile_getPostion(local->vile_marker), this->marker, func_80389BF8, NULL);
} }
void BGS_func_80389CD8(ActorMarker *marker, enum asset_e text_id, s32 arg2){ void BGS_func_80389CD8(ActorMarker *marker, enum asset_e text_id, s32 arg2){
@ -179,9 +179,9 @@ void func_80389D20(ActorMarker *marker) {
local = (ActorLocal_BGS_3420 *)&this->local; local = (ActorLocal_BGS_3420 *)&this->local;
BGS_func_80389850(this, 0); BGS_func_80389850(this, 0);
if (local->unkC == local->unkD) { if (local->unkC == local->unkD) {
func_80311480(D_803909A4[local->unkC], 0xF, func_8038C284(local->vile_marker), this->marker, BGS_func_80389CD8, NULL); func_80311480(D_803909A4[local->unkC], 0xF, chVile_getPostion(local->vile_marker), this->marker, BGS_func_80389CD8, NULL);
} else { } else {
func_80311480(D_803909C0[local->unkC], 0xF, func_8038C284(local->vile_marker), this->marker, BGS_func_80389CD8, NULL); func_80311480(D_803909C0[local->unkC], 0xF, chVile_getPostion(local->vile_marker), this->marker, BGS_func_80389CD8, NULL);
} }
func_80347A14(0); func_80347A14(0);
} }
@ -203,7 +203,7 @@ void func_80389E40(ActorMarker *marker) {
local = (ActorLocal_BGS_3420 *)&this->local; local = (ActorLocal_BGS_3420 *)&this->local;
BGS_func_80389850(this, 1); BGS_func_80389850(this, 1);
func_80311480(0xC6B, 0xF, func_8038C284(local->vile_marker), this->marker, func_80389DF8, NULL); func_80311480(0xC6B, 0xF, chVile_getPostion(local->vile_marker), this->marker, func_80389DF8, NULL);
} }
void func_80389EAC(ActorMarker *marker, enum asset_e text_id, s32 arg2){ void func_80389EAC(ActorMarker *marker, enum asset_e text_id, s32 arg2){
@ -243,7 +243,7 @@ void func_80389F08(ActorMarker *marker) {
item_inc(ITEM_16_LIFE); item_inc(ITEM_16_LIFE);
} }
} }
func_80311480(0xC98, 0xF, func_8038C284(local->vile_marker), this->marker, func_80389EAC, NULL); func_80311480(0xC98, 0xF, chVile_getPostion(local->vile_marker), this->marker, func_80389EAC, NULL);
} }
@ -265,22 +265,22 @@ void func_8038A068(Actor *this, s32 next_state) {
func_8038C3B0(local->vile_marker); func_8038C3B0(local->vile_marker);
if (local->unkC == 3) { if (local->unkC == 3) {
if (local->unkD >= 4) { if (local->unkD >= 4) {
func_80311480(0xC91, 0xE, func_8038C284(local->vile_marker), this->marker, func_80389B48, NULL); func_80311480(0xC91, 0xE, chVile_getPostion(local->vile_marker), this->marker, func_80389B48, NULL);
} else { } else {
func_80311480((local->unkC == local->unkD) ? 0xC8D : 0xC90, 0xE, func_8038C284(local->vile_marker), this->marker, func_80389B48, NULL); func_80311480((local->unkC == local->unkD) ? 0xC8D : 0xC90, 0xE, chVile_getPostion(local->vile_marker), this->marker, func_80389B48, NULL);
} }
} else { } else {
func_80311480((local->unkC == local->unkD) ? 0xC63 : 0xC6C, 0xE, func_8038C284(local->vile_marker), this->marker, func_80389B48, NULL); func_80311480((local->unkC == local->unkD) ? 0xC63 : 0xC6C, 0xE, chVile_getPostion(local->vile_marker), this->marker, func_80389B48, NULL);
} }
} }
if (next_state == 3) { if (next_state == 3) {
func_80311480(D_803909DC[local->unkC], 4, func_8038C284(local->vile_marker), this->marker, func_80389B98, NULL); func_80311480(D_803909DC[local->unkC], 4, chVile_getPostion(local->vile_marker), this->marker, func_80389B98, NULL);
} }
if (next_state == 4) { if (next_state == 4) {
if (local->unkC == local->unkD) { if (local->unkC == local->unkD) {
func_80311480(BGS_D_803909F8[local->unkC], 0xE | ((BGS_D_803909F8[local->unkC] == 0xC8E) ? 1 : 0) | 0xE, func_8038C284(local->vile_marker), this->marker, func_80389BC8, NULL); func_80311480(BGS_D_803909F8[local->unkC], 0xE | ((BGS_D_803909F8[local->unkC] == 0xC8E) ? 1 : 0) | 0xE, chVile_getPostion(local->vile_marker), this->marker, func_80389BC8, NULL);
} else { } else {
func_80311480(D_80390A18[local->unkC], 0xF , func_8038C284(local->vile_marker), this->marker, func_80389BC8, NULL); func_80311480(D_80390A18[local->unkC], 0xF , chVile_getPostion(local->vile_marker), this->marker, func_80389BC8, NULL);
} }
func_80347A14(0); func_80347A14(0);
} }

View File

@ -159,7 +159,7 @@ void func_803904A8(void){
if(D_80391AE0.tile1_0 == NULL || D_80391AE0.tile2_4 == NULL){ if(D_80391AE0.tile1_0 == NULL || D_80391AE0.tile2_4 == NULL){
if( player_getActiveHitbox(0) == HITBOX_1_BEAK_BUSTER && func_8028F20C()){ if( player_getActiveHitbox(0) == HITBOX_1_BEAK_BUSTER && func_8028F20C()){
player_getPosition(sp50); player_getPosition(sp50);
sp4C = func_8033F3E8(levelModel_getModel(0), sp50, 0x190, 0x1a0); sp4C = func_8033F3E8(mapModel_getModel(0), sp50, 0x190, 0x1a0);
if(sp4C){ if(sp4C){
sp48 = func_8034C528(sp4C); sp48 = func_8034C528(sp4C);
if(D_80391AE0.state_9 == 1){ if(D_80391AE0.state_9 == 1){
@ -197,7 +197,7 @@ void func_803904A8(void){
func_8034E120(D_80391AE0.tile1_0->unk4, 180.0f, 0.0f, 0.5f, 2); func_8034E120(D_80391AE0.tile1_0->unk4, 180.0f, 0.0f, 0.5f, 2);
func_8034E120(D_80391AE0.tile2_4->unk4, 180.0f, 0.0f, 0.5f, 2); func_8034E120(D_80391AE0.tile2_4->unk4, 180.0f, 0.0f, 0.5f, 2);
player_getPosition(sp38); player_getPosition(sp38);
sp48 = func_8033F3E8(levelModel_getModel(0), sp38, 0x190, 0x1a0); sp48 = func_8033F3E8(mapModel_getModel(0), sp38, 0x190, 0x1a0);
if(sp48 == D_80391AE0.tile1_0->unk0 || sp48 == D_80391AE0.tile2_4->unk0){ if(sp48 == D_80391AE0.tile1_0->unk0 || sp48 == D_80391AE0.tile2_4->unk0){
func_8028F66C(BS_INTR_14); func_8028F66C(BS_INTR_14);
} }

View File

@ -47,7 +47,7 @@ Actor *chhut_draw(ActorMarker *this, Gfx **arg1, Mtx **arg2, Vtx **arg3){
temp_a1 = actorPtr->state != 2; temp_a1 = actorPtr->state != 2;
temp_a2 = actorPtr->state == 0 || actorPtr->state == 2; temp_a2 = actorPtr->state == 0 || actorPtr->state == 2;
this->propPtr->unk8_3 = temp_a2; this->propPtr->unk8_3 = temp_a2;
func_8033A45C(1, temp_a1, temp_a2); func_8033A45C(1, temp_a1);
return func_80325888(this, arg1, arg2, arg3); return func_80325888(this, arg1, arg2, arg3);
} }

View File

@ -220,7 +220,7 @@ void func_8038A9B4(void){
if(map_get() == MAP_24_MMM_TUMBLARS_SHED){ if(map_get() == MAP_24_MMM_TUMBLARS_SHED){
MMM_D_8038C510.unkC = NULL; MMM_D_8038C510.unkC = NULL;
MMM_D_8038C510.unk0 = levelModel_getModel(0); MMM_D_8038C510.unk0 = mapModel_getModel(0);
MMM_D_8038C510.unk4 = NULL; MMM_D_8038C510.unk4 = NULL;
func_8038A2B8(); func_8038A2B8();

View File

@ -6,7 +6,7 @@
/* extern */ /* extern */
extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e); extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e);
extern BKModel *levelModel_getModel(s32); extern BKModel *mapModel_getModel(s32);
extern u8 D_8037DCC0[7]; extern u8 D_8037DCC0[7];
@ -417,8 +417,8 @@ void func_8038B094(void){
func_8034E71C(sp28, -500, 0.0f); func_8034E71C(sp28, -500, 0.0f);
}//L8038B1EC }//L8038B1EC
D_8038D720.unk0 = levelModel_getModel(0); D_8038D720.unk0 = mapModel_getModel(0);
D_8038D720.unk4 = levelModel_getModel(1); D_8038D720.unk4 = mapModel_getModel(1);
D_8038D720.unk8 = 0; D_8038D720.unk8 = 0;
D_8038D720.unk10 = 0; D_8038D720.unk10 = 0;
D_8038D720.unkC = 0.0f; D_8038D720.unkC = 0.0f;

View File

@ -2,7 +2,8 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
extern void playerModel_setYDisplacement(f32); #include "core2/playerModel.h"
extern f32 func_8029494C(void); extern f32 func_8029494C(void);
extern f32 func_8029B2D0(void); extern f32 func_8029B2D0(void);
extern bool func_8029E284(s32, f32); extern bool func_8029E284(s32, f32);

View File

@ -2,6 +2,8 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/playerModel.h"
f32 func_80294438(void); f32 func_80294438(void);
void func_8029797C(f32); void func_8029797C(f32);
void func_802979AC(f32, f32); void func_802979AC(f32, f32);
@ -9,7 +11,6 @@ f32 func_80297A64(void);
void func_80299B58(f32, f32); void func_80299B58(f32, f32);
f32 func_8029B2E8(void); f32 func_8029B2E8(void);
f32 func_8029B33C(void); f32 func_8029B33C(void);
void playerModel_setYDisplacement(f32);
void func_8028A084(s32, f32); void func_8028A084(s32, f32);
/* .data */ /* .data */

View File

@ -2,7 +2,8 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
extern void playerModel_setScale(f32); #include "core2/playerModel.h"
extern void func_8028A084(s32, f32); extern void func_8028A084(s32, f32);
extern void func_8029AD68(f32, s32); extern void func_8029AD68(f32, s32);

View File

@ -29,18 +29,18 @@ u32 D_8037D550;
/* .code */ /* .code */
void func_802B5480(void) { void func_802B5480(void) {
f32 sp2C[3]; f32 bubble_spawn_position[3];
ParticleEmitter *sp28; ParticleEmitter *bubble_emitter;
if (func_80294574()) { if (func_80294574()) {
if (randf() > 0.5) { if (randf() > 0.5) {
playerModel_8029223C(sp2C); playerModel_8029223C(bubble_spawn_position);
} else { } else {
playerModel_80292260(sp2C); playerModel_80292260(bubble_spawn_position);
} }
sp28 = func_8029B950(&sp2C, 0.0f); bubble_emitter = func_8029B950(bubble_spawn_position, 0.0f);
particleEmitter_setParticleVelocityRange(sp28, -60.0f, -100.0f, -60.0f, 60.0f, 0.0f, 60.0f); particleEmitter_setParticleVelocityRange(bubble_emitter, -60.0f, -100.0f, -60.0f, 60.0f, 0.0f, 60.0f);
particleEmitter_emitN(sp28, 1); particleEmitter_emitN(bubble_emitter, 1);
} }
} }

View File

@ -592,7 +592,7 @@ s32 func_802E48D8(void){
modelRender_defrag(); modelRender_defrag();
func_8028FB68(); func_8028FB68();
func_802F0E58(); func_802F0E58();
levelModel_defrag(); mapModel_defrag();
func_803086B4(); func_803086B4();
func_8032AF94(); func_8032AF94();
func_802C4320(); func_802C4320();

View File

@ -24,7 +24,7 @@ void func_8031B718(void){
} }
void func_8031B760(void){ void func_8031B760(void){
levelModel_setEnvColor(D_80383170.rgb[0], D_80383170.rgb[1], D_80383170.rgb[2]); mapModel_setEnvColor(D_80383170.rgb[0], D_80383170.rgb[1], D_80383170.rgb[2]);
} }
void func_8031B790(void) { void func_8031B790(void) {

View File

@ -42,7 +42,7 @@ void func_80334540(Gfx** gdl, Mtx **mptr, Vtx **vptr) {
func_8024CE60(sp44, sp40); func_8024CE60(sp44, sp40);
func_8024C904(gdl, mptr); func_8024C904(gdl, mptr);
if (func_80309F78() != 0) { if (func_80309F78() != 0) {
levelModel_opa_draw(gdl, mptr, vptr); mapModel_opa_draw(gdl, mptr, vptr);
if (func_802E49F0() == 0) { if (func_802E49F0() == 0) {
func_80322E64(gdl, mptr, vptr); func_80322E64(gdl, mptr, vptr);
} }
@ -65,7 +65,7 @@ void func_80334540(Gfx** gdl, Mtx **mptr, Vtx **vptr) {
func_802F0A34(gdl, mptr, vptr); func_802F0A34(gdl, mptr, vptr);
} }
if (func_802E49F0() == 0) { if (func_802E49F0() == 0) {
levelModel_xlu_draw(gdl, mptr, vptr); mapModel_xlu_draw(gdl, mptr, vptr);
} }
if (func_802E49F0() == 0) { if (func_802E49F0() == 0) {
func_8032D3D8(gdl, mptr, vptr); func_8032D3D8(gdl, mptr, vptr);
@ -78,7 +78,7 @@ void func_80334540(Gfx** gdl, Mtx **mptr, Vtx **vptr) {
} }
func_802D520C(gdl, mptr, vptr); func_802D520C(gdl, mptr, vptr);
} else { } else {
levelModel_opa_draw(gdl, mptr, vptr); mapModel_opa_draw(gdl, mptr, vptr);
func_80322E64(gdl, mptr, vptr); func_80322E64(gdl, mptr, vptr);
func_8034F6F0(gdl, mptr, vptr); func_8034F6F0(gdl, mptr, vptr);
func_8028E6A4(gdl, mptr, vptr); func_8028E6A4(gdl, mptr, vptr);
@ -154,7 +154,7 @@ void func_80334910(void) {
func_80323100(); func_80323100();
cubeList_free(); cubeList_free();
func_8031B710(); func_8031B710();
levelModel_free(); mapModel_free();
func_8030A6B0(); func_8030A6B0();
func_80333918(); func_80333918();
sky_free(); sky_free();

View File

@ -473,8 +473,8 @@ int func_80294560(void){
return D_8037C280 == 3; return D_8037C280 == 3;
} }
void func_80294574(void){ bool func_80294574(void){
func_8031C594(D_8037C200); return func_8031C594(D_8037C200);
} }
bool func_80294598(void) { bool func_80294598(void) {

View File

@ -145,7 +145,7 @@ void func_8035D4F0(ActorMarker *marker, s32 arg1){
if(map_get() == MAP_13_GV_MEMORY_GAME){ if(map_get() == MAP_13_GV_MEMORY_GAME){
actor = marker_getActor(marker); actor = marker_getActor(marker);
if(actor->state != 9){ if(actor->state != 9){
if(func_8033F3E8(levelModel_getModel(0), actor->position, 0x190, 0x1A0) == arg1){ if(func_8033F3E8(mapModel_getModel(0), actor->position, 0x190, 0x1A0) == arg1){
func_802C9334(0x1C, actor); func_802C9334(0x1C, actor);
func_8035D2C0(marker, 0); func_8035D2C0(marker, 0);
} }

View File

@ -17,16 +17,16 @@ BKCollisionTri *func_80309B48(f32 arg0[3], f32 arg1[3], f32 arg2[3], s32 arg3) ;
typedef struct { typedef struct {
s16 map_id; //enum map_e s16 map_id; //enum map_e
s16 model1_id; //enum asset_e level_model_id s16 opa_model_id; //enum asset_e level_model_id
s16 model2_id; //enum asset_e level2_model_id s16 xlu_model_id; //enum asset_e level2_model_id
s16 unk6[3]; s16 unk6[3];
s16 unkC[3]; s16 unkC[3];
// u8 pad12[0x2]; // u8 pad12[0x2];
f32 unk14; f32 scale;
}Struct_core2_82000_0; }MapModelDescription;
/* .data */ /* .data */
Struct_core2_82000_0 D_8036ABE0[] = { MapModelDescription D_8036ABE0[] = {
{MAP_1_SM_SPIRAL_MOUNTAIN, 0x14CF, 0x14D0, {1, 0, 1}, {-3, -4, -2}, 1.0f}, {MAP_1_SM_SPIRAL_MOUNTAIN, 0x14CF, 0x14D0, {1, 0, 1}, {-3, -4, -2}, 1.0f},
{MAP_2_MM_MUMBOS_MOUNTAIN, 0x14AA, 0x14AB, {1, 0, 2}, {-2, 0, -2}, 1.0f}, {MAP_2_MM_MUMBOS_MOUNTAIN, 0x14AA, 0x14AB, {1, 0, 2}, {-2, 0, -2}, 1.0f},
{MAP_5_TTC_BLUBBERS_SHIP, 0x146F, 0x1470, {0, 0, 0}, {0, 0, 0}, 1.0f}, {MAP_5_TTC_BLUBBERS_SHIP, 0x146F, 0x1470, {0, 0, 0}, {0, 0, 0}, 1.0f},
@ -170,18 +170,18 @@ struct {
BKModelBin *model_bin_xlu; BKModelBin *model_bin_xlu;
s32 unk20; s32 unk20;
struct5Bs *unk24; struct5Bs *unk24;
Struct_core2_82000_0 *unk28; MapModelDescription *description;
u8 env_red; u8 env_red;
u8 env_green; u8 env_green;
u8 env_blue; u8 env_blue;
f32 unk30; f32 scale;
}levelModel; }mapModel;
enum asset_e levelModel_getOpaModelId(void); enum asset_e mapModel_getOpaModelId(void);
/* .code */ /* .code */
Struct_core2_82000_0 *func_80308F90(enum map_e map_id){ static MapModelDescription *_mapModel_mapIdToDescription(enum map_e map_id){
Struct_core2_82000_0 *i_ptr; MapModelDescription *i_ptr;
for(i_ptr = D_8036ABE0; i_ptr->map_id != 0; i_ptr++){ for(i_ptr = D_8036ABE0; i_ptr->map_id != 0; i_ptr++){
if(map_id == i_ptr->map_id){ if(map_id == i_ptr->map_id){
@ -235,15 +235,14 @@ f32 func_80308FDC(f32 arg0[3], u32 arg1) {
return 0.0f; return 0.0f;
} }
void levelModel_opa_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) { void mapModel_opa_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
s32 temp_a0; s32 temp_a0;
if (func_80320708() && levelSpecificFlags_validateCRC2() && func_80320248()) { if (func_80320708() && levelSpecificFlags_validateCRC2() && func_80320248()) {
if (levelModel_getOpaModelId() == ASSET_14CF_MODEL_SM_OPA) { if (mapModel_getOpaModelId() == ASSET_14CF_MODEL_SM_OPA) {
func_8033A45C(1, 0); func_8033A45C(1, 0);
func_8033A45C(2, 1); func_8033A45C(2, 1);
} }
// temp_v0 = map_get();
switch (map_get()) { /* irregular */ switch (map_get()) { /* irregular */
case MAP_88_CS_SPIRAL_MOUNTAIN_6: case MAP_88_CS_SPIRAL_MOUNTAIN_6:
if (mapSpecificFlags_get(0) != 0) { if (mapSpecificFlags_get(0) != 0) {
@ -337,34 +336,34 @@ void levelModel_opa_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
func_8033A45C(6, (func_8038EAE0(0xA) || func_8031FF1C(0xE2) || func_803203FC(0xC1))); func_8033A45C(6, (func_8038EAE0(0xA) || func_8031FF1C(0xE2) || func_803203FC(0xC1)));
break; break;
} }
func_8033A450(levelModel.unk24); func_8033A450(mapModel.unk24);
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL); modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
temp_a0 = levelModel.unk0; temp_a0 = mapModel.unk0;
if (temp_a0 != 0) { if (temp_a0 != 0) {
func_8033A494(temp_a0); func_8033A494(temp_a0);
} }
modelRender_setEnvColor(levelModel.env_red, levelModel.env_green, levelModel.env_blue, 0xFF); modelRender_setEnvColor(mapModel.env_red, mapModel.env_green, mapModel.env_blue, 0xFF);
modelRender_draw(gfx, mtx, NULL, NULL, levelModel.unk28->unk14, NULL, levelModel.model_bin_opa); modelRender_draw(gfx, mtx, NULL, NULL, mapModel.description->scale, NULL, mapModel.model_bin_opa);
if (!func_80309F78()) { if (!func_80309F78()) {
func_802F7BC0(gfx, mtx, vtx); func_802F7BC0(gfx, mtx, vtx);
} }
} }
} }
void levelModel_xlu_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) { void mapModel_xlu_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
s32 temp_a0; s32 temp_a0;
if (levelModel.model_bin_xlu != NULL) { if (mapModel.model_bin_xlu != NULL) {
if (map_get() == MAP_1D_MMM_CELLAR) { if (map_get() == MAP_1D_MMM_CELLAR) {
func_8033A45C(1, (func_80326EEC(0x191) != NULL) ? 0 : 1); func_8033A45C(1, (func_80326EEC(0x191) != NULL) ? 0 : 1);
} }
modelRender_setDepthMode(MODEL_RENDER_DEPTH_COMPARE); modelRender_setDepthMode(MODEL_RENDER_DEPTH_COMPARE);
temp_a0 = levelModel.unk4; temp_a0 = mapModel.unk4;
if (temp_a0 != 0) { if (temp_a0 != 0) {
func_8033A494(temp_a0); func_8033A494(temp_a0);
} }
modelRender_setEnvColor(levelModel.env_red, levelModel.env_green, levelModel.env_blue, 0xFF); modelRender_setEnvColor(mapModel.env_red, mapModel.env_green, mapModel.env_blue, 0xFF);
modelRender_draw(gfx, mtx, NULL, NULL, levelModel.unk28->unk14, NULL, levelModel.model_bin_xlu); modelRender_draw(gfx, mtx, NULL, NULL, mapModel.description->scale, NULL, mapModel.model_bin_xlu);
func_802F7BC0(gfx, mtx, vtx); func_802F7BC0(gfx, mtx, vtx);
} }
} }
@ -372,52 +371,52 @@ void levelModel_xlu_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
void func_80309704(s32 arg0, s32 arg1, s32 arg2){} void func_80309704(s32 arg0, s32 arg1, s32 arg2){}
s32 func_80309714(void){ s32 func_80309714(void){
return levelModel.collision_opa->unk12; return mapModel.collision_opa->unk12;
} }
f32 func_80309724(f32 arg0[3]){ f32 func_80309724(f32 arg0[3]){
return func_80308FDC(arg0, 0x1e0000); return func_80308FDC(arg0, 0x1e0000);
} }
BKModel *levelModel_getModel(s32 arg0){ BKModel *mapModel_getModel(s32 arg0){
return (arg0) ? levelModel.model_xlu : levelModel.model_opa; return (arg0) ? mapModel.model_xlu : mapModel.model_opa;
} }
BKModelBin *levelModel_getModelBin(s32 arg0){ BKModelBin *mapModel_getModelBin(s32 arg0){
if(arg0 == 0) if(arg0 == 0)
return levelModel.model_bin_opa; return mapModel.model_bin_opa;
if(arg0 == 1) if(arg0 == 1)
return levelModel.model_bin_xlu; return mapModel.model_bin_xlu;
return 0; return 0;
} }
s32 func_80309794(void){ s32 func_80309794(void){
return levelModel.unk20; return mapModel.unk20;
} }
struct5Bs *func_803097A0(void){ struct5Bs *func_803097A0(void){
return levelModel.unk24; return mapModel.unk24;
} }
void func_803097AC(s32 arg0[3], s32 arg1[3]) { void func_803097AC(s32 arg0[3], s32 arg1[3]) {
func_802EC458(func_8033A148(levelModel.model_bin_opa), arg0, arg1); func_802EC458(func_8033A148(mapModel.model_bin_opa), arg0, arg1);
func_8033ECD8(arg0, arg1, 0x3E8); func_8033ECD8(arg0, arg1, 1000);
arg0[0] = arg0[0] + levelModel.unk28->unk6[0]; arg0[0] = arg0[0] + mapModel.description->unk6[0];
arg0[1] = arg0[1] + levelModel.unk28->unk6[1]; arg0[1] = arg0[1] + mapModel.description->unk6[1];
arg0[2] = arg0[2] + levelModel.unk28->unk6[2]; arg0[2] = arg0[2] + mapModel.description->unk6[2];
arg1[0] = arg1[0] + levelModel.unk28->unkC[0]; arg1[0] = arg1[0] + mapModel.description->unkC[0];
arg1[1] = arg1[1] + levelModel.unk28->unkC[1]; arg1[1] = arg1[1] + mapModel.description->unkC[1];
arg1[2] = arg1[2] + levelModel.unk28->unkC[2]; arg1[2] = arg1[2] + mapModel.description->unkC[2];
} }
void func_80309888(s32 arg0[3], s32 arg1[3]) { void func_80309888(s32 arg0[3], s32 arg1[3]) {
s32 i; s32 i;
func_802EC458(func_8033A148(levelModel.model_bin_opa), arg0, arg1); func_802EC458(func_8033A148(mapModel.model_bin_opa), arg0, arg1);
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
arg0[i] *= levelModel.unk30; arg0[i] *= mapModel.scale;
arg1[i] *= levelModel.unk30; arg1[i] *= mapModel.scale;
} }
} }
@ -426,14 +425,14 @@ void func_80309998(s32 arg0[3], s32 arg1[3]) {
s32 sp3C[3]; s32 sp3C[3];
s32 sp30[3]; s32 sp30[3];
func_802EC458(func_8033A148(levelModel.model_bin_opa), arg0, arg1); func_802EC458(func_8033A148(mapModel.model_bin_opa), arg0, arg1);
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
arg0[i] *= levelModel.unk30; arg0[i] *= mapModel.scale;
arg1[i] *= levelModel.unk30; arg1[i] *= mapModel.scale;
} }
if (levelModel.model_bin_xlu != NULL) { if (mapModel.model_bin_xlu != NULL) {
func_802EC458(func_8033A148(levelModel.model_bin_xlu), sp3C, sp30); func_802EC458(func_8033A148(mapModel.model_bin_xlu), sp3C, sp30);
for(j = 0; j < 3; j++){ for(j = 0; j < 3; j++){
if(sp3C[j] < arg0[j]){ if(sp3C[j] < arg0[j]){
arg0[j] = sp3C[j]; arg0[j] = sp3C[j];
@ -454,27 +453,27 @@ BKCollisionTri *func_80309B48(f32 arg0[3], f32 arg1[3], f32 arg2[3], s32 arg3) {
BKCollisionTri *sp2C; BKCollisionTri *sp2C;
BKCollisionTri *temp_v0; BKCollisionTri *temp_v0;
levelModel.unk20 = 0; mapModel.unk20 = 0;
if (levelModel.collision_xlu != NULL) { if (mapModel.collision_xlu != NULL) {
if ((arg3 & 0x80001F00) == 0x80001F00) { if ((arg3 & 0x80001F00) == 0x80001F00) {
sp2C = NULL; sp2C = NULL;
} else { } else {
sp2C = func_802E76B0(levelModel.collision_opa, func_8033A148(levelModel.model_bin_opa), arg0, arg1, arg2, arg3); sp2C = func_802E76B0(mapModel.collision_opa, func_8033A148(mapModel.model_bin_opa), arg0, arg1, arg2, arg3);
} }
temp_v0 = func_802E76B0(levelModel.collision_xlu, func_8033A148(levelModel.model_bin_xlu), arg0, arg1, arg2, arg3); temp_v0 = func_802E76B0(mapModel.collision_xlu, func_8033A148(mapModel.model_bin_xlu), arg0, arg1, arg2, arg3);
if (temp_v0 != NULL) { if (temp_v0 != NULL) {
levelModel.unk20 = (s32) levelModel.model_bin_xlu; mapModel.unk20 = (s32) mapModel.model_bin_xlu;
return temp_v0; return temp_v0;
} }
if (sp2C != NULL) { if (sp2C != NULL) {
levelModel.unk20 = (s32) levelModel.model_bin_opa; mapModel.unk20 = (s32) mapModel.model_bin_opa;
} }
return sp2C; return sp2C;
} }
else{ else{
sp2C = func_802E76B0(levelModel.collision_opa, func_8033A148(levelModel.model_bin_opa), arg0, arg1, arg2, arg3); sp2C = func_802E76B0(mapModel.collision_opa, func_8033A148(mapModel.model_bin_opa), arg0, arg1, arg2, arg3);
if (sp2C != NULL) { if (sp2C != NULL) {
levelModel.unk20 = (s32) levelModel.model_bin_opa; mapModel.unk20 = (s32) mapModel.model_bin_opa;
} }
} }
return sp2C; return sp2C;
@ -484,17 +483,17 @@ BKCollisionTri *func_80309C74(f32 arg0[3], f32 arg1[3], f32 arg2[3], s32 arg3, B
BKCollisionTri *sp2C; BKCollisionTri *sp2C;
BKCollisionTri *phi_v0; BKCollisionTri *phi_v0;
sp2C = func_802E76B0(levelModel.collision_opa, func_8033A148(levelModel.model_bin_opa), arg0, arg1, arg2, arg3); sp2C = func_802E76B0(mapModel.collision_opa, func_8033A148(mapModel.model_bin_opa), arg0, arg1, arg2, arg3);
if (sp2C != NULL) { if (sp2C != NULL) {
*arg4 = levelModel.model_bin_opa; *arg4 = mapModel.model_bin_opa;
} }
if (levelModel.collision_xlu == NULL) { if (mapModel.collision_xlu == NULL) {
return sp2C; return sp2C;
} }
phi_v0 = func_802E76B0(levelModel.collision_xlu, func_8033A148(levelModel.model_bin_xlu), arg0, arg1, arg2, arg3); phi_v0 = func_802E76B0(mapModel.collision_xlu, func_8033A148(mapModel.model_bin_xlu), arg0, arg1, arg2, arg3);
if (phi_v0 != 0) { if (phi_v0 != 0) {
*arg4 = levelModel.model_bin_xlu; *arg4 = mapModel.model_bin_xlu;
} }
return (phi_v0 != NULL) ? phi_v0 : sp2C; return (phi_v0 != NULL) ? phi_v0 : sp2C;
} }
@ -502,7 +501,7 @@ BKCollisionTri *func_80309C74(f32 arg0[3], f32 arg1[3], f32 arg2[3], s32 arg3, B
UNK_TYPE(s32) func_80309D58(UNK_TYPE(s32) arg0, UNK_TYPE(s32) arg1) { UNK_TYPE(s32) func_80309D58(UNK_TYPE(s32) arg0, UNK_TYPE(s32) arg1) {
BKMeshList *temp_v0; BKMeshList *temp_v0;
temp_v0 = func_8033A12C(levelModel.model_bin_opa); temp_v0 = func_8033A12C(mapModel.model_bin_opa);
if (temp_v0 != NULL) { if (temp_v0 != NULL) {
return func_802EC394(temp_v0, 0, 0, 1.0f, 0, arg0, arg1); return func_802EC394(temp_v0, 0, 0, 1.0f, 0, arg0, arg1);
} }
@ -513,17 +512,17 @@ UNK_TYPE(s32) func_80309DBC(f32 arg0[3], f32 arg1[3], f32 arg2, f32 arg3[3], s32
s32 sp34; s32 sp34;
s32 temp_v0_2; s32 temp_v0_2;
levelModel.unk20 = 0; mapModel.unk20 = 0;
sp34 = func_802E8E88(levelModel.collision_opa, func_8033A148(levelModel.model_bin_opa), arg0, arg1, arg2, arg3, arg4, arg5); sp34 = func_802E8E88(mapModel.collision_opa, func_8033A148(mapModel.model_bin_opa), arg0, arg1, arg2, arg3, arg4, arg5);
if (sp34 != 0) { if (sp34 != 0) {
levelModel.unk20 = (s32) levelModel.model_bin_opa; mapModel.unk20 = (s32) mapModel.model_bin_opa;
} }
if (levelModel.collision_xlu == 0) { if (mapModel.collision_xlu == 0) {
return sp34; return sp34;
} }
temp_v0_2 = func_802E8E88(levelModel.collision_xlu, func_8033A148(levelModel.model_bin_xlu), arg0, arg1, arg2, arg3, arg4, arg5); temp_v0_2 = func_802E8E88(mapModel.collision_xlu, func_8033A148(mapModel.model_bin_xlu), arg0, arg1, arg2, arg3, arg4, arg5);
if (temp_v0_2 != 0) { if (temp_v0_2 != 0) {
levelModel.unk20 = (s32) levelModel.model_bin_xlu; mapModel.unk20 = (s32) mapModel.model_bin_xlu;
return temp_v0_2; return temp_v0_2;
} }
return sp34; return sp34;
@ -533,20 +532,20 @@ UNK_TYPE(s32) func_80309EB0(f32 arg0[3], f32 arg1, f32 arg2[3], s32 arg3) {
s32 sp24; s32 sp24;
s32 temp_v0_2; s32 temp_v0_2;
sp24 = func_802E92AC(levelModel.collision_opa, func_8033A148(levelModel.model_bin_opa), arg0, arg1, arg2, arg3); sp24 = func_802E92AC(mapModel.collision_opa, func_8033A148(mapModel.model_bin_opa), arg0, arg1, arg2, arg3);
if (levelModel.collision_xlu == 0) { if (mapModel.collision_xlu == 0) {
return sp24; return sp24;
} }
temp_v0_2 = func_802E92AC(levelModel.collision_xlu, func_8033A148(levelModel.model_bin_xlu), arg0, arg1, arg2, arg3); temp_v0_2 = func_802E92AC(mapModel.collision_xlu, func_8033A148(mapModel.model_bin_xlu), arg0, arg1, arg2, arg3);
return (temp_v0_2 != 0) ? temp_v0_2 : sp24; return (temp_v0_2 != 0) ? temp_v0_2 : sp24;
} }
bool func_80309F78(void) { bool func_80309F78(void) {
return (levelModel.model_bin_opa != NULL) && (levelModel.model_bin_xlu != NULL); return (mapModel.model_bin_opa != NULL) && (mapModel.model_bin_xlu != NULL);
} }
bool func_80309FA4(enum map_e map_id){ bool func_80309FA4(enum map_e map_id){
Struct_core2_82000_0 *i_ptr; MapModelDescription *i_ptr;
for(i_ptr = D_8036ABE0; i_ptr->map_id != 0; i_ptr++){ for(i_ptr = D_8036ABE0; i_ptr->map_id != 0; i_ptr++){
if(map_id == i_ptr->map_id){ if(map_id == i_ptr->map_id){
@ -556,97 +555,97 @@ bool func_80309FA4(enum map_e map_id){
return FALSE; return FALSE;
} }
void levelModel_free(void){ void mapModel_free(void){
assetcache_release(levelModel.model_bin_opa); assetcache_release(mapModel.model_bin_opa);
if(levelModel.model_bin_xlu) if(mapModel.model_bin_xlu)
assetcache_release(levelModel.model_bin_xlu); assetcache_release(mapModel.model_bin_xlu);
if(levelModel.model_opa) if(mapModel.model_opa)
model_free(levelModel.model_opa); model_free(mapModel.model_opa);
if(levelModel.model_xlu) if(mapModel.model_xlu)
model_free(levelModel.model_xlu); model_free(mapModel.model_xlu);
func_8034A2A8(levelModel.unk24); func_8034A2A8(mapModel.unk24);
} }
enum asset_e levelModel_getOpaModelId(void){ enum asset_e mapModel_getOpaModelId(void){
return levelModel.unk28->model1_id; return mapModel.description->opa_model_id;
} }
void func_8030A078(void) { void func_8030A078(void) {
BKMeshList *sp24; BKMeshList *sp24;
Struct_core2_82000_0 *temp_v0; MapModelDescription *description;
levelModel.env_blue = 0xFF; mapModel.env_blue = 0xFF;
levelModel.env_green = 0xFF; mapModel.env_green = 0xFF;
levelModel.env_red = 0xFF; mapModel.env_red = 0xFF;
temp_v0 = func_80308F90(map_get());; description = _mapModel_mapIdToDescription(map_get());;
levelModel.unk28 = temp_v0; mapModel.description = description;
levelModel.unk30 = (f32) temp_v0->unk14; mapModel.scale = (f32) description->scale;
levelModel.model_bin_opa = (BKModelBin *)assetcache_get(levelModel.unk28->model1_id); mapModel.model_bin_opa = (BKModelBin *)assetcache_get(mapModel.description->opa_model_id);
levelModel.collision_opa = func_8033A084(levelModel.model_bin_opa); mapModel.collision_opa = func_8033A084(mapModel.model_bin_opa);
levelModel.unk20 = 0; mapModel.unk20 = 0;
if (levelModel.unk28->model2_id != 0) { if (mapModel.description->xlu_model_id != 0) {
levelModel.model_bin_xlu = (BKModelBin *)assetcache_get(levelModel.unk28->model2_id); mapModel.model_bin_xlu = (BKModelBin *)assetcache_get(mapModel.description->xlu_model_id);
levelModel.collision_xlu = func_8033A084(levelModel.model_bin_xlu); mapModel.collision_xlu = func_8033A084(mapModel.model_bin_xlu);
} else { } else {
levelModel.model_bin_xlu = NULL; mapModel.model_bin_xlu = NULL;
levelModel.collision_xlu = NULL; mapModel.collision_xlu = NULL;
} }
sp24 = func_8033A0B0(levelModel.model_bin_opa); sp24 = func_8033A0B0(mapModel.model_bin_opa);
if (sp24 != NULL) { if (sp24 != NULL) {
levelModel.model_opa = func_8033F5F8(sp24, func_8033A148(levelModel.model_bin_opa)); mapModel.model_opa = func_8033F5F8(sp24, func_8033A148(mapModel.model_bin_opa));
} else { } else {
levelModel.model_opa = NULL; mapModel.model_opa = NULL;
} }
if (levelModel.model_opa != NULL) { if (mapModel.model_opa != NULL) {
func_8034C6DC(levelModel.model_opa); func_8034C6DC(mapModel.model_opa);
} }
if (levelModel.model_bin_xlu != NULL) { if (mapModel.model_bin_xlu != NULL) {
sp24 = func_8033A0B0(levelModel.model_bin_xlu); sp24 = func_8033A0B0(mapModel.model_bin_xlu);
} }
else{ else{
sp24 = NULL; sp24 = NULL;
} }
if (sp24 != NULL) { if (sp24 != NULL) {
levelModel.model_xlu = func_8033F5F8(sp24, func_8033A148(levelModel.model_bin_xlu)); mapModel.model_xlu = func_8033F5F8(sp24, func_8033A148(mapModel.model_bin_xlu));
} else { } else {
levelModel.model_xlu = 0; mapModel.model_xlu = 0;
} }
if (levelModel.model_xlu != NULL) { if (mapModel.model_xlu != NULL) {
func_8034C6DC(levelModel.model_xlu); func_8034C6DC(mapModel.model_xlu);
} }
levelModel.unk24 = func_8034A2C8(); mapModel.unk24 = func_8034A2C8();
func_80320B44(func_80309B48, func_80309DBC, func_80309EB0, func_80309794); func_80320B44(func_80309B48, func_80309DBC, func_80309EB0, func_80309794);
if (( levelModel.model_bin_opa != NULL) && (func_8033A110( levelModel.model_bin_opa) != NULL)) { if (( mapModel.model_bin_opa != NULL) && (func_8033A110( mapModel.model_bin_opa) != NULL)) {
levelModel.unk0 = func_80349C3C(); mapModel.unk0 = func_80349C3C();
func_80349D00(levelModel.unk0, func_8033A110(levelModel.model_bin_opa)); func_80349D00(mapModel.unk0, func_8033A110(mapModel.model_bin_opa));
} else { } else {
levelModel.unk0 = NULL; mapModel.unk0 = NULL;
} }
if ((levelModel.model_bin_xlu != NULL) && (func_8033A110(levelModel.model_bin_xlu) != 0)) { if ((mapModel.model_bin_xlu != NULL) && (func_8033A110(mapModel.model_bin_xlu) != 0)) {
levelModel.unk4 = func_80349C3C(); mapModel.unk4 = func_80349C3C();
func_80349D00(levelModel.unk4, func_8033A110(levelModel.model_bin_xlu)); func_80349D00(mapModel.unk4, func_8033A110(mapModel.model_bin_xlu));
} }
else{ else{
levelModel.unk4 = NULL; mapModel.unk4 = NULL;
} }
} }
void levelModel_setEnvColor(s32 r, s32 g, s32 b){ void mapModel_setEnvColor(s32 r, s32 g, s32 b){
levelModel.env_red = r; mapModel.env_red = r;
levelModel.env_green = g; mapModel.env_green = g;
levelModel.env_blue = b; mapModel.env_blue = b;
} }
void levelModel_defrag(void){ void mapModel_defrag(void){
if(levelModel.unk24 != NULL){ if(mapModel.unk24 != NULL){
levelModel.unk24 = func_8034A348(levelModel.unk24); mapModel.unk24 = func_8034A348(mapModel.unk24);
} }
} }

View File

@ -890,7 +890,7 @@ void func_80338BFC(Gfx **gfx, Mtx **mtx, void *arg2){
//CmdC_SELECTOR //CmdC_SELECTOR
#ifndef NONMATCHING #ifndef NONMATCHING
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_B1400/func_80338CD0.s") #pragma GLOBAL_ASM("asm/nonmatchings/core2/modelRender/func_80338CD0.s")
#else #else
void func_80338CD0(Gfx **gfx, Mtx **mtx, void *arg2){ void func_80338CD0(Gfx **gfx, Mtx **mtx, void *arg2){
GeoCmdC *cmd = (GeoCmdC *)arg2; GeoCmdC *cmd = (GeoCmdC *)arg2;

View File

@ -52,10 +52,10 @@ static void _playerModel_updateModelYaw(void){
} }
} }
void playerModel_80291A50(s32 arg0, f32 arg1[3]){ void playerModel_80291A50(s32 arg0, f32 dst[3]){
func_8034A174(D_80363780, arg0, arg1); func_8034A174(D_80363780, arg0, dst);
if(func_802582EC(arg1)){ if(func_802582EC(dst)){
_player_getPosition(arg1); _player_getPosition(dst);
} }
} }

View File

@ -78,7 +78,7 @@ extern void func_80324CFC(f32, s16, s16);
extern void gczoombox_open(gczoombox_t *); extern void gczoombox_open(gczoombox_t *);
extern void gczoombox_maximize(gczoombox_t *); extern void gczoombox_maximize(gczoombox_t *);
extern void *levelModel_getModel(s32); extern void *mapModel_getModel(s32);
extern void func_8029A95C(s32); // set transformation extern void func_8029A95C(s32); // set transformation
//typedef migrated to "inlcude/core2/code_C9E70.h" //typedef migrated to "inlcude/core2/code_C9E70.h"
@ -628,7 +628,7 @@ void lair_func_8038CF18(void)
if (map_get() != MAP_8E_GL_FURNACE_FUN) if (map_get() != MAP_8E_GL_FURNACE_FUN)
return; return;
D_8037DCB8->unk0 = levelModel_getModel(0); D_8037DCB8->unk0 = mapModel_getModel(0);
D_8037DCB8->unk11 = 0; D_8037DCB8->unk11 = 0;
if (func_803203FC(2) && !func_803203FC(4)) if (func_803203FC(2) && !func_803203FC(4))