Merge pull request #381 from dbalatoni13/main
New function in m444dll.h, types in m439 symbols file, present dll cleanups
This commit is contained in:
commit
5da66370b2
13 changed files with 1863 additions and 1690 deletions
|
|
@ -173,89 +173,89 @@ lbl_1_data_EA8 = .data:0x00000EA8; // type:object size:0x9C
|
|||
lbl_1_data_F44 = .data:0x00000F44; // type:object size:0x9C
|
||||
lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0x34
|
||||
lbl_1_data_1014 = .data:0x00001014; // type:object size:0x60
|
||||
lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18
|
||||
lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30
|
||||
lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204
|
||||
lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204
|
||||
lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204
|
||||
lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 data:2byte
|
||||
lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 data:float
|
||||
lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 data:float
|
||||
lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 data:float
|
||||
lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 data:float
|
||||
lbl_1_data_16C8 = .data:0x000016C8; // type:object size:0xC
|
||||
lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4
|
||||
lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4
|
||||
lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4
|
||||
lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4
|
||||
lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120
|
||||
lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120
|
||||
lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120
|
||||
lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0
|
||||
lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0
|
||||
lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0
|
||||
lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 data:4byte
|
||||
lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 data:float
|
||||
lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 data:float
|
||||
lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 data:float
|
||||
lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 data:float
|
||||
lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 data:float
|
||||
lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 data:float
|
||||
lbl_1_data_2284 = .data:0x00002284; // type:object size:0x24
|
||||
lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC
|
||||
lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174
|
||||
lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174
|
||||
lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174
|
||||
lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144
|
||||
lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144
|
||||
lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144
|
||||
lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4
|
||||
lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4
|
||||
lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4
|
||||
lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC data:4byte
|
||||
lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 data:float
|
||||
lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 data:float
|
||||
lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 data:float
|
||||
lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 data:float
|
||||
lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 data:float
|
||||
lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 data:float
|
||||
lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 data:float
|
||||
lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 data:float
|
||||
lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 data:float
|
||||
lbl_1_data_2FC8 = .data:0x00002FC8; // type:object size:0x24
|
||||
lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC
|
||||
lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294
|
||||
lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294
|
||||
lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294
|
||||
lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC data:4byte
|
||||
lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 data:float
|
||||
lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 data:float
|
||||
lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 data:float
|
||||
lbl_1_data_37B4 = .data:0x000037B4; // type:object size:0xC
|
||||
lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4
|
||||
lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198
|
||||
lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198
|
||||
lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198
|
||||
lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198
|
||||
lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198
|
||||
lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198
|
||||
lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 data:4byte
|
||||
lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 data:float
|
||||
lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 data:float
|
||||
lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 data:float
|
||||
lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 data:float
|
||||
lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 data:float
|
||||
lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 data:float
|
||||
lbl_1_data_4154 = .data:0x00004154; // type:object size:0x18
|
||||
lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8
|
||||
lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210
|
||||
lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210
|
||||
lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210
|
||||
lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210
|
||||
lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210
|
||||
lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210
|
||||
lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 data:4byte
|
||||
lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 data:float
|
||||
lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 data:float
|
||||
lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 data:float
|
||||
lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 data:float
|
||||
lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 data:float
|
||||
lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 data:float
|
||||
lbl_1_data_4DD4 = .data:0x00004DD4; // type:object size:0x18
|
||||
lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8
|
||||
lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4
|
||||
lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4
|
||||
lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4
|
||||
lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4
|
||||
lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4
|
||||
lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4
|
||||
lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 data:4byte
|
||||
lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 data:float
|
||||
lbl_1_data_58EC = .data:0x000058EC; // type:object size:0x18
|
||||
lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8
|
||||
lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C
|
||||
lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C
|
||||
lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C
|
||||
lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168
|
||||
lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168
|
||||
lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168
|
||||
lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 data:4byte
|
||||
lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C data:float
|
||||
lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C data:float
|
||||
lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C data:float
|
||||
lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 data:float
|
||||
lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 data:float
|
||||
lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 data:float
|
||||
lbl_1_data_61E8 = .data:0x000061E8; // type:object size:0x18
|
||||
lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8
|
||||
lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174
|
||||
lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174
|
||||
lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174
|
||||
lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C
|
||||
lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C
|
||||
lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C
|
||||
lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 data:4byte
|
||||
lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 data:float
|
||||
lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 data:float
|
||||
lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 data:float
|
||||
lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C data:float
|
||||
lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C data:float
|
||||
lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C data:float
|
||||
lbl_1_data_6A78 = .data:0x00006A78; // type:object size:0x18
|
||||
lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8
|
||||
lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C
|
||||
lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C
|
||||
lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C
|
||||
lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174
|
||||
lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174
|
||||
lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174
|
||||
lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 data:4byte
|
||||
lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C data:float
|
||||
lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C data:float
|
||||
lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C data:float
|
||||
lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 data:float
|
||||
lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 data:float
|
||||
lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 data:float
|
||||
lbl_1_data_7398 = .data:0x00007398; // type:object size:0x18
|
||||
lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8
|
||||
lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14
|
||||
lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 data:4byte
|
||||
lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 data:4byte
|
||||
lbl_1_data_73CC = .data:0x000073CC; // type:object size:0x28
|
||||
lbl_1_data_73F4 = .data:0x000073F4; // type:object size:0x28
|
||||
lbl_1_data_741C = .data:0x0000741C; // type:object size:0x70 data:float
|
||||
|
|
|
|||
|
|
@ -1,75 +1,75 @@
|
|||
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
||||
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
||||
ObjectSetup = .text:0x000000A0; // type:function size:0xA4
|
||||
fn_1_144 = .text:0x00000144; // type:function size:0x110
|
||||
fn_1_254 = .text:0x00000254; // type:function size:0xE0
|
||||
fn_1_334 = .text:0x00000334; // type:function size:0x128
|
||||
fn_1_45C = .text:0x0000045C; // type:function size:0xF4
|
||||
fn_1_550 = .text:0x00000550; // type:function size:0x34
|
||||
fn_1_584 = .text:0x00000584; // type:function size:0x34
|
||||
fn_1_5B8 = .text:0x000005B8; // type:function size:0x34
|
||||
fn_1_5EC = .text:0x000005EC; // type:function size:0xC8
|
||||
fn_1_6B4 = .text:0x000006B4; // type:function size:0x23C
|
||||
fn_1_8F0 = .text:0x000008F0; // type:function size:0x30
|
||||
fn_1_920 = .text:0x00000920; // type:function size:0x84
|
||||
fn_1_9A4 = .text:0x000009A4; // type:function size:0x84
|
||||
fn_1_A28 = .text:0x00000A28; // type:function size:0x84
|
||||
fn_1_AAC = .text:0x00000AAC; // type:function size:0x30
|
||||
fn_1_ADC = .text:0x00000ADC; // type:function size:0x30
|
||||
fn_1_B0C = .text:0x00000B0C; // type:function size:0x30
|
||||
fn_1_B3C = .text:0x00000B3C; // type:function size:0x30
|
||||
fn_1_B6C = .text:0x00000B6C; // type:function size:0x8C
|
||||
fn_1_BF8 = .text:0x00000BF8; // type:function size:0x28
|
||||
fn_1_C20 = .text:0x00000C20; // type:function size:0x578
|
||||
fn_1_1198 = .text:0x00001198; // type:function size:0x200
|
||||
fn_1_1398 = .text:0x00001398; // type:function size:0xC0
|
||||
fn_1_1458 = .text:0x00001458; // type:function size:0x32C
|
||||
fn_1_1784 = .text:0x00001784; // type:function size:0x88
|
||||
fn_1_180C = .text:0x0000180C; // type:function size:0x44
|
||||
fn_1_1850 = .text:0x00001850; // type:function size:0x1C
|
||||
fn_1_186C = .text:0x0000186C; // type:function size:0xBC
|
||||
fn_1_1928 = .text:0x00001928; // type:function size:0x680
|
||||
fn_1_1FA8 = .text:0x00001FA8; // type:function size:0x140
|
||||
fn_1_20E8 = .text:0x000020E8; // type:function size:0x5A4
|
||||
fn_1_268C = .text:0x0000268C; // type:function size:0x7C
|
||||
fn_1_2708 = .text:0x00002708; // type:function size:0x6C
|
||||
fn_1_2774 = .text:0x00002774; // type:function size:0x17C
|
||||
fn_1_28F0 = .text:0x000028F0; // type:function size:0x34
|
||||
fn_1_2924 = .text:0x00002924; // type:function size:0x260
|
||||
fn_1_2B84 = .text:0x00002B84; // type:function size:0x48
|
||||
fn_1_2BCC = .text:0x00002BCC; // type:function size:0x90
|
||||
fn_1_2C5C = .text:0x00002C5C; // type:function size:0x738
|
||||
fn_1_3394 = .text:0x00003394; // type:function size:0x18
|
||||
fn_1_33AC = .text:0x000033AC; // type:function size:0x590
|
||||
fn_1_393C = .text:0x0000393C; // type:function size:0x6C
|
||||
fn_1_39A8 = .text:0x000039A8; // type:function size:0x170
|
||||
fn_1_3B18 = .text:0x00003B18; // type:function size:0x74
|
||||
fn_1_3B8C = .text:0x00003B8C; // type:function size:0x22C
|
||||
fn_1_3DB8 = .text:0x00003DB8; // type:function size:0xEC
|
||||
fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x19C
|
||||
fn_1_4040 = .text:0x00004040; // type:function size:0x40
|
||||
fn_1_4080 = .text:0x00004080; // type:function size:0x18
|
||||
fn_1_4098 = .text:0x00004098; // type:function size:0x18
|
||||
fn_1_40B0 = .text:0x000040B0; // type:function size:0x54
|
||||
fn_1_4104 = .text:0x00004104; // type:function size:0x40
|
||||
fn_1_4144 = .text:0x00004144; // type:function size:0x40
|
||||
fn_1_4184 = .text:0x00004184; // type:function size:0xC
|
||||
fn_1_4190 = .text:0x00004190; // type:function size:0xC
|
||||
fn_1_419C = .text:0x0000419C; // type:function size:0x20
|
||||
fn_1_41BC = .text:0x000041BC; // type:function size:0x24
|
||||
fn_1_41E0 = .text:0x000041E0; // type:function size:0x114
|
||||
fn_1_42F4 = .text:0x000042F4; // type:function size:0x240
|
||||
fn_1_4534 = .text:0x00004534; // type:function size:0x8C
|
||||
fn_1_45C0 = .text:0x000045C0; // type:function size:0x44
|
||||
fn_1_4604 = .text:0x00004604; // type:function size:0x1C
|
||||
fn_1_4620 = .text:0x00004620; // type:function size:0x260
|
||||
fn_1_4880 = .text:0x00004880; // type:function size:0x184
|
||||
fn_1_4A04 = .text:0x00004A04; // type:function size:0x2E8
|
||||
fn_1_4CEC = .text:0x00004CEC; // type:function size:0x104
|
||||
PresentFadeSprite = .text:0x00000144; // type:function size:0x110
|
||||
FadeSprite = .text:0x00000254; // type:function size:0xE0 scope:local
|
||||
FadeSpriteWithMultiplier = .text:0x00000334; // type:function size:0x128
|
||||
FadeModel = .text:0x0000045C; // type:function size:0xF4 scope:local
|
||||
PresentPadCheck = .text:0x00000550; // type:function size:0x34
|
||||
PresentPadDStkRepCheck = .text:0x00000584; // type:function size:0x34
|
||||
PresentPadDStkCheck = .text:0x000005B8; // type:function size:0x34
|
||||
SceneMain = .text:0x000005EC; // type:function size:0xC8 scope:local
|
||||
PresentCameraCreate = .text:0x000006B4; // type:function size:0x23C
|
||||
PresentCameraKill = .text:0x000008F0; // type:function size:0x30
|
||||
PresentCameraTargetSet = .text:0x00000920; // type:function size:0x84
|
||||
PresentCameraFocusSet = .text:0x000009A4; // type:function size:0x84
|
||||
PresentCameraViewSet = .text:0x00000A28; // type:function size:0x84
|
||||
PresentCameraZoomGet = .text:0x00000AAC; // type:function size:0x30
|
||||
PresentCameraRotGet = .text:0x00000ADC; // type:function size:0x30
|
||||
PresentCameraPosGet = .text:0x00000B0C; // type:function size:0x30
|
||||
PresentCameraTargetGet = .text:0x00000B3C; // type:function size:0x30
|
||||
PresentCameraDoneCheck = .text:0x00000B6C; // type:function size:0x8C
|
||||
ExecCameraObj = .text:0x00000BF8; // type:function size:0x28 scope:local
|
||||
ExecCamera = .text:0x00000C20; // type:function size:0x578 scope:local
|
||||
CameraExecDebug = .text:0x00001198; // type:function size:0x200 scope:local
|
||||
CameraPrintDebug = .text:0x00001398; // type:function size:0xC0 scope:local
|
||||
PresentCreate = .text:0x00001458; // type:function size:0x32C
|
||||
PresentKill = .text:0x00001784; // type:function size:0x88
|
||||
PresentExecModeSet = .text:0x0000180C; // type:function size:0x44
|
||||
PresentExecModeGet = .text:0x00001850; // type:function size:0x1C
|
||||
PresentSelectedIDSet = .text:0x0000186C; // type:function size:0xBC
|
||||
ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local
|
||||
ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local
|
||||
ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local
|
||||
GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local
|
||||
SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local
|
||||
RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local
|
||||
CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local
|
||||
ShowHidePresents = .text:0x00002924; // type:function size:0x260 scope:local
|
||||
PresentUnlocked = .text:0x00002B84; // type:function size:0x48 scope:local
|
||||
UnlockedPresents = .text:0x00002BCC; // type:function size:0x90 scope:local
|
||||
MoveCursor = .text:0x00002C5C; // type:function size:0x738 scope:local
|
||||
TotalPresentsInRoom = .text:0x00003394; // type:function size:0x18 scope:local
|
||||
ExecPresentGet = .text:0x000033AC; // type:function size:0x590 scope:local
|
||||
fn_1_393C = .text:0x0000393C; // type:function size:0x6C scope:local
|
||||
PresentStateCreate = .text:0x000039A8; // type:function size:0x170
|
||||
PresentStateKill = .text:0x00003B18; // type:function size:0x74
|
||||
ExecPresentView = .text:0x00003B8C; // type:function size:0x22C scope:local
|
||||
ExecPresentGet = .text:0x00003DB8; // type:function size:0xEC scope:local
|
||||
PresentWinCreate = .text:0x00003EA4; // type:function size:0x19C
|
||||
PresentWinKill = .text:0x00004040; // type:function size:0x40
|
||||
PresentWinAnimIn = .text:0x00004080; // type:function size:0x18
|
||||
PresentWinAnimOut = .text:0x00004098; // type:function size:0x18
|
||||
PresentWinMesSet = .text:0x000040B0; // type:function size:0x54
|
||||
PresentWinInsertMesSet = .text:0x00004104; // type:function size:0x40
|
||||
PresentWinPosSet = .text:0x00004144; // type:function size:0x40
|
||||
PresentWinDispOn = .text:0x00004184; // type:function size:0xC
|
||||
PresentWinDispOff = .text:0x00004190; // type:function size:0xC
|
||||
PresentWinMesWait = .text:0x0000419C; // type:function size:0x20
|
||||
PresentWinChoiceSet = .text:0x000041BC; // type:function size:0x24
|
||||
ExecWindow = .text:0x000041E0; // type:function size:0x114 scope:local
|
||||
PresentGuideCreate = .text:0x000042F4; // type:function size:0x240
|
||||
PresentGuideKill = .text:0x00004534; // type:function size:0x8C
|
||||
PresentGuideExecModeSet = .text:0x000045C0; // type:function size:0x44
|
||||
PresentGuideExecModeGet = .text:0x00004604; // type:function size:0x1C
|
||||
ExecGuideEnter = .text:0x00004620; // type:function size:0x260 scope:local
|
||||
ExecGuideLeave = .text:0x00004880; // type:function size:0x184 scope:local
|
||||
UpdateGuide = .text:0x00004A04; // type:function size:0x2E8 scope:local
|
||||
LerpAngle = .text:0x00004CEC; // type:function size:0x104 scope:local
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
||||
__fakeHalf = .rodata:0x00000000; // type:object size:0x4 data:float
|
||||
__fakeThree = .rodata:0x00000004; // type:object size:0x4 data:float
|
||||
__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double
|
||||
__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double
|
||||
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:0x8 scope:local data:float
|
||||
|
|
@ -95,14 +95,14 @@ lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:f
|
|||
lbl_1_rodata_8C = .rodata:0x0000008C; // 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_A0 = .rodata:0x000000A0; // type:object size:0x218 scope:local
|
||||
lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x708 scope:local
|
||||
presentMdlTbl = .rodata:0x000000A0; // type:object size:0x218 scope:local
|
||||
roomTbl = .rodata:0x000002B8; // type:object size:0x708 scope:local
|
||||
lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_9D0 = .rodata:0x000009D0; // type:object size:0x8 scope:local data:float
|
||||
lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0x20 scope:local
|
||||
lbl_1_rodata_9F8 = .rodata:0x000009F8; // type:object size:0x28 scope:local
|
||||
roomIdxTbl = .rodata:0x000009D8; // type:object size:0x20 scope:local
|
||||
roomMessTbl = .rodata:0x000009F8; // type:object size:0x28 scope:local
|
||||
lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 scope:local data:float
|
||||
|
|
@ -119,7 +119,7 @@ lbl_1_rodata_A58 = .rodata:0x00000A58; // type:object size:0x4 scope:local data:
|
|||
lbl_1_rodata_A60 = .rodata:0x00000A60; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_A68 = .rodata:0x00000A68; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_A70 = .rodata:0x00000A70; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_A74 = .rodata:0x00000A74; // type:object size:0x28 scope:local
|
||||
roomPresentOffsetTbl = .rodata:0x00000A74; // type:object size:0x28 scope:local
|
||||
lbl_1_rodata_A9C = .rodata:0x00000A9C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_AA4 = .rodata:0x00000AA4; // type:object size:0x4 scope:local data:float
|
||||
|
|
@ -128,11 +128,11 @@ lbl_1_rodata_AAC = .rodata:0x00000AAC; // type:object size:0x4 scope:local data:
|
|||
lbl_1_rodata_AB0 = .rodata:0x00000AB0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_AB8 = .rodata:0x00000AB8; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_AC0 = .rodata:0x00000AC0; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_AC8 = .rodata:0x00000AC8; // type:object size:0x28 scope:local
|
||||
lbl_1_rodata_AF0 = .rodata:0x00000AF0; // type:object size:0x28 scope:local
|
||||
totalPresentCntTbl = .rodata:0x00000AC8; // type:object size:0x28 scope:local
|
||||
presentItemIdxTbl = .rodata:0x00000AF0; // type:object size:0x28 scope:local
|
||||
lbl_1_rodata_B18 = .rodata:0x00000B18; // type:object size:0x28 scope:local
|
||||
lbl_1_rodata_B40 = .rodata:0x00000B40; // type:object size:0x28 scope:local
|
||||
lbl_1_rodata_B68 = .rodata:0x00000B68; // type:object size:0x28 scope:local
|
||||
constellationIdxTbl = .rodata:0x00000B40; // type:object size:0x28 scope:local
|
||||
roofIdxTbl = .rodata:0x00000B68; // type:object size:0x28 scope:local
|
||||
lbl_1_rodata_B90 = .rodata:0x00000B90; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_B94 = .rodata:0x00000B94; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_B98 = .rodata:0x00000B98; // type:object size:0x4 scope:local data:float
|
||||
|
|
@ -148,7 +148,7 @@ lbl_1_rodata_BC4 = .rodata:0x00000BC4; // type:object size:0x4 scope:local data:
|
|||
lbl_1_rodata_BC8 = .rodata:0x00000BC8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_BCC = .rodata:0x00000BCC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_BD0 = .rodata:0x00000BD0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_BD8 = .rodata:0x00000BD8; // type:object size:0xC scope:local
|
||||
guideMotTbl = .rodata:0x00000BD8; // type:object size:0xC scope:local
|
||||
lbl_1_rodata_BE4 = .rodata:0x00000BE4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_BE8 = .rodata:0x00000BE8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_BEC = .rodata:0x00000BEC; // type:object size:0x4 scope:local data:float
|
||||
|
|
@ -172,21 +172,22 @@ lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 scope:local data:
|
|||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B scope:local data:string
|
||||
lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B scope:local data:string
|
||||
lbl_1_data_36 = .data:0x00000036; // type:object size:0x1A scope:local data:string
|
||||
lbl_1_data_50 = .data:0x00000050; // type:object size:0x1C data:4byte
|
||||
lbl_1_data_6C = .data:0x0000006C; // type:object size:0x10 data:4byte
|
||||
lightTbl = .data:0x00000050; // type:object size:0x1C scope:local data:4byte
|
||||
execModeTbl = .data:0x0000006C; // type:object size:0x10 scope:local data:4byte
|
||||
lbl_1_data_7C = .data:0x0000007C; // type:object size:0x8 scope:local data:string
|
||||
lbl_1_data_84 = .data:0x00000084; // type:object size:0x20
|
||||
roomIdxTbl2 = .data:0x00000084; // type:object size:0x20
|
||||
jumptable_1_data_A4 = .data:0x000000A4; // type:object size:0x2C scope:local
|
||||
jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x1C scope:local
|
||||
lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x24 data:float
|
||||
shadowPosTbl = .data:0x000000F0; // type:object size:0x24 scope:local data:float
|
||||
lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A scope:local data:string
|
||||
lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2E scope:local data:string
|
||||
jumptable_1_data_16C = .data:0x0000016C; // type:object size:0x34 scope:local
|
||||
lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte
|
||||
lbl_1_bss_14 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte
|
||||
execModeTbl = .data:0x000001A0; // type:object size:0xC scope:local data:4byte
|
||||
scene = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte
|
||||
presentObjMan = .bss:0x00000004; // type:object size:0x4 data:4byte
|
||||
presentCamera = .bss:0x00000008; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte
|
||||
present = .bss:0x00000010; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte
|
||||
presentState = .bss:0x00000018; // type:object size:0x4 data:4byte
|
||||
presentGuide = .bss:0x00000020; // type:object size:0x4 data:4byte
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ void fn_1_C214(void);
|
|||
|
||||
void fn_1_D1E0(s16 model);
|
||||
void fn_1_D558(DataListModel *model_list);
|
||||
void fn_1_D588(DataListModel *model_list);
|
||||
void fn_1_D818(DataListSprite *sprite_list);
|
||||
void fn_1_D950(void);
|
||||
void fn_1_D9C8(void);
|
||||
|
|
@ -70,4 +71,4 @@ extern float lbl_1_bss_288[2];
|
|||
|
||||
extern DataListModel lbl_1_data_470[];
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ typedef struct {
|
|||
/* 0x00 */ Process *process;
|
||||
/* 0x04 */ s16 window;
|
||||
/* 0x08 */ s32 id;
|
||||
/* 0x0C */ s32 visible;
|
||||
/* 0x0C */ BOOL visible;
|
||||
/* 0x10 */ BOOL messWaitSignal;
|
||||
/* 0x14 */ BOOL choiceSignal;
|
||||
/* 0x18 */ u32 messToBeSet;
|
||||
|
|
|
|||
|
|
@ -2,165 +2,59 @@
|
|||
#define PRESENT_H
|
||||
|
||||
#include "game/object.h"
|
||||
// #include "REL/option.h" // this causes problems because of the extern bsses
|
||||
|
||||
typedef struct UnkWindowDataStruct {
|
||||
typedef struct PresentWindow {
|
||||
/* 0x00 */ Process *process;
|
||||
/* 0x04 */ s16 window;
|
||||
/* 0x06 */ char unk06[2];
|
||||
/* 0x08 */ s32 unk08;
|
||||
/* 0x0C */ s32 unk0C;
|
||||
/* 0x10 */ s32 unk10;
|
||||
/* 0x14 */ s32 unk14;
|
||||
/* 0x18 */ u32 unk18;
|
||||
/* 0x08 */ s32 id;
|
||||
/* 0x0C */ BOOL visible;
|
||||
/* 0x10 */ s32 messWaitSignal;
|
||||
/* 0x14 */ s32 choiceSignal;
|
||||
/* 0x18 */ u32 messToBeSet;
|
||||
/* 0x1C */ s32 choice;
|
||||
/* 0x20 */ s32 unk_20;
|
||||
} UnkWindowDataStruct; // this already exists in option.h
|
||||
/* 0x20 */ s32 state;
|
||||
} PresentWindow; /* size 0x24 */ // this already exists in option.h
|
||||
|
||||
typedef struct UnkPresentStruct {
|
||||
/* 0x00 */ UnkWindowDataStruct *unk_00;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
} UnkPresentStruct;
|
||||
#define PRESENT_GUIDE_MODE_NONE 0
|
||||
#define PRESENT_GUIDE_MODE_ENTER 1
|
||||
#define PRESENT_GUIDE_MODE_LEAVE 2
|
||||
|
||||
typedef struct UnkPresentStruct2 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ s32 unk_08;
|
||||
/* 0x0C */ s32 unk_0C;
|
||||
/* 0x10 */ omObjData *unk_10[134];
|
||||
/* 0x228 */ UnkWindowDataStruct *unk_228;
|
||||
/* 0x22C */ UnkWindowDataStruct *unk_22C;
|
||||
/* 0x230 */ s16 sprite;
|
||||
/* 0x234 */ s32 unk_234;
|
||||
/* 0x238 */ s32 unk_238;
|
||||
/* 0x23C */ float unk_23C;
|
||||
/* 0x240 */ float unk_240;
|
||||
/* 0x244 */ float unk_244;
|
||||
/* 0x248 */ float unk_248;
|
||||
/* 0x24C */ float unk_24C;
|
||||
/* 0x250 */ float unk_250;
|
||||
/* 0x254 */ float unk_254;
|
||||
/* 0x258 */ float unk_258;
|
||||
/* 0x25C */ float unk_25C;
|
||||
/* 0x260 */ float unk_260;
|
||||
/* 0x264 */ float unk_264;
|
||||
/* 0x268 */ float unk_268;
|
||||
/* 0x26C */ float unk_26C;
|
||||
/* 0x270 */ s32 unk_270[60];
|
||||
} UnkPresentStruct2;
|
||||
#define PRESENT_MODE_NONE 0
|
||||
#define PRESENT_MODE_SELECT_ROOM 1
|
||||
#define PRESENT_MODE_SELECT_PRESENT 2
|
||||
#define PRESENT_MODE_GET 3
|
||||
|
||||
typedef struct UnkPresentStruct3 {
|
||||
/* 0x00 */ Vec unk_00;
|
||||
/* 0x0C */ Vec unk_0C;
|
||||
/* 0x18 */ GXColor unk_18;
|
||||
} UnkPresentStruct3;
|
||||
extern omObjData *present;
|
||||
extern omObjData *presentCamera;
|
||||
extern Process *presentObjMan;
|
||||
|
||||
typedef struct UnkPresentStruct4 {
|
||||
/* 0x00 */ Vec unk_00;
|
||||
/* 0x0C */ Vec unk_0C;
|
||||
/* 0x18 */ Vec unk_18;
|
||||
} UnkPresentStruct4;
|
||||
|
||||
typedef struct UnkPresentStruct5 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ s16 unk_04;
|
||||
/* 0x08 */ float x;
|
||||
/* 0x0C */ float y;
|
||||
/* 0x10 */ float z;
|
||||
/* 0x14 */ float unk_14;
|
||||
/* 0x18 */ s32 unk18[2];
|
||||
/* 0x20 */ float unk_20;
|
||||
/* 0x24 */ float unk_24;
|
||||
/* 0x28 */ float unk_28;
|
||||
/* 0x2C */ float unk_2C;
|
||||
/* 0x30 */ float unk_30;
|
||||
/* 0x34 */ float unk_34;
|
||||
/* 0x38 */ float unk_38;
|
||||
/* 0x3C */ s32 unk3C[3];
|
||||
/* 0x48 */ float unk_48;
|
||||
/* 0x4C */ float unk_4C;
|
||||
/* 0x50 */ s32 unk_50;
|
||||
/* 0x54 */ s32 unk_54;
|
||||
} UnkPresentStruct5;
|
||||
|
||||
typedef struct UnkPresentStruct6 {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x04 */ float unk_04;
|
||||
/* 0x08 */ float unk_08;
|
||||
} UnkPresentStruct6; // looks like a struct in option/scene.c
|
||||
|
||||
typedef struct UnkPresentStruct6Weird {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x04 */ float unk_04;
|
||||
/* 0x08 */ float unk_08;
|
||||
/* 0x0C */ float unk_0C;
|
||||
} UnkPresentStruct6Weird; // looks like a struct in option/scene.c
|
||||
|
||||
typedef struct UnkPresentCameraStruct {
|
||||
/* 0x00 */ Vec pos;
|
||||
/* 0x0C */ Vec target;
|
||||
/* 0x18 */ Vec up;
|
||||
/* 0x24 */ float unk_24;
|
||||
/* 0x28 */ float unk_28;
|
||||
/* 0x2C */ Vec unk_2C;
|
||||
/* 0x38 */ Vec unk_38;
|
||||
/* 0x44 */ float unk44;
|
||||
/* 0x48 */ float unk48;
|
||||
/* 0x4C */ float unk4C;
|
||||
/* 0x50 */ float unk_50;
|
||||
/* 0x54 */ float unk_54;
|
||||
/* 0x58 */ Vec unk_58;
|
||||
/* 0x64 */ Vec unk_64;
|
||||
/* 0x70 */ float unk70;
|
||||
/* 0x74 */ float unk74;
|
||||
/* 0x78 */ float unk78;
|
||||
/* 0x7C */ float unk_7C;
|
||||
/* 0x80 */ float unk_80;
|
||||
/* 0x84 */ float unk_84;
|
||||
/* 0x88 */ float unk_88;
|
||||
/* 0x8C */ float unk_8C;
|
||||
/* 0x90 */ float unk_90;
|
||||
/* 0x94 */ float unk_94;
|
||||
/* 0x98 */ float unk_98;
|
||||
} UnkPresentCameraStruct;
|
||||
|
||||
typedef struct UnkPresentNestedInnerStruct {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ s32 unk08;
|
||||
/* 0x0C */ s32 unk_0C;
|
||||
} UnkPresentNestedInnerStruct;
|
||||
|
||||
typedef struct UnkPresentNestedOuterStruct {
|
||||
/* 0x00 */ s32 unk00;
|
||||
/* 0x04 */ UnkPresentNestedInnerStruct unk_04[11];
|
||||
} UnkPresentNestedOuterStruct;
|
||||
|
||||
typedef struct UnkPresentStruct7 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ float unk_04;
|
||||
} UnkPresentStruct7;
|
||||
|
||||
extern omObjData *lbl_1_bss_10;
|
||||
extern omObjData *lbl_1_bss_8;
|
||||
extern Process *lbl_1_bss_4;
|
||||
|
||||
void fn_1_144(s16 arg0, s32 arg1, s32 arg2);
|
||||
void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2);
|
||||
omObjData *fn_1_6B4();
|
||||
void fn_1_920(omObjData *object, float arg8, float arg9, float argA, s32 arg1);
|
||||
void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1);
|
||||
void fn_1_BF8(omObjData *object);
|
||||
omObjData *fn_1_1458(void);
|
||||
void fn_1_180C(omObjData *object, s32 arg1);
|
||||
s32 fn_1_1850(omObjData *object);
|
||||
omObjData *fn_1_39A8(void);
|
||||
UnkWindowDataStruct *fn_1_3EA4(s32 arg0);
|
||||
void fn_1_4080(UnkWindowDataStruct *windowData);
|
||||
void fn_1_4098(UnkWindowDataStruct *windowData);
|
||||
void fn_1_40B0(UnkWindowDataStruct *windowData, u32 mess);
|
||||
omObjData *fn_1_42F4(void);
|
||||
void fn_1_45C0(omObjData *arg0, s32 arg1);
|
||||
s32 fn_1_4604(omObjData *object);
|
||||
void PresentFadeSprite(s16 sprite, BOOL inF, s32 duration);
|
||||
void FadeSpriteWithMultiplier(s16 model, BOOL inF, float tpMultiplier, s32 duration);
|
||||
BOOL PresentPadCheck(u16 btn);
|
||||
BOOL PresentPadDStkRepCheck(u16 dir);
|
||||
BOOL PresentPadDStkCheck(u16 dir);
|
||||
omObjData *PresentCameraCreate();
|
||||
void PresentCameraKill(omObjData *object);
|
||||
void PresentCameraTargetSet(omObjData *object, float x, float y, float z, s32 duration);
|
||||
void PresentCameraFocusSet(omObjData *object, float x, float y, float z, s32 duration);
|
||||
s32 PresentCameraDoneCheck(omObjData *object);
|
||||
omObjData *PresentCreate(void);
|
||||
void PresentKill(omObjData *object);
|
||||
void PresentExecModeSet(omObjData *object, s32 execMode);
|
||||
s32 PresentExecModeGet(omObjData *object);
|
||||
void PresentSelectedIDSet(omObjData *object, s32 id);
|
||||
void PresentStateKill(omObjData *object);
|
||||
omObjData *PresentStateCreate(void);
|
||||
PresentWindow *PresentWinCreate(s32 id);
|
||||
void PresentWinKill(PresentWindow *work);
|
||||
void PresentWinAnimIn(PresentWindow *work);
|
||||
void PresentWinAnimOut(PresentWindow *work);
|
||||
void PresentWinMesSet(PresentWindow *work, u32 mess);
|
||||
void PresentWinInsertMesSet(PresentWindow *work, u32 mess, s16 index);
|
||||
void PresentWinMesWait(PresentWindow *work);
|
||||
omObjData *PresentGuideCreate(void);
|
||||
void PresentGuideKill(omObjData *object);
|
||||
void PresentGuideExecModeSet(omObjData *object, s32 execMode);
|
||||
s32 PresentGuideExecModeGet(omObjData *object);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ typedef struct {
|
|||
/* 0x2C */ Vec posPrev;
|
||||
/* 0x38 */ Vec targetPrev;
|
||||
/* 0x44 */ char unk44[0xC];
|
||||
/* 0x50 */ float prevZoom;
|
||||
/* 0x54 */ float prevRot;
|
||||
/* 0x50 */ float zoomPrev;
|
||||
/* 0x54 */ float rotPrev;
|
||||
/* 0x58 */ Vec posTarget;
|
||||
/* 0x64 */ Vec posFocus;
|
||||
/* 0x70 */ char unk70[0xC];
|
||||
|
|
@ -34,8 +34,6 @@ typedef struct {
|
|||
|
||||
static void ExecCameraObj(omObjData *object);
|
||||
static void ExecCamera(omObjData *object);
|
||||
static void fn_1_12E4(omObjData *object);
|
||||
static void PrintDebugInfo(omObjData *object);
|
||||
|
||||
omObjData *optionCamera;
|
||||
|
||||
|
|
@ -45,11 +43,8 @@ static s32 pad_04_00000018_data = -1;
|
|||
|
||||
omObjData *OptionCameraCreate(void)
|
||||
{
|
||||
omObjData *object;
|
||||
CameraWork *work;
|
||||
|
||||
object = omAddObjEx(optionObjMan, 1001, 0, 0, 3, ExecCameraObj);
|
||||
work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(CameraWork), MEMORY_DEFAULT_NUM);
|
||||
omObjData *object = omAddObjEx(optionObjMan, 1001, 0, 0, 3, ExecCameraObj);
|
||||
CameraWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(CameraWork), MEMORY_DEFAULT_NUM);
|
||||
object->data = work;
|
||||
work->pos.x = 0.0f;
|
||||
work->pos.y = 0.0f;
|
||||
|
|
@ -110,33 +105,26 @@ void OptionCameraViewSet(omObjData *object, float zoom, float rot, float y, s32
|
|||
work->zoomTarget = zoom;
|
||||
work->rotTarget = rot;
|
||||
work->targetPrev.y = work->target.y;
|
||||
work->prevZoom = work->zoom;
|
||||
work->prevRot = work->rot;
|
||||
work->zoomPrev = work->zoom;
|
||||
work->rotPrev = work->rot;
|
||||
work->timeRot = 0.0f;
|
||||
work->rotSpeed = 1.0f / duration;
|
||||
}
|
||||
|
||||
// GetZoom
|
||||
float OptionCameraZoomGet(omObjData *object)
|
||||
{
|
||||
CameraWork *work = object->data;
|
||||
float zoom;
|
||||
|
||||
zoom = work->zoom;
|
||||
float zoom = work->zoom;
|
||||
return zoom;
|
||||
}
|
||||
|
||||
// GetRot
|
||||
float OptionCameraRotGet(omObjData *object)
|
||||
{
|
||||
CameraWork *work = object->data;
|
||||
float rot;
|
||||
|
||||
rot = work->rot;
|
||||
float rot = work->rot;
|
||||
return rot;
|
||||
}
|
||||
|
||||
// Getpos
|
||||
void OptionCameraPosGet(omObjData *object, float *x, float *y, float *z)
|
||||
{
|
||||
CameraWork *temp_r31 = object->data;
|
||||
|
|
@ -146,7 +134,6 @@ void OptionCameraPosGet(omObjData *object, float *x, float *y, float *z)
|
|||
*z = temp_r31->pos.z;
|
||||
}
|
||||
|
||||
// Gettarget
|
||||
void OptionCameraTargetGet(omObjData *object, float *x, float *y, float *z)
|
||||
{
|
||||
CameraWork *work = object->data;
|
||||
|
|
@ -156,7 +143,6 @@ void OptionCameraTargetGet(omObjData *object, float *x, float *y, float *z)
|
|||
*z = work->target.z;
|
||||
}
|
||||
|
||||
// CameraDone
|
||||
s32 OptionCameraDoneCheck(omObjData *object)
|
||||
{
|
||||
CameraWork *work = object->data;
|
||||
|
|
@ -205,8 +191,8 @@ static void ExecCamera(omObjData *object)
|
|||
if (work->timeRot < 1.0f) {
|
||||
weight = sind(90.0f * work->timeRot);
|
||||
work->target.y = work->targetPrev.y + weight * (work->posFocus.y - work->targetPrev.y);
|
||||
work->zoom = work->prevZoom + weight * (work->zoomTarget - work->prevZoom);
|
||||
work->rot = work->prevRot + weight * (work->rotTarget - work->prevRot);
|
||||
work->zoom = work->zoomPrev + weight * (work->zoomTarget - work->zoomPrev);
|
||||
work->rot = work->rotPrev + weight * (work->rotTarget - work->rotPrev);
|
||||
if ((work->timeRot += work->rotSpeed) >= 1.0f) {
|
||||
work->target.y = work->posFocus.y;
|
||||
work->zoom = work->zoomTarget;
|
||||
|
|
@ -223,8 +209,7 @@ static void ExecCamera(omObjData *object)
|
|||
work->rot += 360.0f;
|
||||
}
|
||||
|
||||
Hu3DCameraPosSet(1, work->pos.x, work->pos.y, work->pos.z, work->up.x, work->up.y, work->up.z, work->target.x,
|
||||
work->target.y, work->target.z);
|
||||
Hu3DCameraPosSet(1, work->pos.x, work->pos.y, work->pos.z, work->up.x, work->up.y, work->up.z, work->target.x, work->target.y, work->target.z);
|
||||
}
|
||||
|
||||
static void CameraExecDebug(omObjData *object)
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ typedef struct {
|
|||
/* 0x48 */ char unk48[0xC];
|
||||
/* 0x54 */ float time;
|
||||
/* 0x58 */ float speed;
|
||||
/* 0x5C */ s32 unk5C;
|
||||
/* 0x60 */ s32 unk60;
|
||||
/* 0x5C */ s32 unk_5C;
|
||||
/* 0x60 */ s32 unk_60;
|
||||
} GuideWork; // Size 0x64
|
||||
|
||||
#define MODE_DISABLED 0
|
||||
|
|
@ -70,8 +70,8 @@ omObjData *OptionGuideCreate(void)
|
|||
for (i = 0; i < 3; i++) {
|
||||
object->motion[i] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||
}
|
||||
work->unk5C = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xC);
|
||||
work->unk60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC);
|
||||
work->unk_5C = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xC);
|
||||
work->unk_60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC);
|
||||
CharModelLayerSetAll(1);
|
||||
Hu3DModelShadowSet(object->model[0]);
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001);
|
||||
|
|
@ -186,9 +186,7 @@ static void ExecGuide(omObjData *object)
|
|||
static void UpdateGuide(omObjData *object)
|
||||
{
|
||||
GuideWork *work = object->data;
|
||||
s16 motion;
|
||||
|
||||
motion = 0;
|
||||
s16 motion = 0;
|
||||
work->distRemain = sqrtf(work->posDelta.x * work->posDelta.x + work->posDelta.z * work->posDelta.z);
|
||||
if (0.001f <= work->distRemain) {
|
||||
if (14.0f <= work->distRemain) {
|
||||
|
|
@ -219,9 +217,8 @@ static void UpdateGuide(omObjData *object)
|
|||
static float LerpAngle(float start, float end, float time)
|
||||
{
|
||||
float angle;
|
||||
float delta;
|
||||
|
||||
delta = fmod(end - start, 360.0);
|
||||
|
||||
float delta = fmod(end - start, 360.0);
|
||||
if (0.0f > delta) {
|
||||
delta += 360.0f;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,13 +10,19 @@ typedef struct {
|
|||
/* 0x00 */ OptionWindow *window;
|
||||
/* 0x04 */ s32 quitTimer;
|
||||
/* 0x08 */ s16 light;
|
||||
} StateWork; // Size 0xC
|
||||
} StateWork; /* size = 0x0C */
|
||||
|
||||
typedef struct {
|
||||
Vec src;
|
||||
Vec dest;
|
||||
GXColor color;
|
||||
} UnkLightDataStruct; // Size 0x1C TODO same as m446Dll::unkStruct10 and present::UnkPresentStruct3
|
||||
/* 0x00 */ Vec src;
|
||||
/* 0x0C */ Vec dest;
|
||||
/* 0x18 */ GXColor color;
|
||||
} UnkLightDataStruct; /* size = 0x1C */ // TODO same as m446Dll::unkStruct10 and present::UnkPresentStruct3
|
||||
|
||||
typedef struct UnkShadowDataStruct {
|
||||
/* 0x00 */ Vec pos;
|
||||
/* 0x0C */ Vec up;
|
||||
/* 0x18 */ Vec target;
|
||||
} UnkShadowDataStruct; /* size = 0x24 */
|
||||
|
||||
static void ExecState(omObjData *object);
|
||||
|
||||
|
|
@ -28,7 +34,7 @@ static UnkLightDataStruct lightTbl = {
|
|||
{ 0xFF, 0xFF, 0xFF, 0xFF },
|
||||
};
|
||||
|
||||
static Vec shadowPosTbl[3] = {
|
||||
static UnkShadowDataStruct shadowPosTbl = {
|
||||
{ 0.0f, 3000.0f, 1.0f },
|
||||
{ 0.0f, 1.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
|
|
@ -36,12 +42,10 @@ static Vec shadowPosTbl[3] = {
|
|||
|
||||
omObjData *OptionStateCreate(void)
|
||||
{
|
||||
omObjData *object;
|
||||
StateWork *work;
|
||||
LightData *lightData;
|
||||
|
||||
object = omAddObjEx(optionObjMan, 1000, 0, 0, 4, ExecState);
|
||||
work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StateWork), MEMORY_DEFAULT_NUM);
|
||||
omObjData *object = omAddObjEx(optionObjMan, 1000, 0, 0, 4, ExecState);
|
||||
StateWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StateWork), MEMORY_DEFAULT_NUM);
|
||||
object->data = work;
|
||||
optionCamera = OptionCameraCreate();
|
||||
optionRoom = OptionRoomCreate();
|
||||
|
|
@ -52,7 +56,7 @@ omObjData *OptionStateCreate(void)
|
|||
lightData = &Hu3DGlobalLight[work->light];
|
||||
Hu3DShadowCreate(30.0f, 20.0f, 5000.0f);
|
||||
Hu3DShadowTPLvlSet(0.45f);
|
||||
Hu3DShadowPosSet(&shadowPosTbl[0], &shadowPosTbl[1], &shadowPosTbl[2]);
|
||||
Hu3DShadowPosSet(&shadowPosTbl.pos, &shadowPosTbl.up, &shadowPosTbl.target);
|
||||
return object;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,231 +5,235 @@
|
|||
|
||||
#include "REL/present.h"
|
||||
|
||||
void fn_1_C20(omObjData *object);
|
||||
typedef struct CameraWork {
|
||||
/* 0x00 */ Vec pos;
|
||||
/* 0x0C */ Vec target;
|
||||
/* 0x18 */ Vec up;
|
||||
/* 0x24 */ float zoom;
|
||||
/* 0x28 */ float rot;
|
||||
/* 0x2C */ Vec posPrev;
|
||||
/* 0x38 */ Vec targetPrev;
|
||||
/* 0x44 */ char unk44[0xC];
|
||||
/* 0x50 */ float zoomPrev;
|
||||
/* 0x54 */ float rotPrev;
|
||||
/* 0x58 */ Vec posTarget;
|
||||
/* 0x64 */ Vec posFocus;
|
||||
/* 0x70 */ char unk70[0xC];
|
||||
/* 0x7C */ float zoomTarget;
|
||||
/* 0x80 */ float rotTarget;
|
||||
/* 0x84 */ float timeEye;
|
||||
/* 0x88 */ float eyeSpeed;
|
||||
/* 0x8C */ float timeTarget;
|
||||
/* 0x90 */ float targetSpeed;
|
||||
/* 0x94 */ float timeRot;
|
||||
/* 0x98 */ float rotSpeed;
|
||||
} CameraWork; /* size = 0x9C */ // same as in option/camera.c
|
||||
|
||||
omObjData *fn_1_6B4(void)
|
||||
static void ExecCameraObj(omObjData *object);
|
||||
static void ExecCamera(omObjData *object);
|
||||
|
||||
omObjData *PresentCameraCreate(void)
|
||||
{
|
||||
omObjData *var_r30;
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
omObjData *object = omAddObjEx(presentObjMan, 1001, 0, 0, 3, ExecCameraObj);
|
||||
CameraWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, 156, MEMORY_DEFAULT_NUM);
|
||||
object->data = work;
|
||||
|
||||
var_r30 = omAddObjEx(lbl_1_bss_4, 1001, 0, 0, 3, fn_1_BF8);
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 156, MEMORY_DEFAULT_NUM);
|
||||
var_r30->data = var_r31;
|
||||
work->pos.x = 0.0f;
|
||||
work->pos.y = 0.0f;
|
||||
work->pos.z = 0.0f;
|
||||
|
||||
var_r31->pos.x = 0.0f;
|
||||
var_r31->pos.y = 0.0f;
|
||||
var_r31->pos.z = 0.0f;
|
||||
work->target.x = 0.0f;
|
||||
work->target.y = 0.0f;
|
||||
work->target.z = 0.0f;
|
||||
|
||||
var_r31->target.x = 0.0f;
|
||||
var_r31->target.y = 0.0f;
|
||||
var_r31->target.z = 0.0f;
|
||||
work->up.x = 0.0f;
|
||||
work->up.y = 1.0f;
|
||||
work->up.z = 0.0f;
|
||||
|
||||
var_r31->up.x = 0.0f;
|
||||
var_r31->up.y = 1.0f;
|
||||
var_r31->up.z = 0.0f;
|
||||
|
||||
var_r31->unk_24 = 0.0f;
|
||||
var_r31->unk_28 = 0.0f;
|
||||
var_r31->unk_8C = 1.0f;
|
||||
var_r31->unk_84 = 1.0f;
|
||||
var_r31->unk_94 = 1.0f;
|
||||
work->zoom = 0.0f;
|
||||
work->rot = 0.0f;
|
||||
work->timeTarget = 1.0f;
|
||||
work->timeEye = 1.0f;
|
||||
work->timeRot = 1.0f;
|
||||
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
|
||||
Hu3DCameraPerspectiveSet(1, 42.0f, 10.0f, 8000.0f, 1.2f);
|
||||
fn_1_9A4(var_r30, 0.0f, 0.0f, -600.0f, 1);
|
||||
fn_1_920(var_r30, 0.0f, 220.0f, 250.0f, 1);
|
||||
PresentCameraFocusSet(object, 0.0f, 0.0f, -600.0f, 1);
|
||||
PresentCameraTargetSet(object, 0.0f, 220.0f, 250.0f, 1);
|
||||
|
||||
return var_r30;
|
||||
return object;
|
||||
}
|
||||
|
||||
void fn_1_8F0(omObjData *object)
|
||||
void PresentCameraKill(omObjData *object)
|
||||
{
|
||||
HuMemDirectFree(object->data);
|
||||
}
|
||||
|
||||
void fn_1_920(omObjData *object, float arg8, float arg9, float argA, s32 arg1)
|
||||
void PresentCameraTargetSet(omObjData *object, float x, float y, float z, s32 duration)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
CameraWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_58.x = arg8;
|
||||
var_r31->unk_58.y = arg9;
|
||||
var_r31->unk_58.z = argA;
|
||||
work->posTarget.x = x;
|
||||
work->posTarget.y = y;
|
||||
work->posTarget.z = z;
|
||||
|
||||
var_r31->unk_2C = var_r31->pos;
|
||||
var_r31->unk_84 = 0.0f;
|
||||
var_r31->unk_88 = 1.0f / arg1;
|
||||
work->posPrev = work->pos;
|
||||
work->timeEye = 0.0f;
|
||||
work->eyeSpeed = 1.0f / duration;
|
||||
}
|
||||
|
||||
void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1)
|
||||
void PresentCameraFocusSet(omObjData *object, float x, float y, float z, s32 duration)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
CameraWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_64.x = arg8;
|
||||
var_r31->unk_64.y = arg9;
|
||||
var_r31->unk_64.z = argA;
|
||||
work->posFocus.x = x;
|
||||
work->posFocus.y = y;
|
||||
work->posFocus.z = z;
|
||||
|
||||
var_r31->unk_38 = var_r31->target;
|
||||
var_r31->unk_8C = 0.0f;
|
||||
var_r31->unk_90 = 1.0f / arg1;
|
||||
work->targetPrev = work->target;
|
||||
work->timeTarget = 0.0f;
|
||||
work->targetSpeed = 1.0f / duration;
|
||||
}
|
||||
|
||||
void fn_1_A28(omObjData *object, s32 arg1, float arg8, float arg9, float argA)
|
||||
void PresentCameraViewSet(omObjData *object, float zoom, float rot, float y, s32 duration)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
CameraWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_64.y = argA;
|
||||
var_r31->unk_7C = arg8;
|
||||
var_r31->unk_80 = arg9;
|
||||
work->posFocus.y = y;
|
||||
work->zoomTarget = zoom;
|
||||
work->rotTarget = rot;
|
||||
|
||||
var_r31->unk_38.y = var_r31->target.y;
|
||||
var_r31->unk_50 = var_r31->unk_24;
|
||||
var_r31->unk_54 = var_r31->unk_28;
|
||||
var_r31->unk_94 = 0.0f;
|
||||
var_r31->unk_98 = 1.0f / arg1;
|
||||
work->targetPrev.y = work->target.y;
|
||||
work->zoomPrev = work->zoom;
|
||||
work->rotPrev = work->rot;
|
||||
work->timeRot = 0.0f;
|
||||
work->rotSpeed = 1.0f / duration;
|
||||
}
|
||||
|
||||
float fn_1_AAC(omObjData *object)
|
||||
float PresentCameraZoomGet(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
float var_f31;
|
||||
CameraWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_f31 = var_r31->unk_24;
|
||||
float var_f31 = work->zoom;
|
||||
return var_f31;
|
||||
}
|
||||
|
||||
float fn_1_ADC(omObjData *object)
|
||||
float PresentCameraRotGet(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
float var_f31;
|
||||
CameraWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_f31 = var_r31->unk_28;
|
||||
float var_f31 = work->rot;
|
||||
return var_f31;
|
||||
}
|
||||
|
||||
void fn_1_B0C(omObjData *object, float *arg1, float *arg2, float *arg3)
|
||||
void PresentCameraPosGet(omObjData *object, float *x, float *y, float *z)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
CameraWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
*arg1 = var_r31->pos.x;
|
||||
*arg2 = var_r31->pos.y;
|
||||
*arg3 = var_r31->pos.z;
|
||||
*x = work->pos.x;
|
||||
*y = work->pos.y;
|
||||
*z = work->pos.z;
|
||||
}
|
||||
|
||||
void fn_1_B3C(omObjData *object, float *arg1, float *arg2, float *arg3)
|
||||
void PresentCameraTargetGet(omObjData *object, float *x, float *y, float *z)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
CameraWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
*arg1 = var_r31->target.x;
|
||||
*arg2 = var_r31->target.y;
|
||||
*arg3 = var_r31->target.z;
|
||||
*x = work->target.x;
|
||||
*y = work->target.y;
|
||||
*z = work->target.z;
|
||||
}
|
||||
|
||||
s32 fn_1_B6C(omObjData *object)
|
||||
s32 PresentCameraDoneCheck(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
CameraWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r30 = 1;
|
||||
var_r29 = 1;
|
||||
if (!(var_r31->unk_8C < 1.0f) && !(var_r31->unk_94 < 1.0f)) {
|
||||
s32 var_r30 = 1;
|
||||
s32 var_r29 = 1;
|
||||
|
||||
if (!(work->timeTarget < 1.0f) && !(work->timeRot < 1.0f)) {
|
||||
var_r29 = 0;
|
||||
}
|
||||
if (!var_r29 && !(var_r31->unk_84 < 1.0f)) {
|
||||
if (!var_r29 && !(work->timeEye < 1.0f)) {
|
||||
var_r30 = 0;
|
||||
}
|
||||
return var_r30;
|
||||
}
|
||||
|
||||
void fn_1_BF8(omObjData *object)
|
||||
static void ExecCameraObj(omObjData *object)
|
||||
{
|
||||
fn_1_C20(object);
|
||||
ExecCamera(object);
|
||||
}
|
||||
|
||||
void fn_1_C20(omObjData *object)
|
||||
static void ExecCamera(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
float var_f31;
|
||||
float var_f30;
|
||||
float var_f29;
|
||||
float var_f28;
|
||||
float var_f27;
|
||||
CameraWork *work = object->data;
|
||||
float weight;
|
||||
float dx;
|
||||
float dz;
|
||||
|
||||
var_r31 = object->data;
|
||||
if (var_r31->unk_84 < 1.0f) {
|
||||
var_f28 = sind(90.0f * var_r31->unk_84);
|
||||
var_r31->pos.x = var_r31->unk_2C.x + var_f28 * (var_r31->unk_58.x - var_r31->unk_2C.x);
|
||||
var_r31->pos.y = var_r31->unk_2C.y + var_f28 * (var_r31->unk_58.y - var_r31->unk_2C.y);
|
||||
var_r31->pos.z = var_r31->unk_2C.z + var_f28 * (var_r31->unk_58.z - var_r31->unk_2C.z);
|
||||
if (work->timeEye < 1.0f) {
|
||||
weight = sind(90.0f * work->timeEye);
|
||||
work->pos.x = work->posPrev.x + weight * (work->posTarget.x - work->posPrev.x);
|
||||
work->pos.y = work->posPrev.y + weight * (work->posTarget.y - work->posPrev.y);
|
||||
work->pos.z = work->posPrev.z + weight * (work->posTarget.z - work->posPrev.z);
|
||||
|
||||
if ((var_r31->unk_84 += var_r31->unk_88) >= 1.0f) {
|
||||
var_r31->pos = var_r31->unk_58;
|
||||
if ((work->timeEye += work->eyeSpeed) >= 1.0f) {
|
||||
work->pos = work->posTarget;
|
||||
}
|
||||
}
|
||||
if (var_r31->unk_8C < 1.0f) {
|
||||
var_f28 = sind(90.0f * var_r31->unk_8C);
|
||||
var_r31->target.x = var_r31->unk_38.x + var_f28 * (var_r31->unk_64.x - var_r31->unk_38.x);
|
||||
var_r31->target.y = var_r31->unk_38.y + var_f28 * (var_r31->unk_64.y - var_r31->unk_38.y);
|
||||
var_r31->target.z = var_r31->unk_38.z + var_f28 * (var_r31->unk_64.z - var_r31->unk_38.z);
|
||||
if (work->timeTarget < 1.0f) {
|
||||
weight = sind(90.0f * work->timeTarget);
|
||||
work->target.x = work->targetPrev.x + weight * (work->posFocus.x - work->targetPrev.x);
|
||||
work->target.y = work->targetPrev.y + weight * (work->posFocus.y - work->targetPrev.y);
|
||||
work->target.z = work->targetPrev.z + weight * (work->posFocus.z - work->targetPrev.z);
|
||||
|
||||
if ((var_r31->unk_8C += var_r31->unk_90) >= 1.0f) {
|
||||
var_r31->target = var_r31->unk_64;
|
||||
if ((work->timeTarget += work->targetSpeed) >= 1.0f) {
|
||||
work->target = work->posFocus;
|
||||
}
|
||||
}
|
||||
if (var_r31->unk_94 < 1.0f) {
|
||||
var_f28 = sind(90.0f * var_r31->unk_94);
|
||||
var_r31->target.y = var_r31->unk_38.y + (var_f28 * (var_r31->unk_64.y - var_r31->unk_38.y));
|
||||
var_r31->unk_24 = var_r31->unk_50 + (var_f28 * (var_r31->unk_7C - var_r31->unk_50));
|
||||
var_r31->unk_28 = var_r31->unk_54 + (var_f28 * (var_r31->unk_80 - var_r31->unk_54));
|
||||
if (work->timeRot < 1.0f) {
|
||||
weight = sind(90.0f * work->timeRot);
|
||||
work->target.y = work->targetPrev.y + (weight * (work->posFocus.y - work->targetPrev.y));
|
||||
work->zoom = work->zoomPrev + (weight * (work->zoomTarget - work->zoomPrev));
|
||||
work->rot = work->rotPrev + (weight * (work->rotTarget - work->rotPrev));
|
||||
|
||||
if ((var_r31->unk_94 += var_r31->unk_98) >= 1.0f) {
|
||||
var_r31->target.y = var_r31->unk_64.y;
|
||||
var_r31->unk_24 = var_r31->unk_7C;
|
||||
var_r31->unk_28 = var_r31->unk_80;
|
||||
if ((work->timeRot += work->rotSpeed) >= 1.0f) {
|
||||
work->target.y = work->posFocus.y;
|
||||
work->zoom = work->zoomTarget;
|
||||
work->rot = work->rotTarget;
|
||||
}
|
||||
var_r31->target.x = var_r31->unk_24 * -sind(var_r31->unk_28);
|
||||
var_r31->target.z = var_r31->unk_24 * cosd(var_r31->unk_28);
|
||||
work->target.x = work->zoom * -sind(work->rot);
|
||||
work->target.z = work->zoom * cosd(work->rot);
|
||||
}
|
||||
var_f31 = var_r31->target.x - var_r31->pos.x;
|
||||
var_f30 = var_r31->target.z - var_r31->pos.z;
|
||||
dx = work->target.x - work->pos.x;
|
||||
dz = work->target.z - work->pos.z;
|
||||
|
||||
var_r31->unk_24 = sqrtf(var_f31 * var_f31 + var_f30 * var_f30);
|
||||
var_r31->unk_28 = fmod(-atan2d(var_f31, var_f30), 360.0);
|
||||
if (var_r31->unk_28 < 0.0f) {
|
||||
var_r31->unk_28 += 360.0f;
|
||||
work->zoom = sqrtf(dx * dx + dz * dz);
|
||||
work->rot = fmod(-atan2d(dx, dz), 360.0);
|
||||
if (work->rot < 0.0f) {
|
||||
work->rot += 360.0f;
|
||||
}
|
||||
Hu3DCameraPosSet(1, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z, var_r31->up.x, var_r31->up.y, var_r31->up.z, var_r31->target.x,
|
||||
var_r31->target.y, var_r31->target.z);
|
||||
Hu3DCameraPosSet(1, work->pos.x, work->pos.y, work->pos.z, work->up.x, work->up.y, work->up.z, work->target.x, work->target.y, work->target.z);
|
||||
}
|
||||
|
||||
void fn_1_1198(omObjData *object)
|
||||
static void CameraExecDebug(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
if (HuPadBtn[0] & PAD_BUTTON_B) {
|
||||
var_r31 = object->data;
|
||||
var_r31->target.x = var_r31->target.x + (0.5f * HuPadStkX[0]);
|
||||
var_r31->target.y = var_r31->target.y + (0.5f * HuPadStkY[0]);
|
||||
var_r31->pos.z = var_r31->pos.z + (0.5f * HuPadTrigL[0]);
|
||||
var_r31->pos.z = var_r31->pos.z - (0.5f * HuPadTrigR[0]);
|
||||
var_r31->pos.x = var_r31->pos.x + (0.5f * HuPadSubStkY[0]);
|
||||
var_r31->pos.y = var_r31->pos.y + (0.5f * HuPadSubStkX[0]);
|
||||
CameraWork *work = object->data;
|
||||
|
||||
work->target.x += (0.5f * HuPadStkX[0]);
|
||||
work->target.y += (0.5f * HuPadStkY[0]);
|
||||
work->pos.z += (0.5f * HuPadTrigL[0]);
|
||||
work->pos.z -= (0.5f * HuPadTrigR[0]);
|
||||
work->pos.x += (0.5f * HuPadSubStkY[0]);
|
||||
work->pos.y += (0.5f * HuPadSubStkX[0]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_1398(omObjData *object)
|
||||
static void CameraPrintDebug(omObjData *object)
|
||||
{
|
||||
UnkPresentCameraStruct *var_r31;
|
||||
|
||||
var_r31 = object->data;
|
||||
print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", var_r31->target.x, var_r31->target.y, var_r31->target.z);
|
||||
print8(32, 80, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", var_r31->pos.x, var_r31->pos.y, var_r31->pos.z);
|
||||
print8(32, 96, 1.5f, "R : %.2f DEG: %.2f", var_r31->unk_24, var_r31->unk_28);
|
||||
CameraWork *work = object->data;
|
||||
print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", work->target.x, work->target.y, work->target.z);
|
||||
print8(32, 80, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", work->pos.x, work->pos.y, work->pos.z);
|
||||
print8(32, 96, 1.5f, "R : %.2f DEG: %.2f", work->zoom, work->rot);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,222 +6,224 @@
|
|||
|
||||
#include "REL/present.h"
|
||||
|
||||
void fn_1_4620(omObjData *arg0);
|
||||
void fn_1_4880(omObjData *arg0);
|
||||
typedef struct GuideWork {
|
||||
/* 0x00 */ s32 execMode;
|
||||
/* 0x04 */ s16 motion;
|
||||
/* 0x08 */ Vec pos;
|
||||
/* 0x14 */ Vec newPos;
|
||||
/* 0x20 */ Vec rot;
|
||||
/* 0x2C */ Vec posDelta;
|
||||
/* 0x38 */ float distRemain;
|
||||
/* 0x3C */ char unk3C[0xC];
|
||||
/* 0x48 */ float time;
|
||||
/* 0x4C */ float speed;
|
||||
/* 0x50 */ s32 unk_50;
|
||||
/* 0x54 */ s32 unk_54;
|
||||
} GuideWork; /* size = 0x58 */
|
||||
|
||||
omObjFunc lbl_1_data_1A0[] = { NULL, fn_1_4620, fn_1_4880 };
|
||||
static void ExecGuideEnter(omObjData *object);
|
||||
static void ExecGuideLeave(omObjData *object);
|
||||
static void UpdateGuide(omObjData *object);
|
||||
static float LerpAngle(float start, float end, float time);
|
||||
|
||||
static const s32 lbl_1_rodata_BD8[] = { 0x006E0089, 0x006E008A, 0x006E008B };
|
||||
static omObjFunc execModeTbl[] = { NULL, ExecGuideEnter, ExecGuideLeave };
|
||||
|
||||
void fn_1_4A04(omObjData *object);
|
||||
float fn_1_4CEC(float arg8, float arg9, float argA);
|
||||
static const s32 guideMotTbl[] = {
|
||||
DATA_MAKE_NUM(DATADIR_PRESENT, 137),
|
||||
DATA_MAKE_NUM(DATADIR_PRESENT, 138),
|
||||
DATA_MAKE_NUM(DATADIR_PRESENT, 139),
|
||||
};
|
||||
|
||||
omObjData *fn_1_42F4(void)
|
||||
omObjData *PresentGuideCreate(void)
|
||||
{
|
||||
omObjData *var_r31;
|
||||
s32 var_lr;
|
||||
s32 var_r29;
|
||||
UnkPresentStruct5 *var_r30;
|
||||
|
||||
var_r31 = omAddObjEx(lbl_1_bss_4, 1002, 1, 3, 2, NULL);
|
||||
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 88, MEMORY_DEFAULT_NUM);
|
||||
var_r31->data = var_r30;
|
||||
var_r30->x = 0.0f;
|
||||
var_r30->z = 0.0f;
|
||||
var_r30->y = 0.0f;
|
||||
var_r30->unk_20 = 0.0f;
|
||||
var_r30->unk_24 = 0.0f;
|
||||
var_r30->unk_28 = 0.0f;
|
||||
var_r30->unk_2C = 0.0f;
|
||||
var_r30->unk_34 = 0.0f;
|
||||
var_r30->unk_30 = 0.0f;
|
||||
var_r31->model[0] = Hu3DModelCreate(HuDataReadNum(0x6E0088, MEMORY_DEFAULT_NUM));
|
||||
Hu3DModelLayerSet(var_r31->model[0], 1);
|
||||
omObjData *object = omAddObjEx(presentObjMan, 1002, 1, 3, 2, NULL);
|
||||
GuideWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GuideWork), MEMORY_DEFAULT_NUM);
|
||||
object->data = work;
|
||||
|
||||
work->pos.x = 0.0f;
|
||||
work->pos.z = 0.0f;
|
||||
work->pos.y = 0.0f;
|
||||
work->rot.x = 0.0f;
|
||||
work->rot.y = 0.0f;
|
||||
work->rot.z = 0.0f;
|
||||
|
||||
work->posDelta.x = 0.0f;
|
||||
work->posDelta.z = 0.0f;
|
||||
work->posDelta.y = 0.0f;
|
||||
object->model[0] = Hu3DModelCreate(HuDataReadNum(DATA_MAKE_NUM(DATADIR_PRESENT, 136), MEMORY_DEFAULT_NUM));
|
||||
Hu3DModelLayerSet(object->model[0], 1);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 3; var_r29++) {
|
||||
var_r31->motion[var_r29] = Hu3DJointMotion(var_r31->model[0], HuDataSelHeapReadNum(lbl_1_rodata_BD8[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||
object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||
}
|
||||
Hu3DMotionShiftSet(var_r31->model[0], var_r31->motion[var_r30->unk_04 = 0], 0.0f, 8.0f, 0x40000001);
|
||||
var_r30->unk_50 = CharModelEffectNpcInit(var_r31->model[0], var_r31->motion[2], 1, 10);
|
||||
var_r30->unk_54 = CharModelEffectNpcInit(var_r31->model[0], var_r31->motion[1], 0, 10);
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = 0], 0.0f, 8.0f, 0x40000001);
|
||||
work->unk_50 = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 10);
|
||||
work->unk_54 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 10);
|
||||
CharModelLayerSetAll(1);
|
||||
Hu3DModelShadowSet(var_r31->model[0]);
|
||||
fn_1_45C0(var_r31, 0);
|
||||
fn_1_4A04(var_r31);
|
||||
Hu3DModelAttrSet(var_r31->model[0], 1);
|
||||
Hu3DModelShadowSet(object->model[0]);
|
||||
PresentGuideExecModeSet(object, PRESENT_GUIDE_MODE_NONE);
|
||||
UpdateGuide(object);
|
||||
Hu3DModelAttrSet(object->model[0], 1);
|
||||
|
||||
return var_r31;
|
||||
return object;
|
||||
}
|
||||
|
||||
void fn_1_4534(omObjData *object)
|
||||
void PresentGuideKill(omObjData *object)
|
||||
{
|
||||
s32 var_r31;
|
||||
void *var_r29;
|
||||
void *var_r30;
|
||||
void *work = object->data;
|
||||
|
||||
var_r29 = object->data;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 1; var_r31++) {
|
||||
Hu3DModelKill(object->model[var_r31]);
|
||||
s32 i;
|
||||
for (i = 0; i < 1; i++) {
|
||||
Hu3DModelKill(object->model[i]);
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
Hu3DMotionKill(object->motion[var_r31]);
|
||||
for (i = 0; i < 3; i++) {
|
||||
Hu3DMotionKill(object->motion[i]);
|
||||
}
|
||||
HuMemDirectFree(var_r29);
|
||||
HuMemDirectFree(work);
|
||||
}
|
||||
|
||||
void fn_1_45C0(omObjData *object, s32 arg1)
|
||||
void PresentGuideExecModeSet(omObjData *object, s32 execMode)
|
||||
{
|
||||
UnkPresentStruct5 *var_r31;
|
||||
GuideWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r31->unk_00 = arg1;
|
||||
object->func = lbl_1_data_1A0[arg1];
|
||||
work->execMode = execMode;
|
||||
object->func = execModeTbl[execMode];
|
||||
object->unk10 = 0;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
|
||||
s32 fn_1_4604(omObjData *object)
|
||||
s32 PresentGuideExecModeGet(omObjData *object)
|
||||
{
|
||||
s32 *var_r31;
|
||||
GuideWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
return *var_r31;
|
||||
return work->execMode;
|
||||
}
|
||||
|
||||
void fn_1_4620(omObjData *object)
|
||||
static void ExecGuideEnter(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
omObjData *var_r30;
|
||||
void *var_r29;
|
||||
UnkPresentStruct5 *var_r31;
|
||||
GuideWork *work = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
Hu3DModelAttrReset(object->model[0], 1);
|
||||
var_r31->x = -300.0f;
|
||||
var_r31->z = -180.0f;
|
||||
var_r31->unk_48 = 0.0f;
|
||||
var_r31->unk_4C = 0.025f;
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
var_f31 = sind(90.0f * var_r31->unk_48);
|
||||
var_f31 *= var_f31;
|
||||
var_r31->unk_14 = -300.0f + (300.0f * var_f31);
|
||||
var_r31->unk_2C = var_r31->unk_14 - var_r31->x;
|
||||
if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) {
|
||||
case 0:
|
||||
Hu3DModelAttrReset(object->model[0], 1);
|
||||
work->pos.x = -300.0f;
|
||||
work->pos.z = -180.0f;
|
||||
work->time = 0.0f;
|
||||
work->speed = 0.025f;
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
var_f31 = sind(90.0f * work->time);
|
||||
var_f31 *= var_f31;
|
||||
work->newPos.x = -300.0f + (300.0f * var_f31);
|
||||
work->posDelta.x = work->newPos.x - work->pos.x;
|
||||
if ((work->time += work->speed) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
work->pos.x = 0.0f;
|
||||
work->time = 0.0f;
|
||||
work->speed = 0.05f;
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
work->posDelta.x = 0.0f;
|
||||
work->posDelta.z = 0.01f;
|
||||
if ((work->time += work->speed) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
work->rot.y = 0.0f;
|
||||
work->posDelta.x = 0.0f;
|
||||
work->posDelta.y = 0.0f;
|
||||
work->posDelta.z = 0.0f;
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
PresentGuideExecModeSet(object, PRESENT_GUIDE_MODE_NONE);
|
||||
break;
|
||||
}
|
||||
var_r31->x = 0.0f;
|
||||
var_r31->unk_48 = 0.0f;
|
||||
var_r31->unk_4C = 0.05f;
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
var_r31->unk_2C = 0.0f;
|
||||
var_r31->unk_34 = 0.01f;
|
||||
if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
var_r31->unk_24 = 0.0f;
|
||||
var_r31->unk_2C = 0.0f;
|
||||
var_r31->unk_30 = 0.0f;
|
||||
var_r31->unk_34 = 0.0f;
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
fn_1_45C0(object, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
fn_1_4A04(object);
|
||||
UpdateGuide(object);
|
||||
}
|
||||
|
||||
void fn_1_4880(omObjData *object)
|
||||
static void ExecGuideLeave(omObjData *object)
|
||||
{
|
||||
float var_f31;
|
||||
UnkPresentStruct5 *var_r30;
|
||||
void *var_r29;
|
||||
float weight;
|
||||
|
||||
var_r30 = object->data;
|
||||
GuideWork *work = object->data;
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
var_r30->unk_48 = 0.0f;
|
||||
var_r30->unk_4C = 0.025f;
|
||||
Hu3DModelAttrReset(object->model[0], 1);
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
var_f31 = sind(90.0f * var_r30->unk_48);
|
||||
var_f31 *= var_f31;
|
||||
var_r30->unk_14 = -(300.0f * var_f31);
|
||||
var_r30->unk_2C = var_r30->unk_14 - var_r30->x;
|
||||
if ((var_r30->unk_48 = var_r30->unk_48 + var_r30->unk_4C) < 1.0f) {
|
||||
case 0:
|
||||
work->time = 0.0f;
|
||||
work->speed = 0.025f;
|
||||
Hu3DModelAttrReset(object->model[0], 1);
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
weight = sind(90.0f * work->time);
|
||||
weight *= weight;
|
||||
work->newPos.x = -(300.0f * weight);
|
||||
work->posDelta.x = work->newPos.x - work->pos.x;
|
||||
if ((work->time += work->speed) < 1.0f) {
|
||||
break;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
Hu3DModelAttrSet(object->model[0], 1);
|
||||
PresentGuideExecModeSet(object, PRESENT_GUIDE_MODE_NONE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
Hu3DModelAttrSet(object->model[0], 1);
|
||||
fn_1_45C0(object, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
fn_1_4A04(object);
|
||||
UpdateGuide(object);
|
||||
(void)object;
|
||||
}
|
||||
|
||||
void fn_1_4A04(omObjData *object)
|
||||
static void UpdateGuide(omObjData *object)
|
||||
{
|
||||
float var_f29;
|
||||
float var_f30;
|
||||
s16 var_r29;
|
||||
UnkPresentStruct5 *var_r31;
|
||||
GuideWork *work = object->data;
|
||||
s16 motion = 0;
|
||||
|
||||
var_r31 = object->data;
|
||||
var_r29 = 0;
|
||||
var_f30 = var_r31->unk_2C * var_r31->unk_2C + var_r31->unk_34 * var_r31->unk_34;
|
||||
var_r31->unk_38 = sqrtf(var_f30);
|
||||
if (0.001f <= var_r31->unk_38) {
|
||||
if (12.0f <= var_r31->unk_38) {
|
||||
var_r31->unk_2C = var_r31->unk_2C / var_r31->unk_38;
|
||||
var_r31->unk_34 = var_r31->unk_34 / var_r31->unk_38;
|
||||
var_r31->unk_38 = 12.0f;
|
||||
var_r31->unk_2C = 12.0f * var_r31->unk_2C;
|
||||
var_r31->unk_34 = 12.0f * var_r31->unk_34;
|
||||
work->distRemain = sqrtf(work->posDelta.x * work->posDelta.x + work->posDelta.z * work->posDelta.z);
|
||||
if (0.001f <= work->distRemain) {
|
||||
if (12.0f <= work->distRemain) {
|
||||
work->posDelta.x /= work->distRemain;
|
||||
work->posDelta.z /= work->distRemain;
|
||||
work->distRemain = 12.0f;
|
||||
work->posDelta.x = 12.0f * work->posDelta.x;
|
||||
work->posDelta.z = 12.0f * work->posDelta.z;
|
||||
}
|
||||
var_r31->unk_24 = fn_1_4CEC(var_r31->unk_24, atan2d(var_r31->unk_2C, var_r31->unk_34), 0.4f);
|
||||
work->rot.y = LerpAngle(work->rot.y, atan2d(work->posDelta.x, work->posDelta.z), 0.4f);
|
||||
|
||||
if (8.0f <= var_r31->unk_38) {
|
||||
var_r29 = 2;
|
||||
} else {
|
||||
var_r29 = 1;
|
||||
if (8.0f <= work->distRemain) {
|
||||
motion = 2;
|
||||
}
|
||||
else {
|
||||
motion = 1;
|
||||
}
|
||||
}
|
||||
var_r31->x = var_r31->x + var_r31->unk_2C;
|
||||
var_r31->z = var_r31->z + var_r31->unk_34;
|
||||
if (var_r31->unk_04 != var_r29) {
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[var_r31->unk_04 = var_r29], 0.0f, 8.0f, 0x40000001); // or 0x41000000
|
||||
work->pos.x += work->posDelta.x;
|
||||
work->pos.z += work->posDelta.z;
|
||||
if (work->motion != motion) {
|
||||
Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = motion], 0.0f, 8.0f, 0x40000001);
|
||||
}
|
||||
omSetTra(object, var_r31->x, var_r31->y, var_r31->z);
|
||||
omSetRot(object, var_r31->unk_20, var_r31->unk_24, var_r31->unk_28);
|
||||
omSetTra(object, work->pos.x, work->pos.y, work->pos.z);
|
||||
omSetRot(object, work->rot.x, work->rot.y, work->rot.z);
|
||||
}
|
||||
|
||||
float fn_1_4CEC(float arg8, float arg9, float argA)
|
||||
static float LerpAngle(float start, float end, float time)
|
||||
{
|
||||
float var_f30;
|
||||
float var_f31;
|
||||
float angle;
|
||||
|
||||
var_f31 = fmod(arg9 - arg8, 360.0f);
|
||||
if (0.0f > var_f31) {
|
||||
var_f31 += 360.0f;
|
||||
float delta = fmod(end - start, 360.0f);
|
||||
if (0.0f > delta) {
|
||||
delta += 360.0f;
|
||||
}
|
||||
if (180.0f < var_f31) {
|
||||
var_f31 -= 360.0f;
|
||||
if (180.0f < delta) {
|
||||
delta -= 360.0f;
|
||||
}
|
||||
var_f30 = fmod(arg8 + (var_f31 * argA), 360.0f);
|
||||
if (0.0f > var_f30) {
|
||||
var_f30 += 360.0f;
|
||||
angle = fmod(start + (delta * time), 360.0f);
|
||||
if (0.0f > angle) {
|
||||
angle += 360.0f;
|
||||
}
|
||||
return var_f30;
|
||||
return angle;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,169 +8,179 @@
|
|||
|
||||
#include "REL/present.h"
|
||||
|
||||
omObjData *lbl_1_bss_18;
|
||||
omObjData *lbl_1_bss_14;
|
||||
omObjData *lbl_1_bss_10;
|
||||
omObjData *lbl_1_bss_C;
|
||||
omObjData *lbl_1_bss_8;
|
||||
Process *lbl_1_bss_4;
|
||||
omObjData *lbl_1_bss_0;
|
||||
typedef struct FaderWork {
|
||||
/* 0x00 */ s16 id;
|
||||
/* 0x04 */ float tplvl;
|
||||
/* 0x08 */ float speed;
|
||||
} FaderWork; /* size 0x0C */ // same as in option/scene.c
|
||||
|
||||
void fn_1_254(void);
|
||||
void fn_1_45C(void);
|
||||
void fn_1_5EC(omObjData *object);
|
||||
typedef struct FaderWork2 {
|
||||
/* 0x00 */ s16 id;
|
||||
/* 0x04 */ float tpMultiplier;
|
||||
/* 0x08 */ float tplvl;
|
||||
/* 0x0C */ float speed;
|
||||
} FaderWork2; /* size = 0x10 */
|
||||
|
||||
omObjData *presentState;
|
||||
omObjData *lbl_1_bss_14;
|
||||
omObjData *present;
|
||||
omObjData *lbl_1_bss_C;
|
||||
omObjData *presentCamera;
|
||||
Process *presentObjMan;
|
||||
static omObjData *scene;
|
||||
|
||||
static void FadeSprite(void);
|
||||
static void FadeModel(void);
|
||||
static void SceneMain(omObjData *object);
|
||||
|
||||
void ObjectSetup(void)
|
||||
{
|
||||
lbl_1_bss_4 = omInitObjMan(150, 8192);
|
||||
omGameSysInit(lbl_1_bss_4);
|
||||
presentObjMan = omInitObjMan(150, 8192);
|
||||
omGameSysInit(presentObjMan);
|
||||
HuWinInit(1);
|
||||
lbl_1_bss_0 = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 0, fn_1_5EC);
|
||||
lbl_1_bss_0->unk10 = 0;
|
||||
lbl_1_bss_18 = fn_1_39A8();
|
||||
scene = omAddObjEx(presentObjMan, 1000, 0, 0, 0, SceneMain);
|
||||
scene->unk10 = 0;
|
||||
presentState = PresentStateCreate();
|
||||
}
|
||||
|
||||
void fn_1_144(s16 arg0, s32 arg1, s32 arg2)
|
||||
void PresentFadeSprite(s16 sprite, BOOL inF, s32 duration)
|
||||
{
|
||||
Process *var_r30;
|
||||
UnkPresentStruct6 *var_r31;
|
||||
Process *process;
|
||||
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct6), MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_00 = arg0;
|
||||
var_r31->unk_08 = 1.0f / arg2;
|
||||
if (arg1) {
|
||||
var_r31->unk_08 = var_r31->unk_08;
|
||||
var_r31->unk_04 = 0.0f;
|
||||
} else {
|
||||
var_r31->unk_08 = -var_r31->unk_08;
|
||||
var_r31->unk_04 = 1.0f;
|
||||
FaderWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(FaderWork), MEMORY_DEFAULT_NUM);
|
||||
work->id = sprite;
|
||||
work->speed = 1.0f / duration;
|
||||
if (inF) {
|
||||
work->speed = work->speed;
|
||||
work->tplvl = 0.0f;
|
||||
}
|
||||
espDispOn(var_r31->unk_00);
|
||||
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
|
||||
var_r30 = HuPrcChildCreate(fn_1_254, 100, 5376, 0, HuPrcCurrentGet());
|
||||
var_r30->user_data = var_r31;
|
||||
else {
|
||||
work->speed = -work->speed;
|
||||
work->tplvl = 1.0f;
|
||||
}
|
||||
espDispOn(work->id);
|
||||
espTPLvlSet(work->id, work->tplvl);
|
||||
process = HuPrcChildCreate(FadeSprite, 100, 5376, 0, HuPrcCurrentGet());
|
||||
process->user_data = work;
|
||||
}
|
||||
|
||||
void fn_1_254(void)
|
||||
static void FadeSprite(void)
|
||||
{
|
||||
UnkPresentStruct6 *var_r31;
|
||||
FaderWork *work = HuPrcCurrentGet()->user_data;
|
||||
|
||||
var_r31 = HuPrcCurrentGet()->user_data;
|
||||
while (TRUE) {
|
||||
var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_08;
|
||||
if (var_r31->unk_04 > 1.0f) {
|
||||
var_r31->unk_04 = 1.0f;
|
||||
work->tplvl = work->tplvl + work->speed;
|
||||
if (work->tplvl > 1.0f) {
|
||||
work->tplvl = 1.0f;
|
||||
break;
|
||||
} else if (var_r31->unk_04 < 0.0f) {
|
||||
var_r31->unk_04 = 0.0f;
|
||||
}
|
||||
else if (work->tplvl < 0.0f) {
|
||||
work->tplvl = 0.0f;
|
||||
break;
|
||||
} else {
|
||||
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
|
||||
}
|
||||
else {
|
||||
espTPLvlSet(work->id, work->tplvl);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
espTPLvlSet(var_r31->unk_00, var_r31->unk_04);
|
||||
if (var_r31->unk_08 < 0.0f) {
|
||||
espDispOff(var_r31->unk_00);
|
||||
espTPLvlSet(work->id, work->tplvl);
|
||||
if (work->speed < 0.0f) {
|
||||
espDispOff(work->id);
|
||||
}
|
||||
HuMemDirectFree(work);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
void FadeSpriteWithMultiplier(s16 model, BOOL inF, float tpMultiplier, s32 duration)
|
||||
{
|
||||
Process *process;
|
||||
// bug: wrong struct in sizeof
|
||||
FaderWork2 *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(FaderWork), MEMORY_DEFAULT_NUM);
|
||||
work->id = model;
|
||||
work->speed = 1.0f / duration;
|
||||
work->tpMultiplier = tpMultiplier;
|
||||
|
||||
if (inF) {
|
||||
work->speed = work->speed;
|
||||
work->tplvl = 0.0f;
|
||||
}
|
||||
else {
|
||||
work->speed = -work->speed;
|
||||
work->tplvl = 1.0f;
|
||||
}
|
||||
Hu3DModelTPLvlSet(work->id, work->tplvl * work->tpMultiplier);
|
||||
Hu3DModelAttrReset(work->id, 1);
|
||||
process = HuPrcChildCreate(FadeModel, 100, 5376, 0, HuPrcCurrentGet());
|
||||
process->user_data = work;
|
||||
}
|
||||
|
||||
static void FadeModel(void)
|
||||
{
|
||||
FaderWork2 *var_r31 = HuPrcCurrentGet()->user_data;
|
||||
|
||||
while (TRUE) {
|
||||
var_r31->tplvl += var_r31->speed;
|
||||
if (var_r31->tplvl > 1.0f) {
|
||||
var_r31->tplvl = 1.0f;
|
||||
break;
|
||||
}
|
||||
else if (var_r31->tplvl < 0.0f) {
|
||||
var_r31->tplvl = 0.0f;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
Hu3DModelTPLvlSet(var_r31->id, var_r31->tplvl * var_r31->tpMultiplier);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
Hu3DModelTPLvlSet(var_r31->id, var_r31->tplvl * var_r31->tpMultiplier);
|
||||
if (var_r31->speed < 0.0f) {
|
||||
Hu3DModelAttrSet(var_r31->id, 1);
|
||||
}
|
||||
HuMemDirectFree(var_r31);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2)
|
||||
BOOL PresentPadCheck(u16 btn)
|
||||
{
|
||||
Process *var_r30;
|
||||
UnkPresentStruct6Weird *var_r31; // TODO correct type? why are only 12 bytes allocated?
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk_00 = arg0;
|
||||
var_r31->unk_0C = 1.0f / arg2;
|
||||
var_r31->unk_04 = arg8;
|
||||
|
||||
if (arg1) {
|
||||
var_r31->unk_0C = var_r31->unk_0C;
|
||||
var_r31->unk_08 = 0.0f;
|
||||
} else {
|
||||
var_r31->unk_0C = -var_r31->unk_0C;
|
||||
var_r31->unk_08 = 1.0f;
|
||||
}
|
||||
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
|
||||
Hu3DModelAttrReset(var_r31->unk_00, 1);
|
||||
var_r30 = HuPrcChildCreate(fn_1_45C, 100, 5376, 0, HuPrcCurrentGet());
|
||||
var_r30->user_data = var_r31;
|
||||
}
|
||||
|
||||
void fn_1_45C(void)
|
||||
{
|
||||
UnkPresentStruct6Weird *var_r31; // TODO correct type? how is 0C possible?
|
||||
|
||||
var_r31 = HuPrcCurrentGet()->user_data;
|
||||
while (TRUE) {
|
||||
var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_0C;
|
||||
if (var_r31->unk_08 > 1.0f) {
|
||||
var_r31->unk_08 = 1.0f;
|
||||
break;
|
||||
} else if (var_r31->unk_08 < 0.0f) {
|
||||
var_r31->unk_08 = 0.0f;
|
||||
break;
|
||||
} else {
|
||||
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04);
|
||||
if (var_r31->unk_0C < 0.0f) {
|
||||
Hu3DModelAttrSet(var_r31->unk_00, 1);
|
||||
}
|
||||
HuMemDirectFree(var_r31);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
u32 fn_1_550(u16 arg0)
|
||||
{
|
||||
u32 var_r31;
|
||||
|
||||
var_r31 = HuPadBtnDown[0] & arg0;
|
||||
u32 var_r31 = HuPadBtnDown[0] & btn;
|
||||
return var_r31 != 0;
|
||||
}
|
||||
|
||||
u32 fn_1_584(u16 arg0)
|
||||
BOOL PresentPadDStkRepCheck(u16 dir)
|
||||
{
|
||||
u32 var_r31;
|
||||
|
||||
var_r31 = HuPadDStkRep[0] & arg0;
|
||||
u32 var_r31 = HuPadDStkRep[0] & dir;
|
||||
return var_r31 != 0;
|
||||
}
|
||||
|
||||
u32 fn_1_5B8(u16 arg0)
|
||||
BOOL PresentPadDStkCheck(u16 dir)
|
||||
{
|
||||
u32 var_r31;
|
||||
|
||||
var_r31 = HuPadDStk[0] & arg0;
|
||||
u32 var_r31 = HuPadDStk[0] & dir;
|
||||
return var_r31 != 0;
|
||||
}
|
||||
|
||||
void fn_1_5EC(omObjData *object)
|
||||
static void SceneMain(omObjData *object)
|
||||
{
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
if (!omSysExitReq) {
|
||||
case 0:
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
if (!omSysExitReq) {
|
||||
break;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
HuAudFadeOut(1000);
|
||||
object->unk10 = 3;
|
||||
break;
|
||||
case 3:
|
||||
if (!WipeStatGet()) {
|
||||
PresentStateKill(presentState);
|
||||
omOvlReturnEx(1, 1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
|
||||
HuAudFadeOut(1000);
|
||||
object->unk10 = 3;
|
||||
break;
|
||||
case 3:
|
||||
if (!WipeStatGet()) {
|
||||
fn_1_3B18(lbl_1_bss_18);
|
||||
omOvlReturnEx(1, 1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,304 +7,314 @@
|
|||
|
||||
#include "REL/present.h"
|
||||
|
||||
omObjData *lbl_1_bss_20;
|
||||
typedef struct StateWork {
|
||||
/* 0x00 */ PresentWindow *window;
|
||||
/* 0x04 */ s32 quitTimer;
|
||||
} StateWork; /* size = 0x08 */
|
||||
|
||||
UnkPresentStruct4 lbl_1_data_F0 = { { 0.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } };
|
||||
typedef struct UnkShadowDataStruct {
|
||||
/* 0x00 */ Vec pos;
|
||||
/* 0x0C */ Vec up;
|
||||
/* 0x18 */ Vec target;
|
||||
} UnkShadowDataStruct; /* size = 0x24 */
|
||||
|
||||
void fn_1_3B8C(omObjData *object);
|
||||
void fn_1_3DB8(omObjData *object);
|
||||
void fn_1_4040(UnkWindowDataStruct *arg0);
|
||||
void fn_1_4190(UnkWindowDataStruct *arg0);
|
||||
void fn_1_41E0(void);
|
||||
void fn_1_41BC(UnkWindowDataStruct *arg0, s32 arg1);
|
||||
omObjData *presentGuide;
|
||||
|
||||
omObjData *fn_1_39A8(void)
|
||||
static UnkShadowDataStruct shadowPosTbl = {
|
||||
{ 0.0f, 3000.0f, 1.0f },
|
||||
{ 0.0f, 1.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
};
|
||||
|
||||
static void ExecPresentView(omObjData *object);
|
||||
static void ExecPresentGet(omObjData *object);
|
||||
void PresentWinDispOff(PresentWindow *work);
|
||||
void PresentWinChoiceSet(PresentWindow *work, s32 choice);
|
||||
static void ExecWindow(void);
|
||||
|
||||
omObjData *PresentStateCreate(void)
|
||||
{
|
||||
omObjData *object;
|
||||
UnkPresentStruct *var_r30;
|
||||
omObjData *object = omAddObjEx(presentObjMan, 1000, 0, 0, 4, NULL);
|
||||
StateWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StateWork), MEMORY_DEFAULT_NUM);
|
||||
object->data = work;
|
||||
|
||||
object = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 4, NULL);
|
||||
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct), MEMORY_DEFAULT_NUM);
|
||||
object->data = var_r30;
|
||||
var_r30->unk_04 = 0;
|
||||
lbl_1_bss_8 = fn_1_6B4();
|
||||
lbl_1_bss_10 = fn_1_1458();
|
||||
lbl_1_bss_20 = fn_1_42F4();
|
||||
var_r30->unk_00 = fn_1_3EA4(0);
|
||||
work->quitTimer = 0;
|
||||
presentCamera = PresentCameraCreate();
|
||||
present = PresentCreate();
|
||||
presentGuide = PresentGuideCreate();
|
||||
work->window = PresentWinCreate(0);
|
||||
Hu3DShadowCreate(30.0f, 20.0f, 5000.0f);
|
||||
Hu3DShadowTPLvlSet(0.45f);
|
||||
Hu3DShadowPosSet(&lbl_1_data_F0.unk_00, &lbl_1_data_F0.unk_0C, &lbl_1_data_F0.unk_18);
|
||||
Hu3DShadowPosSet(&shadowPosTbl.pos, &shadowPosTbl.up, &shadowPosTbl.target);
|
||||
|
||||
if (omovlevtno > 0) {
|
||||
OSReport("*** PRESENTROOM ( PRESENT GET MODE ) ***\n");
|
||||
object->func = fn_1_3DB8;
|
||||
object->func = ExecPresentGet;
|
||||
object->unk10 = 0;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
OSReport("*** PRESENTROOM ( PRESENT VIEW MODE ) ***\n");
|
||||
object->func = fn_1_3B8C;
|
||||
object->func = ExecPresentView;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
|
||||
return object;
|
||||
}
|
||||
|
||||
void fn_1_3B18(omObjData *object)
|
||||
void PresentStateKill(omObjData *object)
|
||||
{
|
||||
UnkWindowDataStruct **var_r31;
|
||||
PresentWindow **var_r31 = object->data;
|
||||
|
||||
var_r31 = object->data;
|
||||
fn_1_8F0(lbl_1_bss_8);
|
||||
fn_1_1784(lbl_1_bss_10);
|
||||
fn_1_4534(lbl_1_bss_20);
|
||||
fn_1_4040(*var_r31);
|
||||
PresentCameraKill(presentCamera);
|
||||
PresentKill(present);
|
||||
PresentGuideKill(presentGuide);
|
||||
PresentWinKill(*var_r31);
|
||||
HuMemDirectFree(var_r31);
|
||||
}
|
||||
|
||||
void fn_1_3B8C(omObjData *object)
|
||||
static void ExecPresentView(omObjData *object)
|
||||
{
|
||||
UnkPresentStruct *var_r30;
|
||||
|
||||
var_r30 = object->data;
|
||||
StateWork *work = object->data;
|
||||
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
if (WipeStatGet()) {
|
||||
case 0:
|
||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
if (WipeStatGet()) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
PresentExecModeSet(present, 1);
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
if (PresentExecModeGet(present)) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 4;
|
||||
case 4:
|
||||
PresentGuideExecModeSet(presentGuide, PRESENT_GUIDE_MODE_ENTER);
|
||||
object->unk10 = 5;
|
||||
case 5:
|
||||
if (PresentGuideExecModeGet(presentGuide)) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 6;
|
||||
case 6:
|
||||
HuAudFXPlay(66);
|
||||
PresentWinAnimIn(work->window);
|
||||
PresentWinMesSet(work->window, 0x320002);
|
||||
object->unk10 = 7;
|
||||
case 7:
|
||||
if (work->window->state) {
|
||||
return;
|
||||
}
|
||||
PresentWinChoiceSet(work->window, 1);
|
||||
object->unk10 = 8;
|
||||
case 8:
|
||||
if (work->window->state) {
|
||||
return;
|
||||
}
|
||||
PresentWinAnimOut(work->window);
|
||||
if (!work->window->choice) {
|
||||
work->quitTimer = 0;
|
||||
object->unk10 = 11;
|
||||
return;
|
||||
}
|
||||
else {
|
||||
object->unk10 = 9;
|
||||
return;
|
||||
}
|
||||
case 9:
|
||||
PresentGuideExecModeSet(presentGuide, PRESENT_GUIDE_MODE_LEAVE);
|
||||
object->unk10 = 10;
|
||||
return;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
fn_1_180C(lbl_1_bss_10, 1);
|
||||
object->unk10 = 3;
|
||||
case 3:
|
||||
if (fn_1_1850(lbl_1_bss_10)) {
|
||||
case 10:
|
||||
if (PresentGuideExecModeGet(presentGuide)) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
return;
|
||||
}
|
||||
object->unk10 = 4;
|
||||
case 4:
|
||||
fn_1_45C0(lbl_1_bss_20, 1);
|
||||
object->unk10 = 5;
|
||||
case 5:
|
||||
if (fn_1_4604(lbl_1_bss_20)) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 6;
|
||||
case 6:
|
||||
HuAudFXPlay(66);
|
||||
fn_1_4080(var_r30->unk_00);
|
||||
fn_1_40B0(var_r30->unk_00, 0x320002);
|
||||
object->unk10 = 7;
|
||||
case 7:
|
||||
if (var_r30->unk_00->unk_20) {
|
||||
return;
|
||||
}
|
||||
fn_1_41BC(var_r30->unk_00, 1);
|
||||
object->unk10 = 8;
|
||||
case 8:
|
||||
if (var_r30->unk_00->unk_20) {
|
||||
return;
|
||||
}
|
||||
fn_1_4098(var_r30->unk_00);
|
||||
if (!var_r30->unk_00->choice) {
|
||||
var_r30->unk_04 = 0;
|
||||
object->unk10 = 11;
|
||||
return;
|
||||
} else {
|
||||
object->unk10 = 9;
|
||||
return;
|
||||
}
|
||||
case 9:
|
||||
fn_1_45C0(lbl_1_bss_20, 2);
|
||||
object->unk10 = 10;
|
||||
return;
|
||||
case 10:
|
||||
if (fn_1_4604(lbl_1_bss_20)) {
|
||||
return;
|
||||
}
|
||||
object->unk10 = 2;
|
||||
return;
|
||||
case 11:
|
||||
object->unk10 = 12;
|
||||
var_r30->unk_04 = 0;
|
||||
case 12:
|
||||
if (var_r30->unk_00->unk_20) {
|
||||
return;
|
||||
}
|
||||
if (var_r30->unk_04++ >= 60) {
|
||||
case 11:
|
||||
object->unk10 = 12;
|
||||
work->quitTimer = 0;
|
||||
case 12:
|
||||
if (work->window->state) {
|
||||
return;
|
||||
}
|
||||
if (work->quitTimer++ >= 60) {
|
||||
omSysExitReq = 1;
|
||||
object->func = NULL;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ExecPresentGet(omObjData *object)
|
||||
{
|
||||
void *sp8 = object->data;
|
||||
|
||||
switch (object->unk10) {
|
||||
case 0:
|
||||
PresentSelectedIDSet(present, omovlevtno - 1);
|
||||
object->unk10 = 1;
|
||||
case 1:
|
||||
PresentExecModeSet(present, PRESENT_MODE_GET);
|
||||
object->unk10 = 2;
|
||||
case 2:
|
||||
if (PresentExecModeGet(present) == PRESENT_MODE_NONE) {
|
||||
object->unk10 = 3;
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
object->unk10 = 4;
|
||||
case 4:
|
||||
omSysExitReq = 1;
|
||||
object->func = NULL;
|
||||
object->unk10 = 0;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_3DB8(omObjData *arg0)
|
||||
{
|
||||
void *sp8;
|
||||
|
||||
sp8 = arg0->data;
|
||||
switch (arg0->unk10) {
|
||||
case 0:
|
||||
fn_1_186C(lbl_1_bss_10, omovlevtno - 1);
|
||||
arg0->unk10 = 1;
|
||||
case 1:
|
||||
fn_1_180C(lbl_1_bss_10, 3);
|
||||
arg0->unk10 = 2;
|
||||
case 2:
|
||||
if (!fn_1_1850(lbl_1_bss_10)) {
|
||||
arg0->unk10 = 3;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
arg0->unk10 = 4;
|
||||
case 4:
|
||||
omSysExitReq = 1;
|
||||
arg0->func = NULL;
|
||||
arg0->unk10 = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UnkWindowDataStruct *fn_1_3EA4(s32 arg0)
|
||||
PresentWindow *PresentWinCreate(s32 id)
|
||||
{
|
||||
UnkWindowDataStruct *var_r31;
|
||||
PresentWindow *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(PresentWindow), MEMORY_DEFAULT_NUM);
|
||||
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWindowDataStruct), MEMORY_DEFAULT_NUM);
|
||||
var_r31->unk18 = 0;
|
||||
var_r31->unk10 = 0;
|
||||
var_r31->unk14 = 0;
|
||||
var_r31->unk_20 = 0;
|
||||
var_r31->process = HuPrcChildCreate(fn_1_41E0, 1000, 8192, 0, lbl_1_bss_4);
|
||||
var_r31->messToBeSet = 0;
|
||||
var_r31->messWaitSignal = 0;
|
||||
var_r31->choiceSignal = 0;
|
||||
var_r31->state = 0;
|
||||
var_r31->process = HuPrcChildCreate(ExecWindow, 1000, 8192, 0, presentObjMan);
|
||||
var_r31->process->user_data = var_r31;
|
||||
var_r31->unk08 = arg0;
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
var_r31->window = HuWinExCreateStyled(-10000.0f, 360.0f, 480, 80, -1, 1);
|
||||
HuWinBGTPLvlSet(var_r31->window, 0.8f);
|
||||
HuWinMesSpeedSet(var_r31->window, 0);
|
||||
HuWinMesPalSet(var_r31->window, 7, 0, 0, 0);
|
||||
break;
|
||||
case 1:
|
||||
var_r31->window = HuWinExCreateStyled(-10000.0f, 326.0f, 500, 40, -1, 0);
|
||||
HuWinAttrSet(var_r31->window, 2048);
|
||||
HuWinBGTPLvlSet(var_r31->window, 0.0f);
|
||||
HuWinMesSpeedSet(var_r31->window, 0);
|
||||
break;
|
||||
var_r31->id = id;
|
||||
switch (id) {
|
||||
case 0:
|
||||
var_r31->window = HuWinExCreateStyled(-10000.0f, 360.0f, 480, 80, -1, 1);
|
||||
HuWinBGTPLvlSet(var_r31->window, 0.8f);
|
||||
HuWinMesSpeedSet(var_r31->window, 0);
|
||||
HuWinMesPalSet(var_r31->window, 7, 0, 0, 0);
|
||||
break;
|
||||
case 1:
|
||||
var_r31->window = HuWinExCreateStyled(-10000.0f, 326.0f, 500, 40, -1, 0);
|
||||
HuWinAttrSet(var_r31->window, 2048);
|
||||
HuWinBGTPLvlSet(var_r31->window, 0.0f);
|
||||
HuWinMesSpeedSet(var_r31->window, 0);
|
||||
break;
|
||||
}
|
||||
HuWinDrawNoSet(var_r31->window, 63);
|
||||
fn_1_4190(var_r31);
|
||||
PresentWinDispOff(var_r31);
|
||||
HuSprExecLayerSet(63, 2);
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
void fn_1_4040(UnkWindowDataStruct *windowData)
|
||||
void PresentWinKill(PresentWindow *work)
|
||||
{
|
||||
HuWinExCleanup(windowData->window);
|
||||
HuPrcKill(windowData->process);
|
||||
HuMemDirectFree(windowData);
|
||||
HuWinExCleanup(work->window);
|
||||
HuPrcKill(work->process);
|
||||
HuMemDirectFree(work);
|
||||
}
|
||||
|
||||
void fn_1_4080(UnkWindowDataStruct *windowData)
|
||||
void PresentWinAnimIn(PresentWindow *work)
|
||||
{
|
||||
if (!windowData->unk0C) {
|
||||
windowData->unk_20 = 1;
|
||||
if (!work->visible) {
|
||||
work->state = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_4098(UnkWindowDataStruct *windowData)
|
||||
void PresentWinAnimOut(PresentWindow *work)
|
||||
{
|
||||
if (windowData->unk0C) {
|
||||
windowData->unk_20 = 2;
|
||||
if (work->visible) {
|
||||
work->state = 2;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_40B0(UnkWindowDataStruct *windowData, u32 mess)
|
||||
void PresentWinMesSet(PresentWindow *work, u32 mess)
|
||||
{
|
||||
if (!windowData->unk_20) {
|
||||
HuWinMesSet(windowData->window, mess);
|
||||
if (!work->state) {
|
||||
HuWinMesSet(work->window, mess);
|
||||
return;
|
||||
}
|
||||
windowData->unk18 = mess;
|
||||
work->messToBeSet = mess;
|
||||
}
|
||||
|
||||
void fn_1_4104(UnkWindowDataStruct *windowData, u32 mess, s16 index)
|
||||
void PresentWinInsertMesSet(PresentWindow *work, u32 mess, s16 index)
|
||||
{
|
||||
HuWinInsertMesSet(windowData->window, mess, index);
|
||||
HuWinInsertMesSet(work->window, mess, index);
|
||||
}
|
||||
|
||||
void fn_1_4144(UnkWindowDataStruct *windowData, float x, float y)
|
||||
void PresentWinPosSet(PresentWindow *work, float x, float y)
|
||||
{
|
||||
HuWinPosSet(windowData->window, x, y);
|
||||
HuWinPosSet(work->window, x, y);
|
||||
}
|
||||
|
||||
void fn_1_4184(UnkWindowDataStruct *windowData)
|
||||
void PresentWinDispOn(PresentWindow *work)
|
||||
{
|
||||
windowData->unk0C = 1;
|
||||
work->visible = TRUE;
|
||||
}
|
||||
|
||||
void fn_1_4190(UnkWindowDataStruct *windowData)
|
||||
void PresentWinDispOff(PresentWindow *work)
|
||||
{
|
||||
windowData->unk0C = 0;
|
||||
work->visible = FALSE;
|
||||
}
|
||||
|
||||
void fn_1_419C(UnkWindowDataStruct *windowData)
|
||||
void PresentWinMesWait(PresentWindow *work)
|
||||
{
|
||||
if (!windowData->unk_20) {
|
||||
windowData->unk_20 = 3;
|
||||
if (!work->state) {
|
||||
work->state = 3;
|
||||
}
|
||||
windowData->unk10 = 1;
|
||||
work->messWaitSignal = 1;
|
||||
}
|
||||
|
||||
void fn_1_41BC(UnkWindowDataStruct *windowData, s32 arg1)
|
||||
void PresentWinChoiceSet(PresentWindow *work, s32 choice)
|
||||
{
|
||||
if (!windowData->unk_20) {
|
||||
windowData->unk_20 = 4;
|
||||
if (!work->state) {
|
||||
work->state = 4;
|
||||
}
|
||||
windowData->unk14 = 1;
|
||||
windowData->choice = arg1;
|
||||
work->choiceSignal = 1;
|
||||
work->choice = choice;
|
||||
}
|
||||
|
||||
void fn_1_41E0(void)
|
||||
static void ExecWindow(void)
|
||||
{
|
||||
UnkWindowDataStruct *windowData;
|
||||
PresentWindow *work = HuPrcCurrentGet()->user_data;
|
||||
|
||||
windowData = HuPrcCurrentGet()->user_data;
|
||||
while (TRUE) {
|
||||
switch (windowData->unk_20) {
|
||||
case 1:
|
||||
windowData->unk0C = 1;
|
||||
HuWinExAnimIn(windowData->window);
|
||||
break;
|
||||
case 2:
|
||||
HuWinExAnimOut(windowData->window);
|
||||
windowData->unk0C = 0;
|
||||
break;
|
||||
case 3:
|
||||
winData[windowData->window].active_pad = 1;
|
||||
HuWinMesWait(windowData->window);
|
||||
windowData->unk10 = 0;
|
||||
break;
|
||||
case 4:
|
||||
windowData->choice = HuWinChoiceGet(windowData->window, windowData->choice);
|
||||
windowData->unk14 = 0;
|
||||
break;
|
||||
switch (work->state) {
|
||||
case 1:
|
||||
work->visible = 1;
|
||||
HuWinExAnimIn(work->window);
|
||||
break;
|
||||
case 2:
|
||||
HuWinExAnimOut(work->window);
|
||||
work->visible = 0;
|
||||
break;
|
||||
case 3:
|
||||
winData[work->window].active_pad = 1;
|
||||
HuWinMesWait(work->window);
|
||||
work->messWaitSignal = 0;
|
||||
break;
|
||||
case 4:
|
||||
work->choice = HuWinChoiceGet(work->window, work->choice);
|
||||
work->choiceSignal = 0;
|
||||
break;
|
||||
}
|
||||
if (windowData->unk18 != 0) {
|
||||
HuWinMesSet(windowData->window, windowData->unk18);
|
||||
windowData->unk18 = 0;
|
||||
if (work->messToBeSet != 0) {
|
||||
HuWinMesSet(work->window, work->messToBeSet);
|
||||
work->messToBeSet = 0;
|
||||
}
|
||||
windowData->unk_20 = 0;
|
||||
if (windowData->unk10 != 0) {
|
||||
windowData->unk_20 = 3;
|
||||
work->state = 0;
|
||||
if (work->messWaitSignal != 0) {
|
||||
work->state = 3;
|
||||
}
|
||||
if (windowData->unk14 != 0) {
|
||||
windowData->unk_20 = 4;
|
||||
if (work->choiceSignal != 0) {
|
||||
work->state = 4;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue