Skip to content

Commit 1193f10

Browse files
committed
d_a_obj_soil OK
1 parent 8d9383b commit 1193f10

File tree

12 files changed

+816
-57
lines changed

12 files changed

+816
-57
lines changed

config/SOUE01/rels/d_a_obj_soilNP/symbols.txt

Lines changed: 80 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ __dt__23sFState_c<10dAcOsoil_c>Fv = .text:0x00000210; // type:function size:0x58
88
__dt__26sFStateFct_c<10dAcOsoil_c>Fv = .text:0x00000270; // type:function size:0x6C
99
__dt__79sStateMgr_c<10dAcOsoil_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000002E0; // type:function size:0xA0
1010
__dt__49sFStateMgr_c<10dAcOsoil_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000380; // type:function size:0xA4
11-
AcOSoil__initModels = .text:0x00000430; // type:function size:0x17C
12-
AcOSoil__init = .text:0x000005B0; // type:function size:0x340
13-
AcOSoil__init2 = .text:0x000008F0; // type:function size:0x2F4
11+
createHeap__10dAcOsoil_cFv = .text:0x00000430; // type:function size:0x17C
12+
actorCreate__10dAcOsoil_cFv = .text:0x000005B0; // type:function size:0x340
13+
actorPostCreate__10dAcOsoil_cFv = .text:0x000008F0; // type:function size:0x2F4
1414
changeState__79sStateMgr_c<10dAcOsoil_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000BF0; // type:function size:0x10
15-
fn_255_C00 = .text:0x00000C00; // type:function size:0x30
16-
AcOSoil__update = .text:0x00000C30; // type:function size:0x298
15+
doDelete__10dAcOsoil_cFv = .text:0x00000C00; // type:function size:0x30
16+
actorExecute__10dAcOsoil_cFv = .text:0x00000C30; // type:function size:0x298
1717
executeState__79sStateMgr_c<10dAcOsoil_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000ED0; // type:function size:0x10
1818
getStateID__79sStateMgr_c<10dAcOsoil_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000EE0; // type:function size:0x10
19-
AcOSoil__draw = .text:0x00000EF0; // type:function size:0x108
19+
draw__10dAcOsoil_cFv = .text:0x00000EF0; // type:function size:0x108
2020
initializeState_Soil__10dAcOsoil_cFv = .text:0x00001000; // type:function size:0x78
2121
executeState_Soil__10dAcOsoil_cFv = .text:0x00001080; // type:function size:0x198
2222
finalizeState_Soil__10dAcOsoil_cFv = .text:0x00001220; // type:function size:0x4
@@ -25,19 +25,17 @@ executeState_Hole__10dAcOsoil_cFv = .text:0x00001260; // type:function size:0x74
2525
finalizeState_Hole__10dAcOsoil_cFv = .text:0x000012E0; // type:function size:0x4
2626
initializeState_Ready__10dAcOsoil_cFv = .text:0x000012F0; // type:function size:0x1C4
2727
executeState_Ready__10dAcOsoil_cFv = .text:0x000014C0; // type:function size:0x1A4
28-
finalizeState_Ready__10dAcOsoil_cFv = .text:0x00001670; // type:function size:0x3C
29-
fn_255_16AC = .text:0x000016AC; // type:function size:0x4
30-
fn_255_16B0 = .text:0x000016B0; // type:function size:0x138
31-
fn_255_17F0 = .text:0x000017F0; // type:function size:0x98
32-
fn_255_1890 = .text:0x00001890; // type:function size:0xE4
33-
fn_255_1980 = .text:0x00001980; // type:function size:0xC8
34-
fn_255_1A50 = .text:0x00001A50; // type:function size:0x100
35-
fn_255_1B50 = .text:0x00001B50; // type:function size:0xB8
36-
fn_255_1C10 = .text:0x00001C10; // type:function size:0x164
37-
fn_255_1D80 = .text:0x00001D80; // type:function size:0x44
38-
fn_255_1DC4 = .text:0x00001DC4; // type:function size:0x4
39-
fn_255_1DD0 = .text:0x00001DD0; // type:function size:0xC0
40-
fn_255_1E90 = .text:0x00001E90; // type:function size:0x230
28+
finalizeState_Ready__10dAcOsoil_cFv = .text:0x00001670; // type:function size:0x40
29+
tryLinkTbox__10dAcOsoil_cFv = .text:0x000016B0; // type:function size:0x138
30+
giveItemRepeated__10dAcOsoil_cFv = .text:0x000017F0; // type:function size:0x98
31+
giveItemFinal__10dAcOsoil_cFv = .text:0x00001890; // type:function size:0xE4
32+
calcItemAndInsectSpawnPos__10dAcOsoil_cFv = .text:0x00001980; // type:function size:0xC8
33+
fn_255_1A50__10dAcOsoil_cFv = .text:0x00001A50; // type:function size:0x100
34+
checkCoHit__10dAcOsoil_cFPb = .text:0x00001B50; // type:function size:0xB8
35+
setModelColorFromParams__10dAcOsoil_cFP8_GXColorRQ23m3d6smdl_c = .text:0x00001C10; // type:function size:0x164
36+
fn_255_1D80__10dAcOsoil_cFv = .text:0x00001D80; // type:function size:0x48
37+
setModelAlphaToGlobalAlpha__10dAcOsoil_cFv = .text:0x00001DD0; // type:function size:0xC0
38+
handleModelsOpacities__10dAcOsoil_cFv = .text:0x00001E90; // type:function size:0x230
4139
__dt__10dAcOsoil_cFv = .text:0x000020C0; // type:function size:0x11C
4240
build__26sFStateFct_c<10dAcOsoil_c>FRC12sStateIDIf_c = .text:0x000021E0; // type:function size:0x60
4341
dispose__26sFStateFct_c<10dAcOsoil_c>FRP10sStateIf_c = .text:0x00002240; // type:function size:0xC
@@ -59,32 +57,68 @@ isSameName__25sFStateID_c<10dAcOsoil_c>CFPCc = .text:0x00002680; // type:functio
5957
_ctors = .ctors:0x00000000; // type:label scope:global
6058
_dtors = .dtors:0x00000000; // type:label scope:global
6159
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
62-
lbl_255_rodata_0 = .rodata:0x00000000; // type:object size:0x1C data:float
63-
lbl_255_rodata_1C = .rodata:0x0000001C; // type:object size:0x20 align:4 data:float
64-
lbl_255_rodata_3C = .rodata:0x0000003C; // type:object size:0x14 align:4 data:float
65-
lbl_255_rodata_50 = .rodata:0x00000050; // type:object size:0x4 align:4 data:float
66-
lbl_255_rodata_54 = .rodata:0x00000054; // type:object size:0x4 align:4 data:float
67-
lbl_255_rodata_58 = .rodata:0x00000058; // type:object size:0x4 align:4 data:float
68-
lbl_255_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 align:4 data:float
69-
lbl_255_rodata_60 = .rodata:0x00000060; // type:object size:0x40 align:4 data:float
70-
g_profile_OBJ_SOIL = .data:0x00000000; // type:object size:0x40 data:4byte
71-
lbl_255_data_40 = .data:0x00000040; // type:object size:0xB data:string
72-
lbl_255_data_4C = .data:0x0000004C; // type:object size:0x5C
73-
lbl_255_data_A8 = .data:0x000000A8; // type:object size:0x5 data:string
74-
lbl_255_data_B0 = .data:0x000000B0; // type:object size:0xF data:string
75-
lbl_255_data_C0 = .data:0x000000C0; // type:object size:0x10 data:string
76-
AcOSoil__vtable = .data:0x000000D0; // type:object size:0x80
77-
lbl_255_data_150 = .data:0x00000150; // type:object size:0x30
78-
lbl_255_data_180 = .data:0x00000180; // type:object size:0x30
79-
lbl_255_data_1B0 = .data:0x000001B0; // type:object size:0x18
80-
lbl_255_data_1C8 = .data:0x000001C8; // type:object size:0xD8
81-
lbl_255_data_2A0 = .data:0x000002A0; // type:object size:0x34
60+
lbl_255_rodata_0 = .rodata:0x00000000; // type:object size:0x1C scope:local data:float
61+
lbl_255_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local align:4 data:float
62+
lbl_255_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float
63+
lbl_255_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local align:4 data:float
64+
lbl_255_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local align:4 data:float
65+
lbl_255_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local align:4 data:float
66+
lbl_255_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local align:4 data:float
67+
lbl_255_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local align:4 data:float
68+
lbl_255_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local align:4 data:float
69+
lbl_255_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local align:4 data:float
70+
lbl_255_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local align:4 data:float
71+
lbl_255_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local align:4 data:float
72+
lbl_255_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local align:4 data:float
73+
lbl_255_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local align:4 data:float
74+
lbl_255_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local align:4 data:float
75+
lbl_255_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local align:4 data:float
76+
lbl_255_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local align:4 data:float
77+
lbl_255_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local align:4 data:float
78+
lbl_255_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local align:4 data:float
79+
lbl_255_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local align:4 data:float
80+
lbl_255_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local align:4 data:float
81+
lbl_255_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local align:4 data:float
82+
lbl_255_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local align:4 data:float
83+
lbl_255_rodata_74 = .rodata:0x00000074; // type:object size:0x2C scope:local align:4 data:4byte
84+
g_profile_OBJ_SOIL = .data:0x00000000; // type:object size:0x10 data:4byte
85+
sCylSrc__10dAcOsoil_c = .data:0x00000010; // type:object size:0x30 data:4byte
86+
lbl_255_data_40 = .data:0x00000040; // type:object size:0xB scope:local data:string
87+
lbl_255_data_4C = .data:0x0000004C; // type:object size:0xA scope:local data:string
88+
lbl_255_data_58 = .data:0x00000058; // type:object size:0x10 scope:local data:4byte
89+
lbl_255_data_68 = .data:0x00000068; // type:object size:0x10 scope:local data:4byte
90+
lbl_255_data_78 = .data:0x00000078; // type:object size:0xC scope:local data:string
91+
lbl_255_data_88 = .data:0x00000088; // type:object size:0x18 scope:local data:string
92+
lbl_255_data_A0 = .data:0x000000A0; // type:object size:0x5 scope:local data:string
93+
lbl_255_data_A8 = .data:0x000000A8; // type:object size:0x5 scope:local data:string
94+
lbl_255_data_B0 = .data:0x000000B0; // type:object size:0xF scope:local data:string
95+
lbl_255_data_C0 = .data:0x000000C0; // type:object size:0x10 scope:local data:string
96+
__vt__10dAcOsoil_c = .data:0x000000D0; // type:object size:0x80
97+
__vt__49sFStateMgr_c<10dAcOsoil_c,20sStateMethodUsr_FI_c> = .data:0x00000150; // type:object size:0x30
98+
__vt__79sStateMgr_c<10dAcOsoil_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000180; // type:object size:0x30
99+
__vt__26sFStateFct_c<10dAcOsoil_c> = .data:0x000001B0; // type:object size:0x14
100+
__vt__23sFState_c<10dAcOsoil_c> = .data:0x000001C8; // type:object size:0x18
101+
lbl_255_data_1E0 = .data:0x000001E0; // type:object size:0xC
102+
lbl_255_data_1EC = .data:0x000001EC; // type:object size:0xC
103+
lbl_255_data_1F8 = .data:0x000001F8; // type:object size:0xC
104+
lbl_255_data_204 = .data:0x00000204; // type:object size:0xC
105+
lbl_255_data_210 = .data:0x00000210; // type:object size:0xC
106+
lbl_255_data_21C = .data:0x0000021C; // type:object size:0xC
107+
lbl_255_data_228 = .data:0x00000228; // type:object size:0xC
108+
lbl_255_data_234 = .data:0x00000234; // type:object size:0xC
109+
lbl_255_data_240 = .data:0x00000240; // type:object size:0xC
110+
lbl_255_data_24C = .data:0x0000024C; // type:object size:0x19 data:string
111+
lbl_255_data_268 = .data:0x00000268; // type:object size:0x19 data:string
112+
lbl_255_data_284 = .data:0x00000284; // type:object size:0x1A data:string
113+
lbl_255_data_2A0 = .data:0x000002A0; // type:object size:0x34 scope:local
82114
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
83-
lbl_255_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte
84-
StateID_Soil__10dAcOsoil_c = .bss:0x00000018; // type:object size:0x40 data:4byte
85-
StateID_Hole__10dAcOsoil_c = .bss:0x00000058; // type:object size:0x40 data:4byte
115+
lbl_255_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local data:4byte
116+
StateID_Soil__10dAcOsoil_c = .bss:0x00000018; // type:object size:0x30 data:4byte
117+
lbl_255_bss_48 = .bss:0x00000048; // type:object size:0x10 scope:local data:4byte
118+
StateID_Hole__10dAcOsoil_c = .bss:0x00000058; // type:object size:0x30 data:4byte
119+
lbl_255_bss_88 = .bss:0x00000088; // type:object size:0x10 scope:local data:4byte
86120
StateID_Ready__10dAcOsoil_c = .bss:0x00000098; // type:object size:0x30 data:4byte
87-
lbl_255_bss_C8 = .bss:0x000000C8; // type:object size:0x1 data:byte
88-
lbl_255_bss_CC = .bss:0x000000CC; // type:object size:0xC align:4 data:float
89-
lbl_255_bss_D8 = .bss:0x000000D8; // type:object size:0x1 data:byte
90-
lbl_255_bss_DC = .bss:0x000000DC; // type:object size:0x14 data:byte
121+
lbl_255_bss_C8 = .bss:0x000000C8; // type:object size:0x1 scope:local data:byte
122+
lbl_255_bss_CC = .bss:0x000000CC; // type:object size:0xC scope:local align:4 data:float
123+
lbl_255_bss_D8 = .bss:0x000000D8; // type:object size:0x1 scope:local data:byte
124+
lbl_255_bss_DC = .bss:0x000000DC; // type:object size:0x14 scope:local data:byte

config/SOUE01/symbols.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2473,7 +2473,7 @@ turnSoupCold = .text:0x8005BBD0; // type:function size:0x8
24732473
addExtraHearts = .text:0x8005BBE0; // type:function size:0x74
24742474
AcItem__healLink = .text:0x8005BC60; // type:function size:0x18
24752475
getCurrentHealthCapacity__7dAcPy_cFv = .text:0x8005BC80; // type:function size:0x54
2476-
addDigInteractionTarget = .text:0x8005BCE0; // type:function size:0xC
2476+
addDigInteractionTarget__7dAcPy_cFP9dAcBase_cf = .text:0x8005BCE0; // type:function size:0xC
24772477
fn_8005BCF0 = .text:0x8005BCF0; // type:function size:0x30
24782478
ActorLink__playLinkSound = .text:0x8005BD20; // type:function size:0x40
24792479
fn_8005BD60 = .text:0x8005BD60; // type:function size:0x4

configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2676,7 +2676,7 @@ def MatchingFor(*versions):
26762676
"REL/d/a/obj/d_a_obj_slice_log_parts.cpp",
26772677
),
26782678
Rel(Matching, "d_a_obj_smoke", "REL/d/a/obj/d_a_obj_smoke.cpp"),
2679-
Rel(NonMatching, "d_a_obj_soil", "REL/d/a/obj/d_a_obj_soil.cpp"),
2679+
Rel(Matching, "d_a_obj_soil", "REL/d/a/obj/d_a_obj_soil.cpp"),
26802680
Rel(NonMatching, "d_a_obj_spider_line", "REL/d/a/obj/d_a_obj_spider_line.cpp"),
26812681
Rel(Matching, "d_a_obj_spike", "REL/d/a/obj/d_a_obj_spike.cpp"),
26822682
Rel(Matching, "d_a_obj_stage_cover", "REL/d/a/obj/d_a_obj_stage_cover.cpp"),

include/d/a/d_a_base.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class dAcBase_c : public dBase_c {
7878
AC_PROP_0x4000000 = (1 << 26),
7979
AC_PROP_0x8000000 = (1 << 27),
8080
AC_PROP_0x10000000 = (1 << 28),
81+
AC_PROP_0x20000000 = (1 << 29),
8182
AC_PROP_0x40000000 = (1 << 30),
8283
};
8384

include/d/a/d_a_player.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ class dAcPy_c : public daPlayerModelBase_c {
6262
// Item select/equip/use functions [0x801E3160 - 0x801E7AD0] ?
6363
static s32 calcItemWheelSelection(bool reset, s32 numOptions);
6464

65+
static void addDigInteractionTarget(dAcBase_c*, f32);
66+
6567
public:
6668
f32 getField_0x4564() const {
6769
return field_0x4564;

include/d/a/obj/d_a_obj_soil.h

Lines changed: 92 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,116 @@
11
#ifndef D_A_OBJ_SOIL_H
22
#define D_A_OBJ_SOIL_H
33

4+
#include "common.h"
5+
#include "d/a/d_a_base.h"
46
#include "d/a/obj/d_a_obj_base.h"
7+
#include "d/a/obj/d_a_obj_tbox.h"
8+
#include "d/col/bg/d_bg_w.h"
9+
#include "d/col/cc/d_cc_d.h"
10+
#include "d/t/d_t_insect.h"
11+
#include "m/m3d/m_smdl.h"
12+
#include "m/m_vec.h"
13+
#include "nw4r/g3d/res/g3d_resfile.h"
14+
#include "rvl/GX/GXTypes.h"
515
#include "s/s_State.hpp"
616
#include "s/s_StateMgr.hpp"
17+
#include "toBeSorted/dowsing_target.h"
718

819
class dAcOsoil_c : public dAcObjBase_c {
920
public:
10-
dAcOsoil_c() : mStateMgr(*this, sStateID::null) {}
21+
dAcOsoil_c() : mStateMgr(*this, sStateID::null), mResFile(nullptr), mDowsingTarget(this, DowsingTarget::SLOT_NONE) {}
1122
virtual ~dAcOsoil_c() {}
1223

1324
STATE_FUNC_DECLARE(dAcOsoil_c, Soil);
1425
STATE_FUNC_DECLARE(dAcOsoil_c, Hole);
1526
STATE_FUNC_DECLARE(dAcOsoil_c, Ready);
1627

28+
enum Subtype {
29+
SUBTYPE_VENT, // used by instances spawned by dAcOWind_c
30+
SUBTYPE_TBOX, // unused?
31+
SUBTYPE_DROP, // you can dig up items from this one
32+
SUBTYPE_MOGMA, // when dug up, a mogma appears
33+
SUBTYPE_KEY_PIECE,
34+
};
35+
36+
enum Itemtype {
37+
ITEMTYPE_KEY_PIECE,
38+
ITEMTYPE_DIRECT_GIVE, // used for the small key in Skyview 2
39+
ITEMTYPE_DROP,
40+
};
41+
42+
enum ModelIndex {
43+
MODEL_COVERED,
44+
MODEL_DUG_UP,
45+
};
46+
1747
bool isStateHole() {
1848
return mStateMgr.isState(StateID_Hole);
1949
}
2050

51+
STATE_MGR_DEFINE_UTIL_EXECUTESTATE(dAcOsoil_c);
52+
2153
private:
22-
/* 0x330 */ u8 field_0x330[0x6CC-0x330];
54+
/* 0x330 */ nw4r::g3d::ResFile mResFile;
55+
/* 0x334 */ m3d::smdl_c mModels[2];
56+
/* 0x36C */ dBgW mActorInteraction;
57+
/* 0x57C */ dCcD_Cyl mCollider;
2358
/* 0x6CC */ STATE_MGR_DECLARE(dAcOsoil_c);
59+
/* 0x708 */ dAcRef_c<dAcTbox_c> mTboxLink;
60+
/* 0x714 */ dAcRef_c<dTgInsect_c> mInsectLink;
61+
/* 0x720 */ DowsingTarget mDowsingTarget;
62+
/* 0x740 */ GXColor mColors[2];
63+
/* 0x748 */ u8 field_0x748[0x778 - 0x748]; // unused
64+
/* 0x778 */ mVec3_c mItemAndInsectSpawnPos;
65+
/* 0x784 */ u16 mFinalDigTimer;
66+
/* 0x786 */ u8 mModelIndex;
67+
/* 0x787 */ u8 mSubtype;
68+
/* 0x788 */ u8 mSceneflag;
69+
/* 0x789 */ u8 mSpawnSceneflag;
70+
/* 0x78A */ u8 mCountInParams;
71+
/* 0x78B */ u8 mDigsLeft;
72+
/* 0x78C */ u8 mItemSubtype;
73+
/* 0x78D */ u8 mSomeCounter1;
74+
/* 0x78E */ u8 mDowsingStateRelated;
75+
/* 0x78F */ bool mHasTriedTboxLink;
76+
/* 0x790 */ bool mInteractionDisabled;
77+
/* 0x791 */ bool mTboxPrepared;
78+
/* 0x792 */ bool mForInsects;
79+
/* 0x793 */ bool field_0x793;
80+
/* 0x794 */ bool mAlwaysLoaded;
81+
/* 0x795 */ bool mIsHidden;
82+
/* 0x796 */ bool mHideCover;
83+
/* 0x797 */ bool field_0x797; // unused
84+
/* 0x798 */ bool mShouldSetFlagInEvent;
85+
/* 0x799 */ bool mHideWhenCameraNear;
86+
87+
static dCcD_SrcCyl sCylSrc;
88+
89+
bool isSubtypeVentOrDrop() const {
90+
return mSubtype == SUBTYPE_VENT || mSubtype == SUBTYPE_DROP;
91+
}
92+
93+
s32 getSubtype() const {
94+
return mSubtype;
95+
}
96+
97+
virtual int doDelete() override;
98+
virtual int actorCreate() override;
99+
virtual bool createHeap() override;
100+
virtual int actorPostCreate() override;
101+
virtual int actorExecute() override;
102+
virtual int draw() override;
103+
bool checkCoHit(bool*);
104+
void giveItemRepeated();
105+
void calcItemAndInsectSpawnPos();
106+
void tryLinkTbox();
107+
void giveItemFinal();
108+
void fn_255_1A50();
109+
void setModelColorFromParams(GXColor* pOutColor, m3d::smdl_c& mdl);
110+
void fn_255_1D80();
111+
void setModelAlphaToGlobalAlpha();
112+
void handleModelsOpacities();
113+
void test();
24114
};
25115

26116
#endif

include/d/col/c/c_cc_d.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,6 +1012,9 @@ class cCcD_Obj {
10121012
void OnCoSet() {
10131013
mCo.OnSPrm(1);
10141014
}
1015+
void OffCoSet() {
1016+
mCo.OffSPrm(1);
1017+
}
10151018
u32 ChkCoSet2() const {
10161019
return mCo.MskSPrm(0x800);
10171020
}

include/d/d_light_env.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ class ActorLighting {
2222

2323
void reset();
2424

25+
void setTev1Color(GXColor color) {
26+
mTev1Color = color;
27+
mUseTev1 = true;
28+
}
29+
2530
public:
2631
/* 0x0C */ f32 field_0x0C;
2732
/* 0x10 */ f32 field_0x10;

include/d/t/d_t_insect.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#ifndef D_T_INSECT_H
22
#define D_T_INSECT_H
33

4+
#include "common.h"
45
#include "d/a/d_a_base.h"
56
#include "d/t/d_tg.h"
67
#include "m/m_vec.h"
@@ -48,6 +49,13 @@ class dTgInsect_c : public dTg_c {
4849
mKillSignal = 1;
4950
}
5051

52+
void reveal(mVec3_c* pos) {
53+
mRevealed = 1;
54+
if (pos != nullptr) {
55+
mRevealedSpawnPos = *pos;
56+
}
57+
}
58+
5159
static const f32 SCALE_X;
5260
static const f32 SCALE_Y;
5361

include/m/m_color.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ struct mColor : public nw4r::ut::Color {
77
mColor() : nw4r::ut::Color() {}
88
mColor(int red, int green, int blue, int alpha) : nw4r::ut::Color(red, green, blue, alpha) {}
99
mColor(int hex) : nw4r::ut::Color(hex) {}
10+
11+
void operator=(GXColor& color) {
12+
r = color.r;
13+
g = color.g;
14+
b = color.b;
15+
a = color.a;
16+
}
1017
};
1118

1219
#endif

0 commit comments

Comments
 (0)