Merge pull request #338 from gamemasterplc/main
Decompile first translation unit of m434
This commit is contained in:
commit
caa5e8ccbf
8 changed files with 703 additions and 50 deletions
|
|
@ -82,40 +82,40 @@ fn_1_8F3C = .text:0x00008F3C; // type:function size:0x64
|
|||
fn_1_8FA0 = .text:0x00008FA0; // type:function size:0x1EC
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
||||
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float
|
||||
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:float
|
||||
lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float
|
||||
|
|
@ -270,17 +270,21 @@ lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:4byte
|
|||
lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x48
|
||||
lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x48
|
||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0xC data:float
|
||||
lbl_1_data_C = .data:0x0000000C; // type:object size:0x18 data:float
|
||||
lbl_1_data_24 = .data:0x00000024; // type:object size:0x28
|
||||
lbl_1_data_4C = .data:0x0000004C; // type:object size:0x23 data:string
|
||||
lbl_1_data_C = .data:0x0000000C; // type:object size:0xC data:float
|
||||
lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float
|
||||
lbl_1_data_24 = .data:0x00000024; // type:object size:0x4
|
||||
lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float
|
||||
lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float
|
||||
lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float
|
||||
lbl_1_data_4C = .data:0x0000004C; // type:object size:0x23 scope:local data:string
|
||||
lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte
|
||||
lbl_1_data_74 = .data:0x00000074; // type:object size:0x12 data:string
|
||||
lbl_1_data_86 = .data:0x00000086; // type:object size:0x1C data:string
|
||||
lbl_1_data_74 = .data:0x00000074; // type:object size:0x12 scope:local data:string
|
||||
lbl_1_data_86 = .data:0x00000086; // type:object size:0x1C scope:local data:string
|
||||
lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8
|
||||
lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8
|
||||
lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xC
|
||||
lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x30
|
||||
lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x10
|
||||
lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x30 data:float
|
||||
lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x10 data:float
|
||||
lbl_1_data_100 = .data:0x00000100; // type:object size:0x34
|
||||
lbl_1_data_134 = .data:0x00000134; // type:object size:0x5 data:string
|
||||
lbl_1_data_139 = .data:0x00000139; // type:object size:0x4 data:byte
|
||||
|
|
@ -312,13 +316,15 @@ lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte
|
|||
lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x8
|
||||
lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x8 data:2byte
|
||||
lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x4 data:2byte
|
||||
lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_3B2 = .bss:0x000003B2; // type:object size:0x6 data:2byte
|
||||
lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_3BC = .bss:0x000003BC; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_3C2 = .bss:0x000003C2; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x8 data:4byte
|
||||
lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_3C8 = .bss:0x000003C8; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_3D0 = .bss:0x000003D0; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_3D4 = .bss:0x000003D4; // type:object size:0x4 data:4byte
|
||||
|
|
|
|||
|
|
@ -958,9 +958,11 @@ Runtime.PPCEABI.H/NMWException.cp:
|
|||
extab start:0x80005650 end:0x80005670
|
||||
extabindex start:0x80005718 end:0x80005748
|
||||
.text start:0x800E2108 end:0x800E23CC
|
||||
.sdata start:0x801D39A8 end:0x801D39B0
|
||||
|
||||
Runtime.PPCEABI.H/runtime.c:
|
||||
.text start:0x800E23CC end:0x800E2AA8
|
||||
.rodata start:0x8011E4F0 end:0x8011E508
|
||||
.sdata start:0x801D39A8 end:0x801D39B0
|
||||
|
||||
Runtime.PPCEABI.H/__init_cpp_exceptions.cpp:
|
||||
.text start:0x800E2AA8 end:0x800E2B24
|
||||
|
|
|
|||
|
|
@ -602,6 +602,7 @@ config.libs = [
|
|||
Object(NonMatching, "Runtime.PPCEABI.H/New.cp"),
|
||||
Object(NonMatching, "Runtime.PPCEABI.H/NewMore.cp"),
|
||||
Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cp"),
|
||||
Object(NonMatching, "Runtime.PPCEABI.H/runtime.c"),
|
||||
Object(Matching, "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"),
|
||||
Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp"),
|
||||
Object(NonMatching, "Runtime.PPCEABI.H/GCN_mem_alloc.c"),
|
||||
|
|
@ -1093,7 +1094,7 @@ config.libs = [
|
|||
"m434Dll",
|
||||
objects={
|
||||
Object(Matching, "REL/executor.c"),
|
||||
Object(NonMatching, "REL/m434Dll/main.c"),
|
||||
Object(Matching, "REL/m434Dll/main.c"),
|
||||
Object(NonMatching, "REL/m434Dll/map.c"),
|
||||
Object(NonMatching, "REL/m434Dll/player.c"),
|
||||
Object(NonMatching, "REL/m434Dll/fish.c"),
|
||||
|
|
|
|||
23
include/REL/m434Dll.h
Normal file
23
include/REL/m434Dll.h
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#ifndef M434DLL_H
|
||||
#define M434DLL_H
|
||||
|
||||
#include "game/object.h"
|
||||
|
||||
void fn_1_1C44(s32 arg0, s32 arg1);
|
||||
s32 fn_1_1C88(s32 arg0);
|
||||
s32 fn_1_1CB8(void);
|
||||
s32 fn_1_1D54(void);
|
||||
void fn_1_1D64(s32 arg0);
|
||||
s32 fn_1_1D74(s32 arg0);
|
||||
|
||||
void fn_1_1DB0(Process *objman);
|
||||
void fn_1_1E44(void);
|
||||
void fn_1_43AC(Vec *arg0);
|
||||
void fn_1_47EC(Vec *arg0);
|
||||
void fn_1_4854(Process *objman);
|
||||
void fn_1_4964(void);
|
||||
void fn_1_6860(Process *objman);
|
||||
void fn_1_6A84(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -17,7 +17,7 @@ s32 HuAudStreamPlay(char *name, s32 arg1);
|
|||
void HuAudStreamVolSet(s16 vol);
|
||||
void HuAudStreamPauseOn(void);
|
||||
void HuAudStreamPauseOff(void);
|
||||
void HuAudStreamFadeOut(void);
|
||||
void HuAudStreamFadeOut(s32 arg0);
|
||||
void HuAudAllStop(void);
|
||||
void HuAudFadeOut(s32 arg0);
|
||||
s32 HuAudFXPlay(s32 arg0);
|
||||
|
|
|
|||
621
src/REL/m434Dll/main.c
Normal file
621
src/REL/m434Dll/main.c
Normal file
|
|
@ -0,0 +1,621 @@
|
|||
#include "game/object.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
#include "game/minigame_seq.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "REL/m434Dll.h"
|
||||
#include "math.h"
|
||||
#include "ext_math.h"
|
||||
|
||||
#include "rel_sqrt_consts.h"
|
||||
|
||||
|
||||
typedef struct camera_view {
|
||||
float zoom;
|
||||
Vec pos;
|
||||
Vec rot;
|
||||
} CameraView;
|
||||
|
||||
Vec lbl_1_data_0 = { -700, 2500, -700 };
|
||||
Vec lbl_1_data_C = { 0.3, -0.8, 0.3 };
|
||||
Vec lbl_1_data_18 = { 34.75, -24.75, 3500 };
|
||||
GXColor lbl_1_data_24 = { 255, 255, 255, 255 };
|
||||
Vec lbl_1_data_28 = { -700, 2500, 700 };
|
||||
Vec lbl_1_data_34 = { 0, 1, 0 };
|
||||
Vec lbl_1_data_40 = { 0, 0, 0 };
|
||||
|
||||
|
||||
omObjData *lbl_1_bss_3D4;
|
||||
omObjData *lbl_1_bss_3D0;
|
||||
omObjData *lbl_1_bss_3CC;
|
||||
omObjData *lbl_1_bss_3C8;
|
||||
omObjData *lbl_1_bss_3C4;
|
||||
s16 lbl_1_bss_3C2;
|
||||
s16 lbl_1_bss_3C0;
|
||||
s32 lbl_1_bss_3BC;
|
||||
s32 lbl_1_bss_3B8;
|
||||
s16 lbl_1_bss_3B2[3];
|
||||
s16 lbl_1_bss_3B0;
|
||||
s16 lbl_1_bss_3AC[2];
|
||||
s16 lbl_1_bss_3AA;
|
||||
s16 lbl_1_bss_3A8;
|
||||
s16 lbl_1_bss_3A0[4];
|
||||
s32 lbl_1_bss_39C;
|
||||
CameraView lbl_1_bss_1C[32];
|
||||
s32 lbl_1_bss_18;
|
||||
s32 lbl_1_bss_10[2];
|
||||
s32 lbl_1_bss_8[2];
|
||||
s32 lbl_1_bss_4;
|
||||
float lbl_1_bss_0;
|
||||
|
||||
void fn_1_4FC(omObjData *object);
|
||||
void fn_1_CC8(omObjData *object);
|
||||
s32 fn_1_10F4(void);
|
||||
void fn_1_1104(Process *objman);
|
||||
void fn_1_1684(void);
|
||||
void fn_1_16B4(void);
|
||||
|
||||
void ModuleProlog(void)
|
||||
{
|
||||
s32 i;
|
||||
Process *objman;
|
||||
OSReport("******* M434ObjectSetup *********\n");
|
||||
objman = omInitObjMan(50, 8192);
|
||||
omGameSysInit(objman);
|
||||
CZoom = 2097.6f;
|
||||
Center.x = 0;
|
||||
Center.y = 172;
|
||||
Center.z = 361;
|
||||
CRot.x = -32;
|
||||
CRot.y = 0;
|
||||
CRot.z = 0;
|
||||
for(i=0; i<4; i++) {
|
||||
CZoomM[i] = CZoom;
|
||||
CenterM[i] = Center;
|
||||
CRotM[i] = CRot;
|
||||
}
|
||||
fn_1_16B4();
|
||||
Hu3DCameraCreate(15);
|
||||
Hu3DCameraPerspectiveSet(2, 30, 20, 25000, 1.2f);
|
||||
Hu3DCameraViewportSet(2, 0, 0, 320, 240, 0, 1);
|
||||
Hu3DCameraPerspectiveSet(13, 30, 20, 25000, 1.2f);
|
||||
Hu3DCameraViewportSet(13, 0, 0, 640, 480, 0, 1);
|
||||
lbl_1_bss_3CC = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti);
|
||||
lbl_1_bss_3CC->work[0] = 4;
|
||||
HuAudSndGrpSet(59);
|
||||
lbl_1_data_C.x = -lbl_1_data_0.x;
|
||||
lbl_1_data_C.y = -lbl_1_data_0.y;
|
||||
lbl_1_data_C.z = -lbl_1_data_0.z;
|
||||
VECNormalize(&lbl_1_data_C, &lbl_1_data_C);
|
||||
lbl_1_bss_3B0 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24);
|
||||
Hu3DGLightInfinitytSet(lbl_1_bss_3B0);
|
||||
Hu3DGLightStaticSet(lbl_1_bss_3B0, 1);
|
||||
for(i=0; i<4; i++) {
|
||||
lbl_1_bss_3A0[i] = GWPlayerCfg[i].group;
|
||||
}
|
||||
lbl_1_bss_3D4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_4FC);
|
||||
lbl_1_bss_3D0 = omAddObjEx(objman, 0, 1, 0, -1, fn_1_CC8);
|
||||
fn_1_1DB0(objman);
|
||||
fn_1_4854(objman);
|
||||
fn_1_6860(objman);
|
||||
fn_1_1104(objman);
|
||||
}
|
||||
|
||||
void fn_1_558(omObjData *object);
|
||||
|
||||
void fn_1_4FC(omObjData *object)
|
||||
{
|
||||
fn_1_1D64(0);
|
||||
lbl_1_bss_3AA = 0;
|
||||
lbl_1_bss_3A8 = 0;
|
||||
object->func = fn_1_558;
|
||||
}
|
||||
|
||||
s32 lbl_1_data_70 = -1;
|
||||
|
||||
void fn_1_C64(omObjData *object);
|
||||
void fn_1_1638(s32 arg0);
|
||||
|
||||
void fn_1_558(omObjData *object)
|
||||
{
|
||||
s32 temp_r31;
|
||||
s32 temp_r29;
|
||||
s32 sp10[2][4];
|
||||
s32 sp8[2];
|
||||
|
||||
switch(fn_1_1D54()) {
|
||||
case 0:
|
||||
lbl_1_bss_3C2 = 60;
|
||||
lbl_1_bss_3C0 = 60;
|
||||
fn_1_1D64(1);
|
||||
lbl_1_bss_10[1] = 60;
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
HuAudFXPlay(1736);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if(fn_1_10F4() == 2) {
|
||||
if(lbl_1_bss_10[1] != 0) {
|
||||
if(--lbl_1_bss_10[1] == 0) {
|
||||
lbl_1_bss_3BC = MGSeqStartCreate();
|
||||
HuAudStreamPlay("sound/mu_047a.adp", 1);
|
||||
}
|
||||
} else {
|
||||
if(MGSeqStatGet(lbl_1_bss_3BC) == 0) {
|
||||
fn_1_1D64(2);
|
||||
HuAudFXPlay(1738);
|
||||
lbl_1_bss_3B8 = MGSeqTimerCreate(60);
|
||||
fn_1_1638(1);
|
||||
}
|
||||
if(lbl_1_data_70 < 0 && (MGSeqStatGet(lbl_1_bss_3BC) & 0x10)) {
|
||||
lbl_1_data_70 = HuAudSeqPlay(67);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if(--lbl_1_bss_3C0 == 0) {
|
||||
lbl_1_bss_3C2--;
|
||||
MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2);
|
||||
lbl_1_bss_3C0 = 60;
|
||||
}
|
||||
if(!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) {
|
||||
fn_1_1D64(3);
|
||||
lbl_1_bss_10[1] = 60;
|
||||
lbl_1_bss_3BC = MGSeqFinishCreate();
|
||||
HuAudStreamFadeOut(30);
|
||||
HuAudSeqFadeOut(lbl_1_data_70, 100);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if(lbl_1_bss_3B8 >= 0) {
|
||||
MGSeqParamSet(lbl_1_bss_3B8, 2, -1);
|
||||
lbl_1_bss_3B8 = -1;
|
||||
}
|
||||
if(MGSeqStatGet(lbl_1_bss_3BC) == 0) {
|
||||
fn_1_1D64(4);
|
||||
lbl_1_bss_10[1] = 60;
|
||||
}
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if(--lbl_1_bss_10[1] == 0) {
|
||||
sp8[0] = sp8[1] = 0;
|
||||
for(temp_r31=0; temp_r31<4; temp_r31++) {
|
||||
temp_r29 = fn_1_1D74(temp_r31);
|
||||
sp10[temp_r29][sp8[temp_r29]++] = temp_r31;
|
||||
}
|
||||
lbl_1_bss_3AA = fn_1_1CB8();
|
||||
switch(lbl_1_bss_3AA) {
|
||||
case -1:
|
||||
lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[0][0]].character;
|
||||
lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[0][1]].character;
|
||||
MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1);
|
||||
GWPlayerCoinWinSet(sp10[0][0], 10);
|
||||
GWPlayerCoinWinSet(sp10[0][1], 10);
|
||||
HuAudSStreamPlay(1);
|
||||
break;
|
||||
|
||||
case 0:
|
||||
MGSeqDrawCreate();
|
||||
HuAudSStreamPlay(4);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[1][0]].character;
|
||||
lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[1][1]].character;
|
||||
MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1);
|
||||
GWPlayerCoinWinSet(sp10[1][0], 10);
|
||||
GWPlayerCoinWinSet(sp10[1][1], 10);
|
||||
HuAudSStreamPlay(1);
|
||||
break;
|
||||
}
|
||||
fn_1_1D64(5);
|
||||
lbl_1_bss_10[1] = 210;
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if(--lbl_1_bss_10[1] == 0) {
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
object->func = fn_1_C64;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
for(temp_r31=0; temp_r31<4; temp_r31++) {
|
||||
CZoomM[temp_r31] = CZoom;
|
||||
CRotM[temp_r31] = CRot;
|
||||
CenterM[temp_r31] = Center;
|
||||
|
||||
}
|
||||
if(omSysExitReq && !WipeStatGet()) {
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
object->func = fn_1_C64;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_C64(omObjData *object)
|
||||
{
|
||||
if(WipeStatGet()) {
|
||||
return;
|
||||
}
|
||||
fn_1_1E44();
|
||||
fn_1_4964();
|
||||
fn_1_6A84();
|
||||
fn_1_1684();
|
||||
MGSeqKillAll();
|
||||
HuAudFadeOut(1);
|
||||
omOvlReturnEx(1, 1);
|
||||
OSReport("******* M434Exit *********\n");
|
||||
}
|
||||
|
||||
void fn_1_E44(omObjData *object);
|
||||
void fn_1_16D8(void);
|
||||
void fn_1_1950(float arg0, float arg1, float arg2, float arg3, float arg4, float arg5, float arg6);
|
||||
void fn_1_1A00(s32 arg0);
|
||||
void fn_1_1A10(float arg0);
|
||||
|
||||
void fn_1_CC8(omObjData *object)
|
||||
{
|
||||
lbl_1_bss_8[0] = 0;
|
||||
lbl_1_bss_8[1] = 140;
|
||||
fn_1_16D8();
|
||||
fn_1_1950(302, 0, 125, -188, -24, 28, 0);
|
||||
fn_1_1A00(1);
|
||||
object->func = fn_1_E44;
|
||||
omSetStatBit(object, 0x100);
|
||||
object->model[0] = Hu3DModelCreateFile(0x410007);
|
||||
Hu3DModelCameraSet(object->model[0], 4);
|
||||
Hu3DModelLayerSet(object->model[0], 4);
|
||||
Hu3DModelPosSet(object->model[0], -50, -40, -540);
|
||||
Hu3DMotionSpeedSet(object->model[0], 1);
|
||||
Hu3DModelRotSet(object->model[0], 0, 70, 0);
|
||||
|
||||
}
|
||||
|
||||
s32 lbl_1_data_A4[] = { 74, 98 };
|
||||
float lbl_1_data_AC[] = { -120, -267.9 };
|
||||
|
||||
void fn_1_10BC(omObjData *object);
|
||||
|
||||
void fn_1_E44(omObjData *object)
|
||||
{
|
||||
ModelData *temp_r31;
|
||||
s32 temp_r30;
|
||||
Vec sp8;
|
||||
switch(lbl_1_bss_8[0]) {
|
||||
case 0:
|
||||
if(--lbl_1_bss_8[1] == 0) {
|
||||
Hu3DModelAttrSet(object->model[0], 1);
|
||||
lbl_1_bss_8[0] = 1;
|
||||
}
|
||||
for(temp_r30=0; temp_r30<2u; temp_r30++) {
|
||||
if(lbl_1_bss_4 == lbl_1_data_A4[temp_r30]) {
|
||||
temp_r31 = &Hu3DData[object->model[0]];
|
||||
sp8.x = temp_r31->pos.x+(lbl_1_data_AC[temp_r30]*cosd(temp_r31->rot.y));
|
||||
sp8.y = -15.000001f;
|
||||
sp8.z = temp_r31->pos.z-(lbl_1_data_AC[temp_r30]*sind(temp_r31->rot.y));
|
||||
if(temp_r30 == 0) {
|
||||
fn_1_47EC(&sp8);
|
||||
HuAudFXPlay(1731);
|
||||
} else {
|
||||
fn_1_43AC(&sp8);
|
||||
HuAudFXPlay(1739);
|
||||
}
|
||||
}
|
||||
}
|
||||
lbl_1_bss_4++;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
lbl_1_bss_0 += 0.02f;
|
||||
if(lbl_1_bss_0 >= 1.0f) {
|
||||
lbl_1_bss_8[0] = 2;
|
||||
lbl_1_bss_0 = 1.0f;
|
||||
object->func = fn_1_10BC;
|
||||
}
|
||||
fn_1_1A10(lbl_1_bss_0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1788(void);
|
||||
|
||||
void fn_1_10BC(omObjData *object)
|
||||
{
|
||||
fn_1_1788();
|
||||
fn_1_1788();
|
||||
object->func = NULL;
|
||||
}
|
||||
|
||||
s32 fn_1_10F4(void)
|
||||
{
|
||||
return lbl_1_bss_8[0];
|
||||
}
|
||||
|
||||
void fn_1_1150(omObjData *object);
|
||||
|
||||
u16 lbl_1_data_B4[6] = {
|
||||
0, 1, 2, 3, 4, 4
|
||||
};
|
||||
|
||||
float lbl_1_data_C0[6][2] = {
|
||||
0,0,
|
||||
0,0,
|
||||
-33,-2,
|
||||
-9,-2,
|
||||
11,-2,
|
||||
31,-2
|
||||
};
|
||||
|
||||
float lbl_1_data_F0[2][2] = {
|
||||
104, 56,
|
||||
472, 56
|
||||
};
|
||||
|
||||
typedef struct work_1150 {
|
||||
s32 unk0;
|
||||
s16 unk4;
|
||||
s16 unk6[6];
|
||||
u16 unk12;
|
||||
} Work1150;
|
||||
|
||||
void fn_1_1104(Process *objman)
|
||||
{
|
||||
lbl_1_bss_3C4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_1150);
|
||||
}
|
||||
|
||||
void fn_1_1470(omObjData *object);
|
||||
|
||||
void fn_1_1150(omObjData *object)
|
||||
{
|
||||
Work1150 *temp_r31;
|
||||
u32 temp_r30;
|
||||
s32 temp_r29;
|
||||
temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2*sizeof(Work1150), MEMORY_DEFAULT_NUM);
|
||||
object->data = temp_r31;
|
||||
memset(object->data, 0, 2*sizeof(Work1150));
|
||||
for(temp_r29=0; temp_r29<2; temp_r31++, temp_r29++) {
|
||||
for(temp_r30=0; temp_r30<6; temp_r30++) {
|
||||
switch(lbl_1_data_B4[temp_r30]) {
|
||||
case 0:
|
||||
temp_r31->unk6[temp_r30] = espEntry(0x61001D, 1, 0);
|
||||
espPriSet(temp_r31->unk6[temp_r30], 256);
|
||||
espColorSet(temp_r31->unk6[temp_r30], 0, 0, 0);
|
||||
espTPLvlSet(temp_r31->unk6[temp_r30], 0.5);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
temp_r31->unk6[temp_r30] = espEntry((temp_r29 == 0) ? 0x61001B : 0x61001C, 1, 0);
|
||||
espPriSet(temp_r31->unk6[temp_r30], 256);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
temp_r31->unk6[temp_r30] = espEntry(0x41000C, 1, 0);
|
||||
espPriSet(temp_r31->unk6[temp_r30], 256);
|
||||
espScaleSet(temp_r31->unk6[temp_r30], 0.75, 0.75);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
temp_r31->unk6[temp_r30] = espEntry(0x41000D, 1, 0);
|
||||
espPriSet(temp_r31->unk6[temp_r30], 256);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
temp_r31->unk6[temp_r30] = espEntry(0x610033, 1, 0);
|
||||
espPriSet(temp_r31->unk6[temp_r30], 255);
|
||||
break;
|
||||
}
|
||||
espDispOff(temp_r31->unk6[temp_r30]);
|
||||
espDrawNoSet(temp_r31->unk6[temp_r30], 0);
|
||||
espAttrSet(temp_r31->unk6[temp_r30], 1);
|
||||
espPosSet(temp_r31->unk6[temp_r30], lbl_1_data_F0[temp_r29][0]+lbl_1_data_C0[temp_r30][0], lbl_1_data_F0[temp_r29][1]+lbl_1_data_C0[temp_r30][1]);
|
||||
}
|
||||
temp_r31->unk0 = -1;
|
||||
}
|
||||
HuDataDirClose(0x610000);
|
||||
object->func = fn_1_1470;
|
||||
}
|
||||
|
||||
void fn_1_1470(omObjData *object)
|
||||
{
|
||||
float temp_f31;
|
||||
Work1150 *temp_r31;
|
||||
s32 temp_r30;
|
||||
s32 temp_r29;
|
||||
temp_r31 = object->data;
|
||||
for(temp_r29=0; temp_r29<2; temp_r29++, temp_r31++) {
|
||||
if(temp_r31->unk0 >= 0) {
|
||||
if(temp_r31->unk0 == 0) {
|
||||
for(temp_r30=0; temp_r30<6; temp_r30++) {
|
||||
espDispOn(temp_r31->unk6[temp_r30]);
|
||||
}
|
||||
temp_r31->unk0++;
|
||||
}
|
||||
if(temp_r31->unk12) {
|
||||
temp_r31->unk12--;
|
||||
temp_f31 = (0.5*sind((180.0f*temp_r31->unk12)/16.0f))+1.0;
|
||||
espScaleSet(temp_r31->unk6[4], temp_f31, temp_f31);
|
||||
espScaleSet(temp_r31->unk6[5], temp_f31, temp_f31);
|
||||
}
|
||||
espBankSet(temp_r31->unk6[4], temp_r31->unk4/10);
|
||||
espBankSet(temp_r31->unk6[5], temp_r31->unk4%10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1638(s32 arg0)
|
||||
{
|
||||
Work1150 *temp_r31;
|
||||
s32 temp_r30;
|
||||
temp_r31 = lbl_1_bss_3C4->data;
|
||||
for(temp_r30=0; temp_r30<2; temp_r30++, temp_r31++) {
|
||||
temp_r31->unk0 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1684(void)
|
||||
{
|
||||
HuMemDirectFree(lbl_1_bss_3C4->data);
|
||||
}
|
||||
|
||||
void fn_1_16B4(void)
|
||||
{
|
||||
lbl_1_bss_39C = 0;
|
||||
lbl_1_bss_18 = 0;
|
||||
}
|
||||
|
||||
void fn_1_16D8(void)
|
||||
{
|
||||
CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++];
|
||||
temp_r31->zoom = CZoom;
|
||||
temp_r31->pos.x = Center.x;
|
||||
temp_r31->pos.y = Center.y;
|
||||
temp_r31->pos.z = Center.z;
|
||||
temp_r31->rot.x = CRot.x;
|
||||
temp_r31->rot.y = CRot.y;
|
||||
temp_r31->rot.z = CRot.z;
|
||||
}
|
||||
|
||||
void fn_1_1788(void)
|
||||
{
|
||||
CameraView *temp_r31 = &lbl_1_bss_1C[--lbl_1_bss_39C];
|
||||
CZoom = temp_r31->zoom;
|
||||
Center.x = temp_r31->pos.x;
|
||||
Center.y = temp_r31->pos.y;
|
||||
Center.z = temp_r31->pos.z;
|
||||
CRot.x = temp_r31->rot.x;
|
||||
CRot.y = temp_r31->rot.y;
|
||||
CRot.z = temp_r31->rot.z;
|
||||
}
|
||||
|
||||
void fn_1_1838(CameraView *arg0)
|
||||
{
|
||||
CameraView *temp_r30;
|
||||
CameraView sp8;
|
||||
sp8 = lbl_1_bss_1C[lbl_1_bss_39C++];
|
||||
temp_r30 = &sp8;
|
||||
memcpy(temp_r30, arg0, sizeof(CameraView));
|
||||
CZoom = arg0->zoom;
|
||||
Center.x = arg0->pos.x;
|
||||
Center.y = arg0->pos.y;
|
||||
Center.z = arg0->pos.z;
|
||||
CRot.x = arg0->rot.x;
|
||||
CRot.y = arg0->rot.y;
|
||||
CRot.z = arg0->rot.z;
|
||||
}
|
||||
|
||||
void fn_1_1950(float arg0, float arg1, float arg2, float arg3, float arg4, float arg5, float arg6)
|
||||
{
|
||||
CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++];
|
||||
temp_r31->zoom = CZoom = arg0;
|
||||
temp_r31->pos.x = Center.x = arg1;
|
||||
temp_r31->pos.y = Center.y = arg2;
|
||||
temp_r31->pos.z = Center.z = arg3;
|
||||
temp_r31->rot.x = CRot.x = arg4;
|
||||
temp_r31->rot.y = CRot.y = arg5;
|
||||
temp_r31->rot.z = CRot.z = arg6;
|
||||
}
|
||||
|
||||
void fn_1_1A00(s32 arg0)
|
||||
{
|
||||
lbl_1_bss_18 = arg0;
|
||||
}
|
||||
|
||||
#define LERP_PARAM(view1, view2, field, weight) ((view1)->field+)
|
||||
|
||||
void fn_1_1A10(float arg0)
|
||||
{
|
||||
float weight;
|
||||
CameraView *view1 = &lbl_1_bss_1C[lbl_1_bss_39C-1];
|
||||
CameraView *view2 = view1-1;
|
||||
if(lbl_1_bss_39C < 2) {
|
||||
return;
|
||||
}
|
||||
switch(lbl_1_bss_18) {
|
||||
case 0:
|
||||
weight = arg0;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
weight = sind(90.0f*arg0);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
weight = sind(90.0f*arg0);
|
||||
weight *= weight;
|
||||
break;
|
||||
}
|
||||
|
||||
CZoom = view1->zoom+(weight*(view2->zoom-view1->zoom));
|
||||
Center.x = view1->pos.x+(weight*(view2->pos.x-view1->pos.x));
|
||||
Center.y = view1->pos.y+(weight*(view2->pos.y-view1->pos.y));
|
||||
Center.z = view1->pos.z+(weight*(view2->pos.z-view1->pos.z));
|
||||
CRot.x = view1->rot.x+(weight*(view2->rot.x-view1->rot.x));
|
||||
CRot.y = view1->rot.y+(weight*(view2->rot.y-view1->rot.y));
|
||||
CRot.z = view1->rot.z+(weight*(view2->rot.z-view1->rot.z));
|
||||
}
|
||||
|
||||
void fn_1_1C44(s32 arg0, s32 arg1)
|
||||
{
|
||||
Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0];
|
||||
temp_r31->unk4 += arg1;
|
||||
temp_r31->unk12 = 16;
|
||||
}
|
||||
|
||||
s32 fn_1_1C88(s32 arg0)
|
||||
{
|
||||
Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0];
|
||||
return temp_r31->unk4;
|
||||
}
|
||||
|
||||
s32 fn_1_1CB8(void)
|
||||
{
|
||||
s32 temp_r31 = fn_1_1C88(0);
|
||||
s32 temp_r30 = fn_1_1C88(1);
|
||||
if(temp_r31 == temp_r30) {
|
||||
return 0;
|
||||
}
|
||||
if(temp_r31 > temp_r30) {
|
||||
return -1;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
s16 fn_1_1D44(void)
|
||||
{
|
||||
return lbl_1_bss_3C2;
|
||||
}
|
||||
|
||||
s32 fn_1_1D54(void)
|
||||
{
|
||||
return lbl_1_bss_10[0];
|
||||
}
|
||||
|
||||
void fn_1_1D64(s32 arg0)
|
||||
{
|
||||
lbl_1_bss_10[0] = arg0;
|
||||
}
|
||||
|
||||
s32 fn_1_1D74(s32 arg0)
|
||||
{
|
||||
return lbl_1_bss_3A0[arg0];
|
||||
}
|
||||
|
||||
s16 fn_1_1D8C(void)
|
||||
{
|
||||
return lbl_1_bss_3AA;
|
||||
}
|
||||
|
||||
void fn_1_1D9C(void)
|
||||
{
|
||||
lbl_1_bss_3A8 = 1;
|
||||
}
|
||||
|
|
@ -50,7 +50,7 @@ void HostPosSet(s16 arg0) {
|
|||
hostPos = arg0;
|
||||
}
|
||||
|
||||
void UpdateHost(void) {
|
||||
static void UpdateHost(void) {
|
||||
Mtx rot;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
|
|
@ -64,7 +64,7 @@ void UpdateHost(void) {
|
|||
Hu3D2Dto3D(&hostPosTbl[hostPos], 1, &sp14);
|
||||
BoardModelPosSetV(hostMdl, &sp14);
|
||||
BoardCameraRotGet(&sp8);
|
||||
PSMTXRotRad(rot, 'y', 0.2617994f);
|
||||
MTXRotDeg(rot, 'y', 15);
|
||||
BoardModelMtxSet(hostMdl, &rot);
|
||||
BoardModelRotSet(hostMdl, sp8.x, 0.0f, 0.0f);
|
||||
BoardModelScaleSet(hostMdl, 0.2f, 0.2f, 0.2f);
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ void HuAudStreamPauseOff(void) {
|
|||
AISetStreamPlayState(1);
|
||||
}
|
||||
|
||||
void HuAudStreamFadeOut(void) {
|
||||
void HuAudStreamFadeOut(s32 arg0) {
|
||||
}
|
||||
|
||||
void HuAudAllStop(void) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue