Merge pull request #169 from zestydevy/main
matching main.c for modeltestDll
This commit is contained in:
commit
7dc7d1d649
8 changed files with 973 additions and 72 deletions
|
|
@ -5,3 +5,21 @@ Sections:
|
|||
.rodata type:rodata align:8
|
||||
.data type:data align:8
|
||||
.bss type:bss align:8
|
||||
|
||||
REL/modeltestDll/main.c:
|
||||
.text start:0x000000A0 end:0x000034B0
|
||||
.rodata start:0x00000000 end:0x00000130
|
||||
.data start:0x00000000 end:0x00000358
|
||||
.bss start:0x00000000 end:0x000009A8
|
||||
|
||||
REL/modeltestDll/modeltest00.c:
|
||||
.text start:0x000034B0 end:0x00004AC8
|
||||
.rodata start:0x00000130 end:0x000001E0
|
||||
.data start:0x00000358 end:0x00000388
|
||||
.bss start:0x000009A8 end:0x00000A00
|
||||
|
||||
REL/modeltestDll/modeltest01.c:
|
||||
.text start:0x00004AC8 end:0x000086B8
|
||||
.rodata start:0x000001E0 end:0x00000290
|
||||
.data start:0x00000388 end:0x000007AE
|
||||
.bss start:0x00000A00 end:0x00000AC8
|
||||
|
|
|
|||
|
|
@ -23,56 +23,56 @@ fn_1_82C8 = .text:0x000082C8; // type:function size:0xEC
|
|||
fn_1_83B4 = .text:0x000083B4; // type:function size:0x304
|
||||
_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_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:0xC data:4byte
|
||||
lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0xC data:4byte
|
||||
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_6C = .rodata:0x0000006C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_A0 = .rodata:0x000000A0; // 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:double
|
||||
lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x10 data:2byte
|
||||
lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 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_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_A0 = .rodata:0x000000A0; // 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:double
|
||||
lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x10 scope:local data:2byte
|
||||
lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float
|
||||
|
|
@ -136,34 +136,35 @@ lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float
|
|||
lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float
|
||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 data:4byte
|
||||
lbl_1_data_20 = .data:0x00000020; // type:object size:0x28 data:string
|
||||
lbl_1_data_48 = .data:0x00000048; // type:object size:0x9 data:string
|
||||
lbl_1_data_51 = .data:0x00000051; // type:object size:0x9 data:string
|
||||
lbl_1_data_5A = .data:0x0000005A; // type:object size:0x9 data:string
|
||||
lbl_1_data_63 = .data:0x00000063; // type:object size:0x9 data:string
|
||||
lbl_1_data_6C = .data:0x0000006C; // type:object size:0x9 data:string
|
||||
lbl_1_data_75 = .data:0x00000075; // type:object size:0x9 data:string
|
||||
lbl_1_data_7E = .data:0x0000007E; // type:object size:0x9 data:string
|
||||
lbl_1_data_87 = .data:0x00000087; // type:object size:0x9 data:string
|
||||
lbl_1_data_90 = .data:0x00000090; // type:object size:0x9 data:string
|
||||
lbl_1_data_99 = .data:0x00000099; // type:object size:0x9 data:string
|
||||
lbl_1_data_A2 = .data:0x000000A2; // type:object size:0x9 data:string
|
||||
lbl_1_data_AB = .data:0x000000AB; // type:object size:0x9 data:string
|
||||
lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 data:string
|
||||
lbl_1_data_BD = .data:0x000000BD; // type:object size:0x9 data:string
|
||||
lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x9 data:string
|
||||
lbl_1_data_CF = .data:0x000000CF; // type:object size:0x9 data:string
|
||||
lbl_1_data_20 = .data:0x00000020; // type:object size:0x28 scope:local data:string
|
||||
lbl_1_data_48 = .data:0x00000048; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_51 = .data:0x00000051; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_5A = .data:0x0000005A; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_63 = .data:0x00000063; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_6C = .data:0x0000006C; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_75 = .data:0x00000075; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_7E = .data:0x0000007E; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_87 = .data:0x00000087; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_90 = .data:0x00000090; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_99 = .data:0x00000099; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_A2 = .data:0x000000A2; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_AB = .data:0x000000AB; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_BD = .data:0x000000BD; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_CF = .data:0x000000CF; // type:object size:0x9 scope:local data:string
|
||||
lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x40
|
||||
lbl_1_data_118 = .data:0x00000118; // type:object size:0x50 data:float
|
||||
lbl_1_data_168 = .data:0x00000168; // type:object size:0xA0
|
||||
lbl_1_data_208 = .data:0x00000208; // type:object size:0x50
|
||||
lbl_1_data_258 = .data:0x00000258; // type:object size:0x50
|
||||
lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1A data:string
|
||||
lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x16
|
||||
lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x10 data:string
|
||||
lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x4 data:string
|
||||
lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x2C data:string
|
||||
lbl_1_data_318 = .data:0x00000318; // type:object size:0x40
|
||||
lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1A scope:local data:string
|
||||
lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x16 scope:local
|
||||
lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x10 scope:local data:string
|
||||
lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x4 scope:local data:string
|
||||
lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x2C scope:local data:string
|
||||
lbl_1_data_318 = .data:0x00000318; // type:object size:0xA scope:local data:string
|
||||
lbl_1_data_322 = .data:0x00000322; // type:object size:0x36
|
||||
lbl_1_data_358 = .data:0x00000358; // type:object size:0x8
|
||||
lbl_1_data_360 = .data:0x00000360; // type:object size:0x28 data:string
|
||||
lbl_1_data_388 = .data:0x00000388; // type:object size:0x28 data:string
|
||||
|
|
@ -200,7 +201,8 @@ lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte
|
|||
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float
|
||||
lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte
|
||||
lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x10 data:4byte
|
||||
lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x414
|
||||
lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x410
|
||||
unk_bss_450 = .bss:0x00000450; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_454 = .bss:0x00000454; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_45A = .bss:0x0000045A; // type:object size:0x6 data:2byte
|
||||
|
|
|
|||
|
|
@ -861,6 +861,14 @@ config.libs = [
|
|||
Object(NonMatching, "REL/mgmodedll/minigame.c"),
|
||||
}
|
||||
),
|
||||
Rel('modeltestDll',
|
||||
objects = {
|
||||
Object(Matching, "REL/executor.c"),
|
||||
Object(Matching, "REL/modeltestDll/main.c"),
|
||||
Object(NonMatching, "REL/modeltestDll/modeltest00.c"),
|
||||
Object(NonMatching, "REL/modeltestDll/modeltest01.c"),
|
||||
}
|
||||
),
|
||||
Rel('modeseldll',
|
||||
objects = {
|
||||
Object(Matching, "REL/executor.c"),
|
||||
|
|
|
|||
46
include/REL/modeltestDll.h
Normal file
46
include/REL/modeltestDll.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#ifndef REL_MODELTEST_H
|
||||
#define REL_MODELTEST_H
|
||||
|
||||
#include "game/hsfdraw.h"
|
||||
#include "game/objsub.h"
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
#define US_PER_60TH_SEC (1000000.0f / 60.0f)
|
||||
#define US_TO_60TH_SEC(us) ((us) / US_PER_60TH_SEC)
|
||||
#define FB_SIZE(width, height) width * height * 2
|
||||
#define ABS(x) ((x) < 0 ? -(x) : (x))
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
typedef struct
|
||||
{
|
||||
s16 unk0[7];
|
||||
} HuUnkF9C2;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Point3d pos; // 0000
|
||||
Point3d rot; // 000C
|
||||
Point3d scale; // 0018
|
||||
s32 unk24;
|
||||
s32 unk28;
|
||||
s32 unk2C;
|
||||
HsfObject * obj; // 0030
|
||||
} HuObjUnk;
|
||||
|
||||
extern Point3d CRot;
|
||||
extern Point3d Center;
|
||||
extern f32 CZoom;
|
||||
void fn_1_29C();
|
||||
void fn_1_28F8(Point3d * arg0, Point3d * arg1);
|
||||
extern void omOutView();
|
||||
|
||||
s16 MGSeqCreate(s16, ...);
|
||||
void MGSeqParamSet(s16, s16, s16);
|
||||
typedef void (omObjFunc2)(struct om_obj_data *);
|
||||
omObjFunc2 fn_1_F9C;
|
||||
|
||||
#endif
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
|
@ -8,6 +8,7 @@ void MGSeqKillAll(void);
|
|||
void MGSeqPracticeInit(void);
|
||||
void CharMotionClose(s16 character);
|
||||
void CharModelClose(s16 character);
|
||||
void CharMotionDataClose(s16 character);
|
||||
void CharModelKill(s16 character);
|
||||
s16 CharModelCreate(s16 character, s16 lod);
|
||||
s16 CharMotionCreate(s16 character, s32 data_num);
|
||||
|
|
|
|||
826
src/REL/modeltestDll/main.c
Normal file
826
src/REL/modeltestDll/main.c
Normal file
|
|
@ -0,0 +1,826 @@
|
|||
#include "math.h"
|
||||
#include "unsplit.h"
|
||||
#include "game/object.h"
|
||||
#include "game/wipe.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/hsfanim.h"
|
||||
#include "game/hsfmotion.h"
|
||||
#include "game/hsfex.h"
|
||||
#include "game/printfunc.h"
|
||||
#include "game/window.h"
|
||||
#include "game/gamework_data.h"
|
||||
|
||||
#include "REL/modeltestDll.h"
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
s32 lbl_1_data_0[8] = {
|
||||
0x005F001B,
|
||||
0x005F0015,
|
||||
0x005F0016,
|
||||
0x005F0006,
|
||||
0x005F0000,
|
||||
0x005F0000,
|
||||
0x005F0000,
|
||||
0x005F0004,
|
||||
};
|
||||
|
||||
const f64 unk_rodata_0 = 0.5;
|
||||
const f64 unk_rodata_8 = 3.0;
|
||||
omObjData * lbl_1_bss_9A4;
|
||||
omObjData * lbl_1_bss_9A0;
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void fn_1_A0(void)
|
||||
{
|
||||
Process * prc;
|
||||
OSReport("******* MODELTESTObjectSetup *********\n");
|
||||
|
||||
prc = omInitObjMan(0x32, 0x2000);
|
||||
omGameSysInit(prc);
|
||||
|
||||
CRot.x = -30.0f;
|
||||
CRot.y = 0.0f;
|
||||
CRot.z = 0.0f;
|
||||
Center.x = 0.0f;
|
||||
Center.y = 0.0f;
|
||||
Center.z = 0.0f;
|
||||
CZoom = 800.0f;
|
||||
|
||||
Hu3DCameraCreate(1);
|
||||
Hu3DCameraPerspectiveSet(1, 45.0f, 20.0f, 20000.0f, 1.2f);
|
||||
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
|
||||
lbl_1_bss_9A4 = omAddObjEx(prc, 0, 0x20, 0x20, -1, fn_1_29C);
|
||||
lbl_1_bss_9A0 = omAddObjEx(prc, 0x7FDA, 0, 0, -1, omOutView);
|
||||
|
||||
Hu3DBGColorSet(0x20U, 0x80U, 0x80U);
|
||||
WipeCreate(1, 0, 0x1E);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
char * lbl_1_data_D8[16] = {
|
||||
"target1A",
|
||||
"target1B",
|
||||
"target2A",
|
||||
"target2B",
|
||||
"target3A",
|
||||
"target3B",
|
||||
"target4A",
|
||||
"target4B",
|
||||
"target5A",
|
||||
"target5B",
|
||||
"target6A",
|
||||
"target6B",
|
||||
"target7A",
|
||||
"target7B",
|
||||
"target8A",
|
||||
"target8B"
|
||||
};
|
||||
|
||||
|
||||
HsfanimStruct00 lbl_1_data_118 = {
|
||||
/* unk00 */ 40,
|
||||
/* unk02 */ {0, 0},
|
||||
/* unk04 */ 50.0f,
|
||||
/* unk08 */ 0.0f,
|
||||
/* unk0C */ 90.0f,
|
||||
/* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f},
|
||||
/* unk1C */ 50.0f,
|
||||
/* unk20 */ 0.800000011920929f,
|
||||
/* unk24 */ 20.0f,
|
||||
/* unk28 */ 0.9900000095367432f,
|
||||
/* unk2C */ 4,
|
||||
/* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}},
|
||||
/* unk3E */ {{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}},
|
||||
};
|
||||
|
||||
HsfanimStruct00 lbl_1_data_168[2] = {
|
||||
{
|
||||
/* unk00 */ 50,
|
||||
/* unk02 */ {0, 0},
|
||||
/* unk04 */ 5.0f,
|
||||
/* unk08 */ 10.0f,
|
||||
/* unk0C */ 10.0f,
|
||||
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f},
|
||||
/* unk1C */ 2.0f,
|
||||
/* unk20 */ 1.0099999904632568f,
|
||||
/* unk24 */ 30.0f,
|
||||
/* unk28 */ 0.9900000095367432f,
|
||||
/* unk2C */ 2,
|
||||
/* unk2E */ {{ /* r */ 48, /* g */ 48, /* b */ 8, /* a */ 255}, { /* r */ 64, /* g */ 48, /* b */ 8, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
|
||||
/* unk3E */ {{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
|
||||
},
|
||||
{
|
||||
/* unk00 */ 30,
|
||||
/* unk02 */ {0, 0},
|
||||
/* unk04 */ 3.299999952316284f,
|
||||
/* unk08 */ 10.0f,
|
||||
/* unk0C */ 0.0f,
|
||||
/* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f},
|
||||
/* unk1C */ 2.0f,
|
||||
/* unk20 */ 1.0f,
|
||||
/* unk24 */ 20.0f,
|
||||
/* unk28 */ 0.9800000190734863f,
|
||||
/* unk2C */ 2,
|
||||
/* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 64, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
|
||||
/* unk3E */ {{ /* r */ 255, /* g */ 128, /* b */ 128, /* a */ 0}, { /* r */ 255, /* g */ 64, /* b */ 32, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
|
||||
}};
|
||||
|
||||
HsfanimStruct00 lbl_1_data_208 = {
|
||||
/* unk00 */ 40,
|
||||
/* unk02 */ {0, 0},
|
||||
/* unk04 */ 50.0f,
|
||||
/* unk08 */ 0.0f,
|
||||
/* unk0C */ 180.0f,
|
||||
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f},
|
||||
/* unk1C */ 30.0f,
|
||||
/* unk20 */ 0.8999999761581421f,
|
||||
/* unk24 */ 20.0f,
|
||||
/* unk28 */ 0.9900000095367432f,
|
||||
/* unk2C */ 4,
|
||||
/* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}},
|
||||
/* unk3E */ {{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
|
||||
};
|
||||
|
||||
HsfanimStruct00 lbl_1_data_258 = {
|
||||
/* unk00 */ 30,
|
||||
/* unk02 */ {0, 0},
|
||||
/* unk04 */ 50.0f,
|
||||
/* unk08 */ 0.0f,
|
||||
/* unk0C */ 90.0f,
|
||||
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f},
|
||||
/* unk1C */ 30.0f,
|
||||
/* unk20 */ 0.949999988079071f,
|
||||
/* unk24 */ 20.0f,
|
||||
/* unk28 */ 0.9900000095367432f,
|
||||
/* unk2C */ 2,
|
||||
/* unk2E */ {{ /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
|
||||
/* unk3E */ {{ /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
|
||||
};
|
||||
|
||||
const Point3d lbl_1_rodata_38 = {0.0f, 0.0f, 0.0f};
|
||||
const Point3d lbl_1_rodata_44 = {0.0f, 1.0f, 0.0f};
|
||||
s16 lbl_1_bss_99C;
|
||||
s16 lbl_1_bss_99A;
|
||||
s16 lbl_1_bss_98A[8];
|
||||
s16 lbl_1_bss_88A[8][16];
|
||||
s16 lbl_1_bss_888;
|
||||
s16 unk_bss_886;
|
||||
s16 lbl_1_bss_884;
|
||||
s16 lbl_1_bss_864[16];
|
||||
s16 lbl_1_bss_664[256];
|
||||
s16 lbl_1_bss_460[258];
|
||||
s16 lbl_1_bss_45A[3];
|
||||
s16 lbl_1_bss_458;
|
||||
AnimData * lbl_1_bss_454;
|
||||
s32 unk_bss_450;
|
||||
HuObjUnk lbl_1_bss_40[20];
|
||||
void * lbl_1_bss_30[4];
|
||||
u8 lbl_1_bss_2C;
|
||||
f32 lbl_1_bss_28;
|
||||
s16 lbl_1_bss_24;
|
||||
f32 lbl_1_bss_20;
|
||||
Process * lbl_1_bss_18[2];
|
||||
Process * lbl_1_bss_14;
|
||||
Process * lbl_1_bss_10;
|
||||
s32 lbl_1_bss_C;
|
||||
f32 lbl_1_bss_8;
|
||||
static u8 unk_bss[8];
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void fn_1_29C(omObjData * arg0)
|
||||
{
|
||||
Point3d sp20;
|
||||
Point3d sp14;
|
||||
Point3d sp8;
|
||||
Mtx sp2C;
|
||||
s16 var_r31;
|
||||
s16 temp_r27;
|
||||
u32 temp_r26;
|
||||
s16 temp_r3;
|
||||
void * temp_r29;
|
||||
AnimData * temp_r28;
|
||||
f32 temp_r5;
|
||||
f32 temp_f30;
|
||||
s16 chrIdx;
|
||||
s32 temp_r0;
|
||||
|
||||
sp14 = lbl_1_rodata_38;
|
||||
sp8 = lbl_1_rodata_44;
|
||||
|
||||
var_r31 = Hu3DGLightCreate(0.0f, 500.0f, 1000.0f, 0.0f, -0.5f, -1.0f, 0xFFU, 0xFFU, 0xFFU);
|
||||
Hu3DGLightInfinitytSet(var_r31);
|
||||
Hu3DShadowCreate(45.0f, 500.0f, 8000.0f);
|
||||
Hu3DShadowTPLvlSet(0.5f);
|
||||
|
||||
Hu3DShadowSizeSet(0xC0U);
|
||||
sp20.x = -500.0f;
|
||||
sp20.y = 1000.0f;
|
||||
sp20.z = 1000.0f;
|
||||
Hu3DShadowPosSet(&sp20, &sp8, &sp14);
|
||||
|
||||
for (var_r31 = 0; var_r31 < 1; ++var_r31)
|
||||
{
|
||||
chrIdx = 0;
|
||||
lbl_1_bss_98A[var_r31] = CharModelCreate(chrIdx, 2);
|
||||
if (var_r31 == 1) {
|
||||
Hu3DModelLayerSet(lbl_1_bss_98A[var_r31], 1);
|
||||
}
|
||||
|
||||
lbl_1_bss_88A[var_r31][0] = CharMotionCreate(chrIdx, lbl_1_data_0[0]);
|
||||
lbl_1_bss_88A[var_r31][1] = CharMotionCreate(chrIdx, lbl_1_data_0[1]);
|
||||
lbl_1_bss_88A[var_r31][2] = CharMotionCreate(chrIdx, lbl_1_data_0[2]);
|
||||
lbl_1_bss_88A[var_r31][3] = CharMotionCreate(chrIdx, lbl_1_data_0[3]);
|
||||
lbl_1_bss_88A[var_r31][4] = CharMotionCreate(chrIdx, lbl_1_data_0[4]);
|
||||
lbl_1_bss_88A[var_r31][5] = CharMotionCreate(chrIdx, lbl_1_data_0[5]);
|
||||
lbl_1_bss_88A[var_r31][6] = CharMotionCreate(chrIdx, lbl_1_data_0[6]);
|
||||
lbl_1_bss_88A[var_r31][7] = CharMotionCreate(chrIdx, lbl_1_data_0[7]);
|
||||
lbl_1_bss_88A[var_r31][0] = CharMotionCreate(chrIdx, 0x5F004D);
|
||||
CharModelMotionSet(chrIdx, lbl_1_bss_88A[var_r31][0]);
|
||||
Hu3DModelAttrSet(lbl_1_bss_98A[var_r31], 0x40000001U);
|
||||
Hu3DModelPosSet(lbl_1_bss_98A[var_r31], (var_r31 / 4 * 0xC8) - 100, 0.0f, -(var_r31 % 4) * 0x96);
|
||||
CharMotionDataClose(chrIdx);
|
||||
}
|
||||
temp_r26 = OSGetTick();
|
||||
|
||||
for (var_r31 = 0; var_r31 < 8; ++var_r31) {
|
||||
Hu3DModelObjMtxGet(lbl_1_bss_98A[0], "test11_tex_we-ske_R_shoe1", sp2C);
|
||||
}
|
||||
|
||||
temp_r5 = OSTicksToMicroseconds(OSGetTick() - temp_r26);
|
||||
OSReport("time %f\n", US_TO_60TH_SEC(temp_r5));
|
||||
var_r31 = Hu3DModelCreateFile(0x700024);
|
||||
Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f);
|
||||
Hu3DModelShadowMapSet(var_r31);
|
||||
var_r31 = Hu3DModelCreateFile(0x26001E);
|
||||
temp_r27 = Hu3DJointMotion(var_r31, HuDataSelHeapReadNum(0x26002F, 0x10000000, 2));
|
||||
Hu3DMotionSet(var_r31, temp_r27);
|
||||
Hu3DModelAttrSet(var_r31, 0x40000001U);
|
||||
|
||||
for (var_r31 = 0; var_r31 < 10; ++var_r31) {
|
||||
if (var_r31 == 0) {
|
||||
lbl_1_bss_664[var_r31] = Hu3DModelCreateFile(0x700019);
|
||||
} else {
|
||||
lbl_1_bss_664[var_r31] = Hu3DModelLink(lbl_1_bss_664[0]);
|
||||
}
|
||||
Hu3DModelShadowSet(lbl_1_bss_664[var_r31]);
|
||||
Hu3DModelPosSet(lbl_1_bss_664[var_r31], ((( var_r31 / 5) * 0x1F4) + 0xC8), 0.0f, (-( var_r31 % 5) * 0x12C));
|
||||
Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x4000U);
|
||||
Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x40000001U);
|
||||
}
|
||||
temp_r29 = HuDataSelHeapReadNum(0x700013, 0x10000000, 2);
|
||||
temp_r28 = HuSprAnimRead(temp_r29);
|
||||
lbl_1_bss_99C = HuSprGrpCreate(0x14);
|
||||
|
||||
for (var_r31 = 0; var_r31 < 0x14; ++var_r31) {
|
||||
lbl_1_bss_99A = HuSprCreate(temp_r28, 0, 0);
|
||||
HuSprGrpMemberSet(lbl_1_bss_99C, var_r31, lbl_1_bss_99A);
|
||||
HuSprPosSet(lbl_1_bss_99C, var_r31, 640.0f, 240.0f);
|
||||
}
|
||||
|
||||
HuSprExecLayerSet(0x40, 1);
|
||||
HuSprGrpDrawNoSet(lbl_1_bss_99C, 0x40);
|
||||
lbl_1_bss_458 = 0x293;
|
||||
lbl_1_bss_45A[0] = MGSeqCreate(1, lbl_1_bss_458 / 60, -1, -1);
|
||||
temp_r29 = HuDataSelHeapReadNum(0x120001, 0x10000000, 2);
|
||||
temp_r28 = HuSprAnimRead(temp_r29);
|
||||
lbl_1_bss_888 = Hu3DParManCreate(temp_r28, 0x3E8, &lbl_1_data_208);
|
||||
Hu3DParManAttrSet(lbl_1_bss_888, 0x45);
|
||||
Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_888), 1U);
|
||||
Hu3DParManRotSet(lbl_1_bss_888, 0.0f, 0.0f, 0.0f);
|
||||
Hu3DParManVacumeSet(lbl_1_bss_888, 500.0f, 0.0f, 0.0f, 1.0f);
|
||||
lbl_1_bss_884 = Hu3DParManLink(lbl_1_bss_888, &lbl_1_data_258);
|
||||
Hu3DParManAttrSet(lbl_1_bss_884, 0x143);
|
||||
Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_884), 1U);
|
||||
Hu3DParManVecSet(lbl_1_bss_884, 0.0f, 1.0f, 0.0f);
|
||||
Hu3DParManVacumeSet(lbl_1_bss_884, 500.0f, 0.0f, 0.0f, 1.0f);
|
||||
Hu3DParManColorSet(lbl_1_bss_884, 0);
|
||||
temp_r29 = HuDataSelHeapReadNum(0x120002, 0x10000000, 2);
|
||||
temp_r28 = HuSprAnimRead(temp_r29);
|
||||
|
||||
for (var_r31 = 0; var_r31 < 10; ++var_r31) {
|
||||
lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]);
|
||||
Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864);
|
||||
Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U);
|
||||
Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0));
|
||||
Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
lbl_1_bss_C = 0;
|
||||
Hu3DFogSet(5000.0f, 10000.0f, 0x20U, 0x10U, 0x30U);
|
||||
arg0->func = fn_1_F9C;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
s32 unrefData[] = {
|
||||
0,0,0
|
||||
};
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void fn_1_F38(void)
|
||||
{
|
||||
f32 var_f31;
|
||||
var_f31 = 0.0f;
|
||||
|
||||
while(TRUE) {
|
||||
Hu3DModelRotSet(lbl_1_bss_460[0], 0.0f, var_f31, 0.0f);
|
||||
var_f31 += 1.0f;
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) {
|
||||
s8 temp_r28;
|
||||
|
||||
temp_r28 = HuPadSubStkX[0] & 0xF8;
|
||||
if (temp_r28 != 0) {
|
||||
Center.x += 0.05f * (sp30->x * temp_r28);
|
||||
Center.y += 0.05f * (sp30->y * temp_r28);
|
||||
Center.z += 0.05f * (sp30->z * temp_r28);
|
||||
}
|
||||
PSVECNormalize(sp18, sp30);
|
||||
temp_r28 = -(HuPadSubStkY[0] & 0xF8);
|
||||
if (temp_r28 != 0) {
|
||||
Center.x += 0.05f * (sp30->x * temp_r28);
|
||||
Center.y += 0.05f * (sp30->y * temp_r28);
|
||||
Center.z += 0.05f * (sp30->z * temp_r28);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
const HuUnkF9C2 lbl_1_rodata_B8 = {
|
||||
{8, 6, 4, 7, 9, 10, 11}
|
||||
};
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void fn_1_F9C(struct om_obj_data * omData)
|
||||
{
|
||||
Point3d sp3C;
|
||||
Point3d sp30;
|
||||
Point3d sp24;
|
||||
Point3d sp18;
|
||||
f32 temp_f31;
|
||||
s32 var_r31;
|
||||
s16 var_r30;
|
||||
HuUnkF9C2 teropPatterns;
|
||||
|
||||
if (omSysExitReq != 0) {
|
||||
if (lbl_1_bss_10 != 0) {
|
||||
HuPrcKill(lbl_1_bss_10);
|
||||
}
|
||||
if (lbl_1_bss_14 != 0) {
|
||||
HuPrcKill(lbl_1_bss_14);
|
||||
}
|
||||
if (lbl_1_bss_18[0] != 0) {
|
||||
HuPrcKill(lbl_1_bss_18[0]);
|
||||
}
|
||||
CharModelKill(-1);
|
||||
omOvlReturnEx(1, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
CRot.y += 0.1f * HuPadStkX[0];
|
||||
CRot.x += 0.1f * HuPadStkY[0];
|
||||
CZoom += HuPadTrigL[0] / 2;
|
||||
CZoom -= HuPadTrigR[0] / 2;
|
||||
|
||||
if (((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0) && (lbl_1_data_118.unk0C < 360.0f)) {
|
||||
lbl_1_data_118.unk0C += 1.0f;
|
||||
}
|
||||
|
||||
if (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) && (lbl_1_data_118.unk0C > 0.0f)) {
|
||||
lbl_1_data_118.unk0C -= 1.0f;
|
||||
}
|
||||
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_X) != 0) {
|
||||
Hu3DParManAttrSet(lbl_1_bss_888, 0x81);
|
||||
Hu3DParManAttrSet(lbl_1_bss_884, 0x81);
|
||||
}
|
||||
|
||||
lbl_1_bss_20 += 2.0f;
|
||||
if (lbl_1_bss_20 > 360.0f) {
|
||||
lbl_1_bss_20 -= 360.0f;
|
||||
}
|
||||
|
||||
for (var_r30 = 0; var_r30 < 10; ++var_r30) {
|
||||
f32 temp_f30;
|
||||
s32 var_r29;
|
||||
s32 var_fake;
|
||||
|
||||
while (0) {
|
||||
(void) temp_f30;
|
||||
(void) temp_f30;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r31;
|
||||
(void) var_r30;
|
||||
(void) var_r30;
|
||||
(void) var_r30;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_r29;
|
||||
(void) var_fake;
|
||||
(void) var_fake;
|
||||
(void) var_fake;
|
||||
(void) var_fake;
|
||||
(void) var_fake;
|
||||
(void) var_fake;
|
||||
(void) var_fake;
|
||||
(void) var_fake;
|
||||
(void) var_fake;
|
||||
}
|
||||
}
|
||||
|
||||
if (lbl_1_bss_458 > 0) {
|
||||
MGSeqParamSet(lbl_1_bss_45A[0], 1, lbl_1_bss_458 / 60);
|
||||
--lbl_1_bss_458;
|
||||
if (lbl_1_bss_458 <= 0) {
|
||||
MGSeqParamSet(lbl_1_bss_45A[0], 2, -1);
|
||||
}
|
||||
}
|
||||
|
||||
sp3C.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)));
|
||||
sp3C.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0)));
|
||||
sp3C.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))));
|
||||
sp30.x = Center.x - sp3C.x;
|
||||
sp30.y = Center.y - sp3C.y;
|
||||
sp30.z = Center.z - sp3C.z;
|
||||
sp24.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0));
|
||||
sp24.y = cos((M_PI * CRot.x) / 180.0);
|
||||
sp24.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0));
|
||||
temp_f31 = CRot.z;
|
||||
|
||||
sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cos((M_PI * temp_f31) / 180.0))
|
||||
+ sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0))
|
||||
+ sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0));
|
||||
|
||||
sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cos((M_PI * temp_f31) / 180.0))
|
||||
+ sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0))
|
||||
+ sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0));
|
||||
|
||||
sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cos((M_PI * temp_f31) / 180.0))
|
||||
+ (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0))
|
||||
+ sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0)));
|
||||
|
||||
PSVECCrossProduct(&sp24, &sp30, &sp30);
|
||||
PSVECNormalize(&sp30, &sp30);
|
||||
|
||||
if (lbl_1_bss_C == 0) {
|
||||
HuControlCamCenter(&sp18, &sp30);
|
||||
}
|
||||
|
||||
teropPatterns = lbl_1_rodata_B8;
|
||||
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_X) != 0) {
|
||||
++lbl_1_bss_24;
|
||||
if (lbl_1_bss_24 >= 7) {
|
||||
lbl_1_bss_24 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) {
|
||||
var_r30 = MGSeqCreate(teropPatterns.unk0[lbl_1_bss_24], 0);
|
||||
}
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_A) != 0) {
|
||||
var_r30 = MGSeqCreate(teropPatterns.unk0[lbl_1_bss_24], 2);
|
||||
}
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_Y) != 0) {
|
||||
var_r30 = MGSeqCreate(0xE, 0x3B);
|
||||
}
|
||||
|
||||
if ((HuPadBtnDown[0] & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT | PAD_BUTTON_UP | PAD_BUTTON_DOWN)) != 0) {
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_UP) != 0) {
|
||||
MGSeqCreate(0xC, 5, GWPlayerCfg[0].character, -1, -1, -1);
|
||||
}
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_LEFT) != 0) {
|
||||
MGSeqCreate(0xC, 5, GWPlayerCfg[0].character, GWPlayerCfg[1].character, -1, -1);
|
||||
}
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_DOWN) != 0) {
|
||||
MGSeqCreate(0xC, 5, GWPlayerCfg[0].character, GWPlayerCfg[1].character, GWPlayerCfg[2].character, -1);
|
||||
}
|
||||
if ((HuPadBtnDown[0] & PAD_BUTTON_RIGHT) != 0) {
|
||||
MGSeqCreate(0xC, 5, GWPlayerCfg[0].character, GWPlayerCfg[1].character, GWPlayerCfg[2].character, GWPlayerCfg[3].character);
|
||||
}
|
||||
}
|
||||
fontcolor = 5;
|
||||
print8(0x10, 0x190, 1.5f, "Terop Pattern%d", lbl_1_bss_24 + 1);
|
||||
lbl_1_bss_8 += 5.0f;
|
||||
if (lbl_1_bss_8 > 360.0f) {
|
||||
lbl_1_bss_8 -= 360.0f;
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void fn_1_20F4(void)
|
||||
{
|
||||
s16 temp_r3;
|
||||
s16 var_r29;
|
||||
HsfObject * temp_r3_2;
|
||||
HuObjUnk * temp_r31;
|
||||
Mtx spC0;
|
||||
Vec sp24;
|
||||
Mtx sp90;
|
||||
Mtx sp60;
|
||||
Mtx sp30;
|
||||
Vec sp18;
|
||||
Vec spC;
|
||||
f32 temp_f27;
|
||||
f32 var_f29; // ! - uninitialized
|
||||
s16 var_r27; // ! - uninitialized
|
||||
s32 var_r26;
|
||||
f32 temp_f30;
|
||||
|
||||
temp_r3 = Hu3DModelCreateFile(0x6C0000);
|
||||
Hu3DModelPosSet(temp_r3, 0.0f, 0.0f, 100.0f);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 16; ++var_r29)
|
||||
{
|
||||
OSReport("%s\n", lbl_1_data_D8[var_r29]);
|
||||
temp_r3_2 = Hu3DModelObjPtrGet(temp_r3, lbl_1_data_D8[var_r29]);
|
||||
lbl_1_bss_40[var_r29].obj = temp_r3_2;
|
||||
|
||||
Hu3DMotionNoMotSet(temp_r3, lbl_1_data_D8[var_r29], 0x380);
|
||||
|
||||
lbl_1_bss_40[var_r29].pos.x = temp_r3_2->data.base.pos.x;
|
||||
lbl_1_bss_40[var_r29].pos.y = temp_r3_2->data.base.pos.y;
|
||||
lbl_1_bss_40[var_r29].pos.z = temp_r3_2->data.base.pos.z;
|
||||
lbl_1_bss_40[var_r29].rot.x = temp_r3_2->data.base.rot.x;
|
||||
lbl_1_bss_40[var_r29].rot.y = temp_r3_2->data.base.rot.y;
|
||||
lbl_1_bss_40[var_r29].rot.z = temp_r3_2->data.base.rot.z;
|
||||
lbl_1_bss_40[var_r29].scale.x = temp_r3_2->data.base.scale.x;
|
||||
lbl_1_bss_40[var_r29].scale.y = temp_r3_2->data.base.scale.y;
|
||||
lbl_1_bss_40[var_r29].scale.z = temp_r3_2->data.base.scale.z;
|
||||
|
||||
OSReport(
|
||||
"%d:(%3.2f,%3.2f,%3.2f),(%3.2f,%3.2f,%3.2f)\n",
|
||||
var_r29,
|
||||
temp_r3_2->data.base.pos.x,
|
||||
temp_r3_2->data.base.pos.y,
|
||||
temp_r3_2->data.base.pos.z,
|
||||
temp_r3_2->data.base.rot.x,
|
||||
temp_r3_2->data.base.rot.y,
|
||||
temp_r3_2->data.base.rot.z
|
||||
);
|
||||
}
|
||||
while (TRUE)
|
||||
{
|
||||
Hu3DModelObjMtxGet(temp_r3, "ske_skirt", sp30);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 8; ++var_r29)
|
||||
{
|
||||
temp_r31 = &lbl_1_bss_40[var_r29 * 2];
|
||||
temp_r31->obj->data.curr.rot.x = temp_r31->rot.x;
|
||||
temp_r31->obj->data.curr.rot.y = temp_r31->rot.y;
|
||||
temp_r31->obj->data.curr.rot.z = temp_r31->rot.z;
|
||||
|
||||
Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[var_r29 * 2], sp90);
|
||||
|
||||
temp_r31 = &lbl_1_bss_40[(var_r29 * 2) + 1];
|
||||
temp_r31->obj->data.curr.rot.x = temp_r31->rot.x;
|
||||
temp_r31->obj->data.curr.rot.y = temp_r31->rot.y;
|
||||
temp_r31->obj->data.curr.rot.z = temp_r31->rot.z;
|
||||
|
||||
Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0);
|
||||
Hu3DMtxTransGet(spC0, &sp18);
|
||||
PSMTXInverse(sp30, sp60);
|
||||
Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0);
|
||||
Hu3DMtxTransGet(spC0, &sp18);
|
||||
PSMTXMultVec(sp60, &sp18, &sp18);
|
||||
|
||||
temp_f27 = 180.0 * (atan2(sp18.z, sp18.x) / M_PI);
|
||||
temp_r31 = &lbl_1_bss_40[var_r29 * 2];
|
||||
temp_r31->obj->data.curr.rot.x = temp_r31->rot.x + (var_f29 * (2.0 * (sin((M_PI * temp_f27) / 180.0) * sin((M_PI * var_r27) / 180.0))));
|
||||
temp_r31->obj->data.curr.rot.y = temp_r31->rot.y;
|
||||
temp_r31->obj->data.curr.rot.z = temp_r31->rot.z + (var_f29 * cos((M_PI * var_r27) / 180.0));
|
||||
|
||||
Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0);
|
||||
Hu3DMtxTransGet(spC0, &sp24);
|
||||
fn_1_28F8(&sp24, &spC);
|
||||
HuSprPosSet(lbl_1_bss_99C, var_r29, spC.x, spC.y);
|
||||
}
|
||||
|
||||
var_r27 += 5;
|
||||
if (var_r27 > 0x168) {
|
||||
var_r27 -= 0x168;
|
||||
}
|
||||
|
||||
if (HuPadSubStkX[1] < 0) {
|
||||
var_r26 = -HuPadSubStkX[1];
|
||||
} else {
|
||||
var_r26 = HuPadSubStkX[1];
|
||||
}
|
||||
|
||||
|
||||
if (var_r26 < 0xA && ABS(HuPadSubStkY[1]) < 0xA) {
|
||||
var_r27 = 0x168;
|
||||
var_f29 = 0.0f;
|
||||
} else {
|
||||
var_r27 = 180.0 * (atan2(HuPadSubStkX[1], HuPadSubStkY[1]) / M_PI);
|
||||
temp_f30 = (HuPadSubStkX[1] * HuPadSubStkX[1]) + (HuPadSubStkY[1] * HuPadSubStkY[1]);
|
||||
var_f29 = sqrtf(temp_f30);
|
||||
if (var_f29 > 80.0f) {
|
||||
var_f29 = 80.0f;
|
||||
}
|
||||
}
|
||||
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void fn_1_28F8(Point3d * arg0, Point3d * arg1)
|
||||
{
|
||||
Point3d spC;
|
||||
Mtx sp18;
|
||||
CameraData * cam;
|
||||
f32 temp_f31;
|
||||
f32 temp_f30;
|
||||
|
||||
cam = &Hu3DCamera[0];
|
||||
C_MTXLookAt(sp18, &cam->pos, &cam->up, &cam->target);
|
||||
PSMTXMultVec(sp18, arg0, &spC);
|
||||
|
||||
temp_f31 = (1.2f * (spC.z * (sin((M_PI * (cam->fov / 2)) / 180.0) / (cos((M_PI * (cam->fov / 2)) / 180.0)))));
|
||||
temp_f30 = (spC.z * (sin((M_PI * (cam->fov / 2)) / 180.0) / (cos((M_PI * (cam->fov / 2)) / 180.0))));
|
||||
arg1->x = 288.0f + (spC.x * (288.0f / -temp_f31));
|
||||
arg1->y = 240.0f + (spC.y * (240.0f / temp_f30));
|
||||
}
|
||||
|
||||
void fn_1_2AFC(void) {
|
||||
s16 temp_r3;
|
||||
|
||||
HuWinInit(1);
|
||||
temp_r3 = HuWinCreate(-10000.0f, -10000.0f, 480, 0x80, 0);
|
||||
HuWinMesSpeedSet(temp_r3, 3);
|
||||
|
||||
while (TRUE) {
|
||||
HuWinMesSet(temp_r3, 0x200011);
|
||||
HuWinMesWait(temp_r3);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
// unreferenced data
|
||||
u8 lbl_1_data_322[54] = {
|
||||
255, 255, 255, 255, 0, 0, 60, 68, 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 68, 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void fn_1_2B68(ModelData * mdl, Mtx arg1)
|
||||
{
|
||||
GXColor sp17;
|
||||
Mtx sp150;
|
||||
Mtx sp120;
|
||||
Mtx spF0;
|
||||
Mtx spC0;
|
||||
Mtx sp90;
|
||||
GXTexObj sp30;
|
||||
f32 sp18[2][3];
|
||||
Mtx44 sp50;
|
||||
AnimBmpData * sp10;
|
||||
f32 temp_f31;
|
||||
f32 var_f30; // ! - uninitialized
|
||||
f32 var_f29; // ! - uninitialized
|
||||
f32 var_f28; // ! - uninitialized
|
||||
f32 var_f27; // ! - uninitialized
|
||||
|
||||
if (!lbl_1_bss_30[0]) {
|
||||
lbl_1_bss_30[0] = HuMemDirectMallocNum(HEAP_SYSTEM, FB_SIZE(640, 480), 0x10000000);
|
||||
}
|
||||
|
||||
GXSetTexCopySrc(0, 0, 640, 480);
|
||||
GXSetTexCopyDst(640, 480, GX_TF_RGB565, GX_FALSE);
|
||||
GXCopyTex(lbl_1_bss_30[0], GX_FALSE);
|
||||
DCFlushRangeNoSync(lbl_1_bss_30[0], FB_SIZE(640, 480));
|
||||
C_MTXOrtho(sp50, 0.0f, 480.0f, 0.0f, 576.0f, 0.0f, 10.0f);
|
||||
GXSetProjection(sp50, GX_ORTHOGRAPHIC);
|
||||
GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
GXSetScissor(0, 0, 640, 480);
|
||||
GXInvalidateTexAll();
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_NRM, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0U);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0U);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0U);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3CU, 0U, 0x7DU);
|
||||
GXSetNumTevStages(1);
|
||||
|
||||
sp17.r =
|
||||
sp17.g =
|
||||
sp17.b =
|
||||
sp17.a = 255;
|
||||
GXSetChanMatColor(GX_COLOR0A0, sp17);
|
||||
|
||||
sp17.r =
|
||||
sp17.g =
|
||||
sp17.b = 128;
|
||||
sp17.a = 255;
|
||||
GXSetChanAmbColor(GX_COLOR0A0, sp17);
|
||||
|
||||
GXSetTevOp(GX_TEVSTAGE0, GX_MODULATE);
|
||||
GXSetNumChans(1U);
|
||||
GXSetChanCtrl(GX_COLOR0, 1U, GX_SRC_REG, GX_SRC_VTX, 1U, GX_DF_CLAMP, GX_AF_SPOT);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
|
||||
GXSetAlphaCompare(GX_GEQUAL, 1U, GX_AOP_AND, GX_GEQUAL, 1U);
|
||||
GXSetZCompLoc(0U);
|
||||
PSMTXIdentity(arg1);
|
||||
GXLoadPosMtxImm(arg1, 0U);
|
||||
|
||||
PSMTXInvXpose(arg1, sp90);
|
||||
GXLoadNrmMtxImm(sp90, 0);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
|
||||
|
||||
sp10 = lbl_1_bss_454->bmp;
|
||||
lbl_1_bss_2C += 1;
|
||||
HuSprTexLoad(lbl_1_bss_454, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR);
|
||||
|
||||
PPCSync();
|
||||
GXInitTexObj(&sp30, lbl_1_bss_30[0], 0x280U, 0x1E0U, 4U, GX_CLAMP, GX_CLAMP, 0U);
|
||||
GXInitTexObjLOD(&sp30, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0U, 0U, GX_ANISO_1);
|
||||
GXLoadTexObj(&sp30, GX_TEXMAP0);
|
||||
GXSetNumIndStages(1U);
|
||||
|
||||
PSMTXScale(sp150, 0.1f, 0.1f, 0.0f);
|
||||
sp18[0][0] = sp150[0][0];
|
||||
sp18[0][1] = sp150[0][1];
|
||||
sp18[0][2] = 0.0f;
|
||||
sp18[1][0] = sp150[1][0];
|
||||
sp18[1][1] = sp150[1][1];
|
||||
sp18[1][2] = 0.0f;
|
||||
|
||||
PSMTXRotRad(spF0, 0x58, -1.5707964f);
|
||||
mtxRot(spF0, 0.0f, 0.0f, 0.0f);
|
||||
temp_f31 = 0.0015625f;
|
||||
PSMTXScale(sp120, temp_f31, temp_f31, temp_f31);
|
||||
PSMTXConcat(sp120, spF0, sp150);
|
||||
PSMTXTrans(spC0, 0.5f, 0.0f, 0.5f);
|
||||
GXLoadTexMtxImm(sp150, 0x1EU, GX_MTX2x4);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1EU, 0U, 0x7DU);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_4, GX_ITS_4);
|
||||
GXSetIndTexMtx(GX_ITM_0, sp18, 0);
|
||||
GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, 1, 0, GX_ITM_0);
|
||||
|
||||
lbl_1_bss_28 += 5.0f;
|
||||
if (lbl_1_bss_28 > 360.0f) {
|
||||
lbl_1_bss_28 -= 360.0f;
|
||||
}
|
||||
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
|
||||
GXPosition3f32(0.0f, 0.0f, 0.0f);
|
||||
GXTexCoord2f32(0.0f, 1.0f);
|
||||
GXNormal3f32(0.0f, var_f30 / 640.0f, var_f29 / 480.0f);
|
||||
|
||||
GXPosition3f32(640.0f, 0.0f, 0.0f);
|
||||
GXTexCoord2f32(0.0f, 1.0f);
|
||||
GXNormal3f32(0.0f, var_f28 / 640.0f, var_f29 / 480.0f);
|
||||
|
||||
GXPosition3f32(640.0f, 480.0f, 0.0f);
|
||||
GXTexCoord2f32(0.0f, 1.0f);
|
||||
GXNormal3f32(0.0f, var_f28 / 640.0f, var_f27 / 480.0f);
|
||||
|
||||
GXPosition3f32(0.0f, 480.0f, 0.0f);
|
||||
GXTexCoord2f32(0.0f, 1.0f);
|
||||
GXNormal3f32(0.0f, var_f30 / 640.0f, var_f27 / 480.0f);
|
||||
|
||||
GXEnd();
|
||||
GXSetNumIndStages(0U);
|
||||
GXSetTevDirect(GX_TEVSTAGE0);
|
||||
GXSetTevDirect(GX_TEVSTAGE1);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
0
src/REL/modeltestDll/modeltest00.c
Normal file
0
src/REL/modeltestDll/modeltest00.c
Normal file
0
src/REL/modeltestDll/modeltest01.c
Normal file
0
src/REL/modeltestDll/modeltest01.c
Normal file
Loading…
Add table
Add a link
Reference in a new issue