Decompile 031_Land/Actor/ActorRupee.cpp (#3)

* delink ActorRupee and match few functions

* add missing functions, mangle names and match func_ov031_020e9d54

* random stuff (literally)

* decomp more of ActorRupee

* rng stuff (thanks to aetias)

* decomp more of ActorRupee (36%)

* sync symbols

* format

* random: fixed wrong function call in configure.py

* decomp more of ActorRupee (51%)

* add actor ids and move them to their own header + small docs on actor class

* format

* improvements and small progress

* progress

* progress

* sync eur with jp

* fix build issues

* missed a file
This commit is contained in:
Yanis
2025-08-04 13:33:17 +02:00
committed by GitHub
parent 8d16ba5dc9
commit e80f625b50
31 changed files with 2007 additions and 171 deletions
+18 -7
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Actor/ActorId.hpp"
#include "System/SysNew.hpp"
#include "global.h"
#include "nitro/math.h"
@@ -12,6 +13,7 @@ public:
/* 0e */ unk16 mUnk_0e; // padding?
/* 10 */
Actor_5c() {};
void func_ov000_020975f8();
};
@@ -44,13 +46,13 @@ public:
/* 10 */ Vec3p mPrevPos;
/* 1c */ Vec3p mVel;
/* 28 */ u16 mAngle;
/* 28 */ unk16 mUnk_2a;
/* 2a */ unk16 mUnk_2a;
/* 2c */ unk32 mUnk_2c; // gravity?
/* 30 */ unk32 *mUnk_30;
/* 34 */ unk32 *mUnk_34;
/* 38 */ unk32 *mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 40 */ void *mUnk_40; // pointer to `Actor_c4`
/* 44 */ u16 mUnk_44;
/* 46 */ unk16 mUnk_46;
/* 48 */ unk16 mUnk_48;
@@ -58,22 +60,25 @@ public:
/* 4a */ unk8 mUnk_4b;
/* 4c */ unk16 mUnk_4c;
/* 4e */ s16 mUnk_4e;
/* 50 */ unk16 mUnk_50;
/* 52 */ unk16 mUnk_52;
/* 50 */ volatile u16 mUnk_50;
/* 52 */ u16 mUnk_52;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 5c */ Actor_5c mUnk_5c;
/* 6c */ unk32 mUnk_6c;
/* 6c */ u16 mUnk_6c; // actor user id?
/* 6e */ u16 mUnk_6e;
/* 70 */ unk32 mUnk_70;
/* 74 */ unk32 mUnk_74;
/* 74 */ unk16 mUnk_74;
/* 76 */ u16 mUnk_76;
/* 78 */ unk32 mUnk_78;
/* 7c */ unk32 mUnk_7c;
/* 80 */ unk16 mUnk_80;
/* 80 */ s16 mUnk_80;
/* 80 */ unk16 mUnk_82;
/* 84 */ unk32 mUnk_84;
/* 88 */ unk32 mUnk_88;
/* 8c */ unk32 mUnk_8c;
/* 90 */ UnkStruct_ov000_020b539c_30 *mUnk_90;
/* 94 */
/* 00 */ virtual void vfunc_00(Vec3p *param1);
/* 04 */ virtual bool vfunc_04();
@@ -108,6 +113,7 @@ public:
unk32 func_ov000_020984c8();
void func_ov000_020984d0();
void func_ov000_020984f0();
unk32 func_ov000_02098910(unk32 param1, unk32 param2);
s32 func_ov000_02098518(unk32 *param1);
void func_ov000_0209853c();
@@ -117,6 +123,11 @@ public:
s32 func_ov000_02098584();
s32 func_ov000_020985f0(void *param1);
void func_ov000_0209862c(unk32 param1);
void func_ov000_020973f4(UnkStruct_ov000_020b539c *param1, ActorId param2, Actor_5c param3);
void func_ov000_020989e0();
void func_ov017_020bf5c4(Vec3p *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
};
extern UnkStruct_ov000_020b539c data_ov000_020b539c;
+530
View File
@@ -0,0 +1,530 @@
#pragma once
#include "types.h"
typedef u32 ActorId;
enum ActorId_ {
ActorId_AJAI = 'AJAI',
ActorId_AJBS = 'AJBS',
ActorId_AJCR = 'AJCR',
ActorId_AJEM = 'AJEM',
ActorId_AJET = 'AJET',
ActorId_AJMN = 'AJMN',
ActorId_AJNP = 'AJNP',
ActorId_AJSP = 'AJSP',
ActorId_AJTM = 'AJTM',
ActorId_ALEV = 'ALEV',
ActorId_AROW = 'AROW',
ActorId_ASBA = 'ASBA',
ActorId_ASYU = 'ASYU',
ActorId_ATTG = 'ATTG',
ActorId_BAEY = 'BAEY',
ActorId_BAFO = 'BAFO',
ActorId_BANI = 'BANI',
ActorId_BAPH = 'BAPH',
ActorId_BBLE = 'BBLE',
ActorId_BDBA = 'BDBA',
ActorId_BDEA = 'BDEA',
ActorId_BDEM = 'BDEM',
ActorId_BDGA = 'BDGA',
ActorId_BDLB = 'BDLB',
ActorId_TreasureBee = 'BEEE',
ActorId_BeeHive = 'BEEH',
ActorId_BFFN = 'BFFN',
ActorId_BGOK = 'BGOK',
ActorId_BKST = 'BKST',
ActorId_BLBL = 'BLBL',
ActorId_BLBR = 'BLBR',
ActorId_BLJF = 'BLJF',
ActorId_BLON = 'BLON',
ActorId_BLST = 'BLST',
ActorId_BMHN = 'BMHN',
ActorId_BMOC = 'BMOC',
ActorId_BOMB = 'BOMB',
ActorId_BPAP = 'BPAP',
ActorId_BPBS = 'BPBS',
ActorId_BROW = 'BROW',
ActorId_BSFC = 'BSFC',
ActorId_BSKM = 'BSKM',
ActorId_BSTG = 'BSTG',
ActorId_BTIR = 'BTIR',
ActorId_CAGE = 'CAGE',
ActorId_CAMA = 'CAMA',
ActorId_CAMB = 'CAMB',
ActorId_CAMS = 'CAMS',
ActorId_CAMY = 'CAMY',
ActorId_CANS = 'CANS',
ActorId_CASE = 'CASE',
ActorId_CASL = 'CASL',
ActorId_CAST = 'CAST',
ActorId_CAWA = 'CAWA',
ActorId_CAWB = 'CAWB',
ActorId_ChuChu = 'CHUC',
ActorId_CLBT = 'CLBT',
ActorId_CLLT = 'CLLT',
ActorId_CLZN = 'CLZN',
ActorId_CNBL = 'CNBL',
ActorId_COMM = 'COMM',
ActorId_CRCH = 'CRCH',
ActorId_CRFP = 'CRFP',
ActorId_CRFT = 'CRFT',
ActorId_CROW = 'CROW',
ActorId_CTFS = 'CTFS',
ActorId_DGPC = 'DGPC',
ActorId_DKCB = 'DKCB',
ActorId_DKCL = 'DKCL',
ActorId_DKTR = 'DKTR',
ActorId_DLPN = 'DLPN',
ActorId_DLTG = 'DLTG',
ActorId_DMCH = 'DMCH',
ActorId_DMEQ = 'DMEQ',
ActorId_DMET = 'DMET',
ActorId_DMFR = 'DMFR',
ActorId_DMFT = 'DMFT',
ActorId_DMGM = 'DMGM',
ActorId_DMGN = 'DMGN',
ActorId_DMMM = 'DMMM',
ActorId_DMMS = 'DMMS',
ActorId_DMMT = 'DMMT',
ActorId_DMPK = 'DMPK',
ActorId_DMPS = 'DMPS',
ActorId_DMSS = 'DMSS',
ActorId_DMST = 'DMST',
ActorId_DMT2 = 'DMT2',
ActorId_DMTR = 'DMTR',
ActorId_DMWS = 'DMWS',
ActorId_DMWT = 'DMWT',
ActorId_DMZS = 'DMZS',
ActorId_DSBB = 'DSBB',
ActorId_DSBH = 'DSBH',
ActorId_DSBN = 'DSBN',
ActorId_DSDS = 'DSDS',
ActorId_DSFR = 'DSFR',
ActorId_DSSN = 'DSSN',
ActorId_DSVC = 'DSVC',
ActorId_DSWT = 'DSWT',
ActorId_E3GL = 'E3GL',
ActorId_E3LV = 'E3LV',
ActorId_E3ST = 'E3ST',
ActorId_E3TT = 'E3TT',
ActorId_EFIK = 'EFIK',
ActorId_EFOC = 'EFOC',
ActorId_EFR2 = 'EFR2',
ActorId_EFR3 = 'EFR3',
ActorId_EFRI = 'EFRI',
ActorId_EFRL = 'EFRL',
ActorId_EFRP = 'EFRP',
ActorId_EFSB = 'EFSB',
ActorId_EFSC = 'EFSC',
ActorId_EFW2 = 'EFW2',
ActorId_EFW3 = 'EFW3',
ActorId_EFWI = 'EFWI',
ActorId_EFWL = 'EFWL',
ActorId_EFWV = 'EFWV',
ActorId_ELVT = 'ELVT',
ActorId_ENGE = 'ENGE',
ActorId_EVCH = 'EVCH',
ActorId_EVIC = 'EVIC',
ActorId_EWHI = 'EWHI',
ActorId_FBBF = 'FBBF',
ActorId_FBBH = 'FBBH',
ActorId_FBCH = 'FBCH',
ActorId_FBRD = 'FBRD',
ActorId_FBRG = 'FBRG',
ActorId_FBSC = 'FBSC',
ActorId_FCHL = 'FCHL',
ActorId_FDKY = 'FDKY',
ActorId_FIBB = 'FIBB',
ActorId_FIFI = 'FIFI',
ActorId_FIMA = 'FIMA',
ActorId_FIML = 'FIML',
ActorId_FIRB = 'FIRB',
ActorId_FKTR = 'FKTR',
ActorId_FLCT = 'FLCT',
ActorId_FLDK = 'FLDK',
ActorId_FLEN = 'FLEN',
ActorId_FMAS = 'FMAS',
ActorId_FMLS = 'FMLS',
ActorId_FOFA = 'FOFA',
ActorId_FOMA = 'FOMA',
ActorId_FOMB = 'FOMB',
ActorId_FOMC = 'FOMC',
ActorId_FOMD = 'FOMD',
ActorId_FOMR = 'FOMR',
ActorId_FOMS = 'FOMS',
ActorId_FOMY = 'FOMY',
ActorId_FOPD = 'FOPD',
ActorId_FRBS = 'FRBS',
ActorId_FRTN = 'FRTN',
ActorId_FSIR = 'FSIR',
ActorId_FSSF = 'FSSF',
ActorId_FSST = 'FSST',
ActorId_FTRN = 'FTRN',
ActorId_GHOS = 'GHOS',
ActorId_GOCA = 'GOCA',
ActorId_GOCB = 'GOCB',
ActorId_GOCP = 'GOCP',
ActorId_GOKI = 'GOKI',
ActorId_GORK = 'GORK',
ActorId_GORM = 'GORM',
ActorId_GORP = 'GORP',
ActorId_GORS = 'GORS',
ActorId_GORY = 'GORY',
ActorId_GOVT = 'GOVT',
ActorId_GRCF = 'GRCF',
ActorId_GRCM = 'GRCM',
ActorId_GTTG = 'GTTG',
ActorId_GYAM = 'GYAM',
ActorId_HAMN = 'HAMN',
ActorId_HELA = 'HELA',
ActorId_Heart = 'HERT',
ActorId_HLMG = 'HLMG',
ActorId_HYSW = 'HYSW',
ActorId_IBBA = 'IBBA',
ActorId_IBSP = 'IBSP',
ActorId_ICBA = 'ICBA',
ActorId_ICBB = 'ICBB',
ActorId_ICBS = 'ICBS',
ActorId_ITBM = 'ITBM',
ActorId_ITSC = 'ITSC',
ActorId_ITTD = 'ITTD',
ActorId_ITWP = 'ITWP',
ActorId_IWTS = 'IWTS',
ActorId_JOLN = 'JOLN',
ActorId_KETH = 'KETH',
ActorId_KEYB = 'KEYB',
ActorId_KEYN = 'KEYN',
ActorId_KEYT = 'KEYT',
ActorId_KGDB = 'KGDB',
ActorId_KGDN = 'KGDN',
ActorId_KIMA = 'KIMA',
ActorId_KIMB = 'KIMB',
ActorId_KLTR = 'KLTR',
ActorId_KMOH = 'KMOH',
ActorId_KMOS = 'KMOS',
ActorId_KMSO = 'KMSO',
ActorId_KOAT = 'KOAT',
ActorId_KOCH = 'KOCH',
ActorId_KOKO = 'KOKO',
ActorId_KOTA = 'KOTA',
ActorId_KURI = 'KURI',
ActorId_L2MT = 'L2MT',
ActorId_L2V1 = 'L2V1',
ActorId_L2V2 = 'L2V2',
ActorId_LAVA = 'LAVA',
ActorId_LBCK = 'LBCK',
ActorId_LBRC = 'LBRC',
ActorId_LikeLike = 'LIKE',
ActorId_LIRA = 'LIRA',
ActorId_LOCK = 'LOCK',
ActorId_LVBD = 'LVBD',
ActorId_LVOF = 'LVOF',
ActorId_LZET = 'LZET',
ActorId_MABC = 'MABC',
ActorId_MABL = 'MABL',
ActorId_MAFI = 'MAFI',
ActorId_MAGR = 'MAGR',
ActorId_MARG = 'MARG',
ActorId_MATR = 'MATR',
ActorId_MBCC = 'MBCC',
ActorId_MDYG = 'MDYG',
ActorId_MGAJ = 'MGAJ',
ActorId_MIFR = 'MIFR',
ActorId_MKUR = 'MKUR',
ActorId_MLCK = 'MLCK',
ActorId_MNCB = 'MNCB',
ActorId_MOCT = 'MOCT',
ActorId_MRD2 = 'MRD2',
ActorId_MRDA = 'MRDA',
ActorId_MRDL = 'MRDL',
ActorId_MRDO = 'MRDO',
ActorId_MTFB = 'MTFB',
ActorId_MTFL = 'MTFL',
ActorId_MTWP = 'MTWP',
ActorId_MZCT = 'MZCT',
ActorId_NAVI = 'NAVI',
ActorId_NCCA = 'NCCA',
ActorId_NCCB = 'NCCB',
ActorId_NCCS = 'NCCS',
ActorId_NCMB = 'NCMB',
ActorId_NCWA = 'NCWA',
ActorId_NFSP = 'NFSP',
ActorId_NICO = 'NICO',
ActorId_NITF = 'NITF',
ActorId_NLTR = 'NLTR',
ActorId_NORE = 'NORE',
ActorId_NPWC = 'NPWC',
ActorId_NSHD = 'NSHD',
ActorId_NSSW = 'NSSW',
ActorId_NSTN = 'NSTN',
ActorId_NTTZ = 'NTTZ',
ActorId_NTUB = 'NTUB',
ActorId_OBPC = 'OBPC',
ActorId_OCGS = 'OCGS',
ActorId_OCTA = 'OCTA',
ActorId_OCTG = 'OCTG',
ActorId_OCTS = 'OCTS',
ActorId_OCTW = 'OCTW',
ActorId_OCWS = 'OCWS',
ActorId_OFSW = 'OFSW',
ActorId_OLDM = 'OLDM',
ActorId_OLDS = 'OLDS',
ActorId_PASS = 'PASS',
ActorId_PBK2 = 'PBK2',
ActorId_PBSP = 'PBSP',
ActorId_PCTG = 'PCTG',
ActorId_PHEY = 'PHEY',
ActorId_PHTM = 'PHTM',
ActorId_PLSR = 'PLSR',
ActorId_PMST = 'PMST',
ActorId_PMTB = 'PMTB',
ActorId_PMTC = 'PMTC',
ActorId_PMTD = 'PMTD',
ActorId_PostBox = 'POST',
ActorId_PPPM = 'PPPM',
ActorId_PRPL = 'PRPL',
ActorId_PRPP = 'PRPP',
ActorId_PRSP = 'PRSP',
ActorId_PSBK = 'PSBK',
ActorId_PSBL = 'PSBL',
ActorId_PSBS = 'PSBS',
ActorId_PSEM = 'PSEM',
ActorId_PSNP = 'PSNP',
ActorId_PSWB = 'PSWB',
ActorId_PTMN = 'PTMN',
ActorId_QKSD = 'QKSD',
ActorId_QKTG = 'QKTG',
ActorId_RAT0 = 'RAT0',
ActorId_RB1F = 'RB1F',
ActorId_RB1T = 'RB1T',
ActorId_RBD2 = 'RBD2',
ActorId_RBDS = 'RBDS',
ActorId_RBFR = 'RBFR',
ActorId_RBL1 = 'RBL1',
ActorId_RBL2 = 'RBL2',
ActorId_RBLS = 'RBLS',
ActorId_RBNT = 'RBNT',
ActorId_RBRP = 'RBRP',
ActorId_RBRT = 'RBRT',
ActorId_RBSN = 'RBSN',
ActorId_RBVC = 'RBVC',
ActorId_RBWS = 'RBWS',
ActorId_RBWT = 'RBWT',
ActorId_RCFO = 'RCFO',
ActorId_RCHU = 'RCHU',
ActorId_RCMS = 'RCMS',
ActorId_RCSG = 'RCSG',
ActorId_RLST = 'RLST',
ActorId_RMA0 = 'RMA0',
ActorId_RMA1 = 'RMA1',
ActorId_RMA2 = 'RMA2',
ActorId_RMA3 = 'RMA3',
ActorId_RMAJ = 'RMAJ',
ActorId_RMBC = 'RMBC',
ActorId_RMBD = 'RMBD',
ActorId_RMC0 = 'RMC0',
ActorId_RMC1 = 'RMC1',
ActorId_RMC2 = 'RMC2',
ActorId_RMC3 = 'RMC3',
ActorId_RMC4 = 'RMC4',
ActorId_RMC5 = 'RMC5',
ActorId_RMC6 = 'RMC6',
ActorId_RMDO = 'RMDO',
ActorId_RMDS = 'RMDS',
ActorId_RMF0 = 'RMF0',
ActorId_RMF1 = 'RMF1',
ActorId_RMFK = 'RMFK',
ActorId_RML0 = 'RML0',
ActorId_RML1 = 'RML1',
ActorId_RML2 = 'RML2',
ActorId_RML3 = 'RML3',
ActorId_RMLF = 'RMLF',
ActorId_RMM0 = 'RMM0',
ActorId_RMM1 = 'RMM1',
ActorId_RMM2 = 'RMM2',
ActorId_RMM3 = 'RMM3',
ActorId_RMM4 = 'RMM4',
ActorId_RMS0 = 'RMS0',
ActorId_RMS1 = 'RMS1',
ActorId_RMS2 = 'RMS2',
ActorId_RMS3 = 'RMS3',
ActorId_RMS4 = 'RMS4',
ActorId_RMS5 = 'RMS5',
ActorId_RMSD = 'RMSD',
ActorId_RMSF = 'RMSF',
ActorId_RMSS = 'RMSS',
ActorId_RMST = 'RMST',
ActorId_RMSV = 'RMSV',
ActorId_RMSW = 'RMSW',
ActorId_RMT0 = 'RMT0',
ActorId_RMT1 = 'RMT1',
ActorId_RMT2 = 'RMT2',
ActorId_RMT3 = 'RMT3',
ActorId_RMT4 = 'RMT4',
ActorId_RMTB = 'RMTB',
ActorId_RMTE = 'RMTE',
ActorId_RMTG = 'RMTG',
ActorId_RMTR = 'RMTR',
ActorId_RMTZ = 'RMTZ',
ActorId_RMV0 = 'RMV0',
ActorId_RMV1 = 'RMV1',
ActorId_RMVD = 'RMVD',
ActorId_RMVF = 'RMVF',
ActorId_RMVS = 'RMVS',
ActorId_RMVT = 'RMVT',
ActorId_RMVV = 'RMVV',
ActorId_RMVW = 'RMVW',
ActorId_RMW0 = 'RMW0',
ActorId_RMW1 = 'RMW1',
ActorId_RNTN = 'RNTN',
ActorId_ROCK = 'ROCK',
ActorId_RPMT = 'RPMT',
ActorId_Rupee = 'RUPE',
ActorId_RYAW = 'RYAW',
ActorId_SCCN = 'SCCN',
ActorId_SEAT = 'SEAT',
ActorId_SEFS = 'SEFS',
ActorId_SGMG = 'SGMG',
ActorId_SHDL = 'SHDL',
ActorId_SHIT = 'SHIT',
ActorId_SIRO = 'SIRO',
ActorId_SIRS = 'SIRS',
ActorId_SKDO = 'SKDO',
ActorId_SMCT = 'SMCT',
ActorId_SNMA = 'SNMA',
ActorId_SNMB = 'SNMB',
ActorId_SNOW = 'SNOW',
ActorId_SNST = 'SNST',
ActorId_SOGB = 'SOGB',
ActorId_SOGC = 'SOGC',
ActorId_SOLB = 'SOLB',
ActorId_SOLC = 'SOLC',
ActorId_SOLD = 'SOLD',
ActorId_SOLF = 'SOLF',
ActorId_SOLG = 'SOLG',
ActorId_SOLT = 'SOLT',
ActorId_SPAR = 'SPAR',
ActorId_SPBM = 'SPBM',
ActorId_SPDR = 'SPDR',
ActorId_SPID = 'SPID',
ActorId_SPTG = 'SPTG',
ActorId_SPTR = 'SPTR',
ActorId_SPTT = 'SPTT',
ActorId_SRNM = 'SRNM',
ActorId_SRSL = 'SRSL',
ActorId_SRST = 'SRST',
ActorId_SSFC = 'SSFC',
ActorId_STCT = 'STCT',
ActorId_STFB = 'STFB',
ActorId_STFH = 'STFH',
ActorId_STLF = 'STLF',
ActorId_STLW = 'STLW',
ActorId_STTG = 'STTG',
ActorId_STWH = 'STWH',
ActorId_SWBM = 'SWBM',
ActorId_SWCH = 'SWCH',
ActorId_SWDS = 'SWDS',
ActorId_SWHI = 'SWHI',
ActorId_SWOB = 'SWOB',
ActorId_SWON = 'SWON',
ActorId_SWTM = 'SWTM',
ActorId_SYDE = 'SYDE',
ActorId_SYDL = 'SYDL',
ActorId_SYDS = 'SYDS',
ActorId_SYFI = 'SYFI',
ActorId_SYFO = 'SYFO',
ActorId_SYIL = 'SYIL',
ActorId_SYIS = 'SYIS',
ActorId_SYOL = 'SYOL',
ActorId_SYOS = 'SYOS',
ActorId_SYRN = 'SYRN',
ActorId_SYSL = 'SYSL',
ActorId_SYSN = 'SYSN',
ActorId_SYSS = 'SYSS',
ActorId_SYWA = 'SYWA',
ActorId_SYWL = 'SYWL',
ActorId_SYWS = 'SYWS',
ActorId_SZKL = 'SZKL',
ActorId_SZKU = 'SZKU',
ActorId_SZRD = 'SZRD',
ActorId_TBRD = 'TBRD',
ActorId_TCAM = 'TCAM',
ActorId_TCOW = 'TCOW',
ActorId_TDKT = 'TDKT',
ActorId_TEHT = 'TEHT',
ActorId_Beedle = 'TERY',
ActorId_TEVT = 'TEVT',
ActorId_TFAT = 'TFAT',
ActorId_TGTZ = 'TGTZ',
ActorId_THER = 'THER',
ActorId_TKYT = 'TKYT',
ActorId_TLKT = 'TLKT',
ActorId_TMNA = 'TMNA',
ActorId_TMNC = 'TMNC',
ActorId_TMNP = 'TMNP',
ActorId_TPDO = 'TPDO',
ActorId_TRAP = 'TRAP',
ActorId_TRBC = 'TRBC',
ActorId_TRCB = 'TRCB',
ActorId_TRER = 'TRER',
ActorId_TRIC = 'TRIC',
ActorId_TRLY = 'TRLY',
ActorId_TRRL = 'TRRL',
ActorId_TRSG = 'TRSG',
ActorId_TRSP = 'TRSP',
ActorId_TRTT = 'TRTT',
ActorId_TRUP = 'TRUP',
ActorId_TSCN = 'TSCN',
ActorId_TSLB = 'TSLB',
ActorId_TSMT = 'TSMT',
ActorId_TTET = 'TTET',
ActorId_TTFT = 'TTFT',
ActorId_TTKB = 'TTKB',
ActorId_TTUT = 'TTUT',
ActorId_TUTO = 'TUTO',
ActorId_TVLR = 'TVLR',
ActorId_VCCH = 'VCCH',
ActorId_VCFT = 'VCFT',
ActorId_VLCR = 'VLCR',
ActorId_VOLV = 'VOLV',
ActorId_VRGN = 'VRGN',
ActorId_WAMA = 'WAMA',
ActorId_WAWA = 'WAWA',
ActorId_WAWB = 'WAWB',
ActorId_WAWC = 'WAWC',
ActorId_WAWS = 'WAWS',
ActorId_WAWY = 'WAWY',
ActorId_WBEF = 'WBEF',
ActorId_WBN2 = 'WBN2',
ActorId_WBPS = 'WBPS',
ActorId_WBTN = 'WBTN',
ActorId_WCAS = 'WCAS',
ActorId_WDBA = 'WDBA',
ActorId_WDRD = 'WDRD',
ActorId_WHMA = 'WHMA',
ActorId_WIDR = 'WIDR',
ActorId_WIDT = 'WIDT',
ActorId_WKTR = 'WKTR',
ActorId_WPBD = 'WPBD',
ActorId_WPCH = 'WPCH',
ActorId_WPCL = 'WPCL',
ActorId_WTBS = 'WTBS',
ActorId_WTH2 = 'WTH2',
ActorId_WTH3 = 'WTH3',
ActorId_WTTH = 'WTTH',
ActorId_WWFS = 'WWFS',
ActorId_YKAP = 'YKAP',
ActorId_YKCP = 'YKCP',
ActorId_YKEP = 'YKEP',
ActorId_YUKI = 'YUKI',
ActorId_YUKY = 'YUKY',
ActorId_YWIS = 'YWIS',
ActorId_ZELD = 'ZELD',
ActorId_ZLBB = 'ZLBB',
ActorId_ZLBS = 'ZLBS',
ActorId_ZLSL = 'ZLSL',
ActorId_ZLSN = 'ZLSN',
ActorId_ZLSS = 'ZLSS',
ActorId_ZSRS = 'ZSRS',
ActorId_ZSTG = 'ZSTG',
};
+153
View File
@@ -0,0 +1,153 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorUnk_ov000_0209767c.hpp"
#include "Player/PlayerGet.hpp"
#include "Unknown/UnkStruct_027e0ce4.hpp"
#include "types.h"
typedef u32 RupeeId;
enum RupeeId_ {
/* 0 */ RupeeId_Green,
/* 1 */ RupeeId_Blue,
/* 2 */ RupeeId_Red,
/* 3 */ RupeeId_BigGreen,
/* 4 */ RupeeId_BigRed,
/* 5 */ RupeeId_Gold,
/* 6 */ RupeeId_6,
/* 7 */ RupeeId_7,
};
class Actor_9c {
public:
/* 00 (vtable) */
/* 04 */
/* 00 */ virtual void vfunc_00(); // corresponds to func_ov000_02097c14
/* 04 */ virtual void vfunc_04(); // corresponds to func_ov000_02097c20
/* 08 */
Actor_9c();
void func_ov000_02097bec();
};
class Actor_c4_Base {
public:
Actor_c4_Base(void *param1, unk32 param2);
};
class Actor_c4 : public Actor_c4_Base {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 08 */ unk16 mUnk_0a;
/* 0c */ unk16 mUnk_0c;
/* 0c */ unk16 mUnk_0e;
/* 10 */ unk16 mUnk_10;
/* 10 */ unk16 mUnk_12;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk32 mUnk_1c;
/* 20 */ Actor *mUnk_20;
/* 24 */
/* 00 */ virtual unk32 vfunc_00(unk32 param1, unk32 param2);
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
/* 0c */ virtual void vfunc_0c(unk32 param1);
/* 10 */
Actor_c4(Actor *param1);
void func_ov031_020f637c();
void func_ov031_020f6374();
void func_ov031_020f6384(unk32 param1);
unk32 func_ov031_020f62e4(unk32 param1);
};
class ActorRupee : public Actor {
public:
/* 00 (base) */
/* 94 */ u16 mUnk_94;
/* 96 */ u16 mUnk_96;
/* 98 */ u16 mUnk_98;
/* 9a */ u16 mUnk_9a;
/* 9c */ Actor_9c mUnk_9c;
/* a0 */ unk32 mUnk_a0;
/* a4 */ unk32 mUnk_a4;
/* a8 */ unk32 mUnk_a8;
/* ac */ unk32 mUnk_ac;
/* b0 */ unk32 mUnk_b0;
/* b4 */ unk32 mUnk_b4;
/* b8 */ unk32 mUnk_b8;
/* bc */ unk32 mUnk_bc;
/* c0 */ unk32 mUnk_c0;
/* c4 */ Actor_c4 mUnk_c4;
/* e8 */ unk32 mUnk_e8;
/* ec */ s16 mUnk_ec;
/* f0 */ UnkStruct_PlayerGet_ec mUnk_f0;
/* f4 */ bool mUnk_f4;
/* f5 */ unk8 mUnk_f5;
/* f6 */ unk8 mUnk_f6;
/* f7 */ unk8 mUnk_f7;
/* f8 */
ActorRupee();
/* 18 */ virtual unk32 vfunc_18() override;
/* 20 */ virtual void vfunc_20() override;
/* 2c */ virtual void vfunc_2c(unk32 param1) override;
/* 4c */ virtual ~ActorRupee() override;
void func_ov000_02098a88(unk32 param1, unk32 param2);
void func_ov017_020bf9c8(UnkStruct_func_01fff3b4_ret *param1);
UnkStruct_ov000_020b539c_30 *func_ov031_020e8cb8();
void func_ov031_020e8d2c(Vec3p *param1);
void func_ov031_020e8fec();
void func_ov031_020e9068();
void func_ov031_020e9108();
void func_ov031_020e91a8();
void func_ov031_020e9234();
void func_ov031_020e9254();
void func_ov031_020e92e0();
void func_ov031_020e9310();
void func_ov031_020e9428();
void func_ov031_020e942c();
void func_ov031_020e9430();
void func_ov031_020e9434();
void func_ov031_020e9438();
void func_ov031_020e9450();
void func_ov031_020e94d4();
void func_ov031_020e951c();
void func_ov031_020e9598();
void func_ov031_020e95ac();
void func_ov031_020e95b0();
void func_ov031_020e95c0();
void func_ov031_020e9610();
void func_ov031_020e9624();
void func_ov031_020e9638();
void func_ov031_020e96bc();
void func_ov031_020e970c();
void func_ov031_020e9740();
void func_ov031_020e9838();
void func_ov031_020e98c4();
void func_ov031_020e9904(unk32 param1);
void func_ov031_020e9b88();
void func_ov031_020e9be8();
bool func_ov031_020e9d54();
void func_ov031_020e9d94();
bool func_ov031_020e9e5c();
unk32 func_01fff5d0(unk32 param1, unk32 param2);
};
class ActorRupeeBase : public ActorUnk_ov000_0209767c {
public:
/* 00 (base) */
ActorRupeeBase();
/* 0c */ virtual Actor *Create();
};
+36
View File
@@ -0,0 +1,36 @@
#pragma once
#include "Actor/Actor.hpp"
#include "System/SysNew.hpp"
#include "types.h"
class ActorUnk_ov000_0209767c : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
ActorUnk_ov000_0209767c(u32 actorId);
/* 00 */ virtual void vfunc_00() = 0;
/* 04 */ virtual void vfunc_04() = 0;
/* 08 */ virtual void vfunc_08() = 0;
/* 0c */ virtual Actor *Create() = 0;
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28() = 0;
/* 2c */ virtual void vfunc_2c() = 0;
/* 30 */ virtual void vfunc_30() = 0;
/* 34 */ virtual void vfunc_34() = 0;
/* 38 */ virtual void vfunc_38() = 0;
/* 3c */ virtual void vfunc_3c() = 0;
/* 40 */ virtual void vfunc_40() = 0;
/* 44 */ virtual void vfunc_44() = 0;
/* 48 */
};
+1
View File
@@ -34,6 +34,7 @@ public:
unk32 func_ov000_020a86a4();
u32 func_ov000_020a86d0(ItemFlag itemFlag);
u8 func_ov000_020a8728();
void func_ov000_020a8768(unk32 param1, unk32 param2, unk32 param3);
u8 func_ov000_020a8748();
void func_ov000_020a87c8(s32 amount);
void func_ov000_020a87ec(s32 amount);
+134
View File
@@ -0,0 +1,134 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_ov000_0208f820.hpp"
class UnkStruct_ov110_021861ec {
public:
/* 00 */ Vec3p mUnk_00;
/* 08 */ unk32 mUnk_0c;
/* 08 */ unk32 mUnk_10;
/* 14 */
ARM UnkStruct_ov110_021861ec(q20 x, q20 y, q20 z) {
this->mUnk_00.x = x;
this->mUnk_00.y = y;
this->mUnk_00.z = z;
}
};
struct UnkStruct_PlayerGet_64 {
UnkStruct_PlayerGet_64(unk32 param1, unk32 param2);
};
class UnkStruct_PlayerGet_74_base : public SysObject {
public:
/* 00 (vtable) */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04() /* = 0 */;
/* 08 */ virtual void vfunc_08() /* = 0 */;
/* 0c */ virtual void vfunc_0c() /* = 0 */;
/* 10 */ virtual void vfunc_10() /* = 0 */;
/* 14 */ virtual void vfunc_14() /* = 0 */;
/* 18 */ virtual void vfunc_18() /* = 0 */;
/* 1c */ virtual void vfunc_1c() /* = 0 */;
/* 20 */ virtual void vfunc_20() /* = 0 */;
/* 24 */
UnkStruct_PlayerGet_74_base();
};
class UnkStruct_PlayerGet_74 : public UnkStruct_PlayerGet_74_base {
public:
/* 00 (base) */
/* 00 */ virtual void vfunc_00() override;
UnkStruct_PlayerGet_74() {}
};
class UnkStruct_PlayerGet_8c {
public:
UnkStruct_PlayerGet_8c(unk32 param1);
};
class UnkStruct_PlayerGet_ec {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */
UnkStruct_PlayerGet_ec(unk32 param1) {
this->mUnk_00 = param1;
}
~UnkStruct_PlayerGet_ec();
};
class PlayerGet : public UnkStruct_ov000_0208f820 {
public:
/* 00 (base) */
/* 48 */ unk32 mUnk_48;
/* 4c */ unk32 mUnk_4c;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 5c */ unk32 mUnk_5c;
/* 60 */ unk32 mUnk_60;
/* 64 */ UnkStruct_PlayerGet_64 mUnk_64;
/* 68 */ unk32 mUnk_68;
/* 6c */ unk32 mUnk_6c;
/* 70 */ unk16 mUnk_70;
/* 70 */ unk8 mUnk_72;
/* 70 */ unk8 mUnk_73;
/* 74 */ UnkStruct_PlayerGet_74 mUnk_74;
/* 78 */ unk32 mUnk_78;
/* 7c */ unk32 mUnk_7c;
/* 80 */ unk32 mUnk_80;
/* 84 */ unk32 mUnk_84;
/* 88 */ UnkStruct_ov000_0208f820 *mUnk_88;
/* 8c */ UnkStruct_PlayerGet_8c mUnk_8c;
/* 90 */ unk32 mUnk_90;
/* 94 */ unk32 mUnk_94;
/* 98 */ unk32 mUnk_98;
/* 9c */ unk32 mUnk_9c;
/* a0 */ unk32 mUnk_a0;
/* a4 */ unk32 mUnk_a4;
/* a8 */ unk32 mUnk_a8;
/* ac */ unk32 mUnk_ac;
/* b0 */ unk32 mUnk_b0;
/* b4 */ unk32 mUnk_b4;
/* b8 */ unk32 mUnk_b8;
/* bc */ unk32 mUnk_bc;
/* c0 */ unk32 mUnk_c0;
/* c4 */ unk32 mUnk_c4;
/* c8 */ unk32 mUnk_c8;
/* cc */ unk32 mUnk_cc;
/* d0 */ unk32 mUnk_d0;
/* d4 */ unk32 mUnk_d4;
/* d8 */ unk32 mUnk_d8;
/* dc */ unk32 mUnk_dc;
/* e0 */ unk32 mUnk_e0;
/* e4 */ unk32 mUnk_e4;
/* e8 */ unk32 mUnk_e8;
/* ec */ UnkStruct_PlayerGet_ec mUnk_ec[4];
/* f0 */
/* 04 */ virtual ~PlayerGet() override;
/* 0c */ virtual void vfunc_0c() override;
/* 10 */ virtual void vfunc_10() override;
/* 18 */ virtual void vfunc_18(unk32 param1, unk32 param2, unk32 param3) override;
void func_ov110_02184dac(unk32 param1, unk32 param2, unk32 param3);
PlayerGet();
static unk32 func_ov110_02185da4(unk32 param1);
// Japanese version only
bool func_ov110_02186b8c();
};
extern const UnkStruct_ov110_021861ec data_ov110_021861ec;
+27
View File
@@ -0,0 +1,27 @@
#pragma once
#include "global.h"
#include "types.h"
struct Random {
/* 00 */ u64 mRandomValue;
/* 08 */ u64 mFactor;
/* 10 */ u64 mAddend;
/* 18 */
/**
* Generate a random number from 0 (inclusive) to `max` (exclusive)
*/
u32 Next(u64 min, u64 max) {
mRandomValue = mAddend + mFactor * mRandomValue;
u64 result;
if ((max - min) == 0x100000000) {
result = mRandomValue;
} else {
result = (mRandomValue >> 32) * (max - min);
}
return (result >> 32) + min;
}
};
extern Random gRandom;
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "nitro/math.h"
#include "types.h"
class UnkStruct_027e09a8 {
public:
void func_ov000_02071b30(unk32 param1, Vec3p *pPos, unk32 param3);
};
extern UnkStruct_027e09a8 *data_027e09a8;
+23
View File
@@ -1,9 +1,32 @@
#pragma once
#include "nitro/math.h"
#include "types.h"
class UnkStruct_027e0cd8_0c {
public:
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
/* 0c */ virtual void vfunc_0c();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual q20 vfunc_28(Vec3p *param1, unk32 param2, unk32 param3);
/* 2c */ virtual void vfunc_2c();
};
class UnkStruct_027e0cd8 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ UnkStruct_027e0cd8_0c *mUnk_0c;
/* 10 */
void func_ov000_02081ecc(unk16 param1, unk32 param2);
};
+4 -4
View File
@@ -10,10 +10,10 @@
class UnkStruct_027e0ce0 {
public:
/* 00 */ unk8 mHealth;
/* 04 */ unk8 mHealthMax;
/* 02 */ unk32 mUnk_02;
/* 03 */ unk32 mUnk_03;
/* 04 */ unk32 mUnk_04;
/* 01 */ unk8 mHealthMax;
/* 02 */ unk8 mUnk_02;
/* 03 */ unk8 mUnk_03;
/* 04 */ unk32 *mUnk_04;
/* 08 */ unk32 *mUnk_08;
/* 0c */ unk32 *mUnk_0c;
/* 10 */ unk32 *mUnk_10;
+16
View File
@@ -0,0 +1,16 @@
#pragma once
#include "nitro/math.h"
#include "types.h"
struct UnkStruct_func_01fff3b4_ret {
/* 00 */ unk8 mUnk_00[0xE8];
/* e8 */ Vec3p mPos;
};
class UnkStruct_027e0ce4 {
public:
UnkStruct_func_01fff3b4_ret *func_01fff3b4(unk32 param1);
};
extern UnkStruct_027e0ce4 *data_027e0ce4;
+13
View File
@@ -0,0 +1,13 @@
#pragma once
#include "Player/PlayerGet.hpp"
#include "nitro/math.h"
#include "types.h"
class UnkStruct_027e0cec {
public:
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, Vec3p *param3, unk32 param4);
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
};
extern UnkStruct_027e0cec *data_027e0cec;
@@ -0,0 +1,70 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
#include "nitro/math.h"
struct UnkStruct_ov000_0208f820_14 {
/* 00 */ unk8 mUnk_00[0x6C];
/* 6c */ unk32 mUnk_6c;
/* 70 */ u16 mUnk_70;
/* 72 */ unk16 mUnk_72;
/* 74 */ unk32 mUnk_74;
/* 78 */ unk32 mUnk_78;
/* 7c */ unk32 mUnk_7c;
/* 80 */ unk32 mUnk_80;
/* 84 */ unk32 mUnk_84;
/* 88 */ unk32 mUnk_88;
/* 8c */ unk32 mUnk_8c;
/* 90 */
};
struct UnkStruct_ov000_0208f820_28_54 {
/* 00 */ unk8 mUnk_00[0x12];
/* 12 */ u16 mUnk_12;
};
struct UnkStruct_ov000_0208f820_28 {
/* 00 */ unk8 mUnk_00[0x54];
/* 54 */ UnkStruct_ov000_0208f820_28_54 *mUnk_54;
/* 58 */
};
class UnkStruct_ov000_0208f820 : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ UnkStruct_ov000_0208f820_14 *mUnk_14;
/* 18 */ unk8 mUnk_18;
/* 18 */ unk8 mUnk_19;
/* 18 */ unk8 mUnk_1a;
/* 18 */ unk8 mUnk_1b;
/* 1c */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ UnkStruct_ov000_0208f820_28 *mUnk_28;
/* 2c */ unk32 mUnk_2c;
/* 30 */ unk32 mUnk_30;
/* 34 */ Vec3p *mUnk_34;
/* 38 */ unk32 mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */ unk32 mUnk_44;
/* 48 */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual ~UnkStruct_ov000_0208f820();
/* 0c */ virtual void vfunc_0c();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c();
/* 20 */
UnkStruct_ov000_0208f820();
};