mirror of
https://github.com/zeldaret/ss
synced 2026-06-17 07:07:39 -04:00
418 lines
18 KiB
C++
418 lines
18 KiB
C++
#include "d/a/d_a_item.h"
|
|
|
|
#include "common.h"
|
|
#include "d/a/d_a_itembase.h"
|
|
#include "d/flag/dungeonflag_manager.h"
|
|
#include "d/flag/flag_index.h"
|
|
#include "f/f_list_mg.h"
|
|
#include "toBeSorted/dowsing_target.h"
|
|
#include "toBeSorted/file_manager.h"
|
|
|
|
const ItemFlagStruct dAcItemBase_c::sDefaultFlagStruct = {0x28, 0x3C, 0x1E, 0xFF, 0x0000, 0x02, 0x01};
|
|
const ItemFlagStruct dAcItemBase_c::sItemFlagStructs[167] = {
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0001, 0x00, 0x01},
|
|
{0x32, 0x46, 0x1e, 0xff, 0x0002, 0x02, 0x01},
|
|
{0x32, 0x46, 0x1e, 0xff, 0x0003, 0x02, 0x01},
|
|
{0x32, 0x46, 0x1e, 0xff, 0x0004, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0005, 0x02, 0x00},
|
|
{0x32, 0x46, 0x1e, 0xff, 0x0006, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0007, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0008, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0009, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000a, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000b, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000c, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000d, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000e, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000f, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0010, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0011, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0013, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0014, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0015, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000c, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000c, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000c, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x001c, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000c, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000c, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x000c, 0x00, 0x01},
|
|
{0x32, 0x46, 0x1e, 0xff, 0x0020, 0x00, 0x01},
|
|
{0x32, 0x46, 0x1e, 0xff, 0x0021, 0x00, 0x01},
|
|
{0x32, 0x46, 0x1e, 0xff, 0x0022, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0023, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0024, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0028, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0029, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x002a, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x002b, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x002c, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x002d, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x002e, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0046, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0030, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0031, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0002, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0033, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0034, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0035, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0036, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0037, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0038, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0039, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x003c, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0041, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0042, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0044, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0046, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0047, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0048, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x004a, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x004b, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x004c, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x004d, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x004e, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x004f, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0051, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0054, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0055, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0056, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0057, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0058, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x005a, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x005b, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x005c, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x005d, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x005e, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x005f, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0060, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0061, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0062, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0063, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0064, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0065, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0066, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0067, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0068, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0069, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x006b, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x006c, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x006d, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x006e, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x006f, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0070, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0071, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0072, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0074, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0075, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0076, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0077, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0078, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0079, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x007a, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x007b, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x007c, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x007d, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x007e, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x007f, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0080, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0081, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0082, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0083, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0084, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0085, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0086, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0087, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0088, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0089, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x008a, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x008c, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0x00, 0x008d, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x01, 0x008e, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x02, 0x007a, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x03, 0x0090, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x04, 0x0091, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x05, 0x0092, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x06, 0x0093, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x07, 0x0094, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x08, 0x0095, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x09, 0x0096, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x0a, 0x0097, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x0b, 0x0098, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x0099, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x009e, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x009f, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00a0, 0x00, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0x0c, 0x02f1, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x0d, 0x02f2, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x0e, 0x02f3, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x0f, 0x02f4, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x10, 0x02f5, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x11, 0x02f6, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x12, 0x02f7, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x13, 0x02f8, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x14, 0x02f9, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x15, 0x02fa, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x16, 0x02fb, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x17, 0x02fc, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x18, 0x02fd, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x19, 0x02fe, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x1a, 0x02ff, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0x1b, 0x0300, 0x00, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00b1, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00b2, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00b3, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00b4, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00ba, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00bb, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00bc, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00bd, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00be, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00bf, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00c0, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00c1, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00c2, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00c3, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00c4, 0x02, 0x00},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00c5, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00c6, 0x02, 0x01},
|
|
{0x28, 0x3c, 0x1e, 0xff, 0x00c7, 0x00, 0x00},
|
|
};
|
|
|
|
const u32 dAcItemBase_c::sItemTypeFlags[MAX_ITEM_ID - 1] = {
|
|
0x2000, 0x0, 0x3000, 0x3000, 0x0, 0x1000, 0x3000, 0x3000, 0x0, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
|
|
0x1000, 0x1000, 0x1000, 0x0, 0x0, 0x1000, 0x1000, 0x1000, 0x3000, 0x3000, 0x3000, 0x1000, 0x1000, 0x1000,
|
|
0x0, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x2000, 0x0, 0x2, 0x1000, 0x1000, 0x1000, 0x3000, 0x0,
|
|
0x3000, 0x0, 0x0, 0x0, 0x0, 0x3000, 0x0, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x3002, 0x3002,
|
|
0x1000, 0x3000, 0x0, 0x0, 0x0, 0x3000, 0x3000, 0x3000, 0x0, 0x220, 0x220, 0x1000, 0x1000, 0x0,
|
|
0x10, 0x1000, 0x0, 0x0, 0x2, 0x1000, 0x1000, 0x1000, 0x10, 0x20, 0x0, 0x20, 0x0, 0x0,
|
|
0x111, 0x111, 0x11, 0x11, 0x120, 0x0, 0x1000, 0x1000, 0x1000, 0x1000, 0x0, 0x1000, 0x1000, 0x1000,
|
|
0x0, 0x1000, 0x121, 0x2, 0x2, 0x222, 0x4, 0x1000, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x1000,
|
|
0x1000, 0x0, 0x0, 0x3, 0x120, 0x120, 0x120, 0x120, 0x120, 0x120, 0x120, 0x120, 0x120, 0x1120,
|
|
0x110, 0x110, 0x101, 0x202, 0x203, 0x300, 0x400, 0x500, 0x201, 0x302, 0x303, 0x1000, 0x1000, 0x1000,
|
|
0x1000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x21,
|
|
0x3, 0x3, 0x3, 0x3, 0x0, 0x0, 0x0, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000,
|
|
0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x0, 0x0, 0x0, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
|
|
0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x110, 0x110,
|
|
0x110, 0x0, 0x1000, 0x4, 0x0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
|
0xFFFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0x0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0,
|
|
0xFFFF, 0xFFFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
0x0, 0x0, 0x0, 0x0, 0xFFFF, 0xFFFF, 0xFFFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFFF,
|
|
0xFFFF, 0x0, 0x0, 0x0, 0x0, 0x0,
|
|
};
|
|
|
|
bool dAcItemBase_c::isValidItemTypeIdx(int itemId) {
|
|
return itemId < ARRAY_LENGTH(sItemTypeFlags);
|
|
}
|
|
|
|
bool dAcItemBase_c::getItemTypeFromId(u16 itemID, u32 *pOutType) {
|
|
bool valid = isValidItemTypeIdx(itemID);
|
|
if (valid) {
|
|
*pOutType = sItemTypeFlags[itemID];
|
|
}
|
|
return valid;
|
|
}
|
|
|
|
bool dAcItemBase_c::getItemAnimType(u16 itemId, u32 *pOutType) {
|
|
u32 type;
|
|
bool valid = getItemTypeFromId(itemId, &type);
|
|
if (valid) {
|
|
*pOutType = type >> 12 & 0xF;
|
|
}
|
|
return valid;
|
|
}
|
|
|
|
int dAcItemBase_c::getHeartContainerHeartIncrease() {
|
|
return 1;
|
|
}
|
|
|
|
int dAcItemBase_c::getCompletedHeartPieceHeartIncrease() {
|
|
return 1;
|
|
}
|
|
|
|
u8 dAcItemBase_c::getTearIdx(int tearNum) {
|
|
return tearNum / 15;
|
|
}
|
|
bool dAcItemBase_c::getFlagIdxForTear(int tearNum, u32 *pOutFlag) {
|
|
u8 idx = getTearIdx(tearNum);
|
|
if (idx == 0) {
|
|
*pOutFlag = 0xd;
|
|
return true;
|
|
} else if (idx == 1) {
|
|
*pOutFlag = 0xe;
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
u16 dAcItemBase_c::getTearBit(int tearNum) {
|
|
return 1 << tearNum % 15;
|
|
}
|
|
|
|
bool dAcItemBase_c::setDungeonFlagForTear(int tearNum) {
|
|
u32 flag_idx;
|
|
if (!getFlagIdxForTear(tearNum, &flag_idx)) {
|
|
return false;
|
|
}
|
|
u16 oldVal = DungeonflagManager::sInstance->getCounterOrFlag(flag_idx, 8);
|
|
u16 tearBit = getTearBit(tearNum);
|
|
u16 newVal = tearBit | oldVal;
|
|
DungeonflagManager::sInstance->setToValue(flag_idx, newVal);
|
|
return true;
|
|
}
|
|
|
|
u16 dAcItemBase_c::getItemId() {
|
|
return mId;
|
|
}
|
|
|
|
// TODO: Incorrect location
|
|
bool isItemThatHasStruct(u16 itemId) {
|
|
return itemId;
|
|
}
|
|
|
|
// TODO: Incorrect location
|
|
u16 getIndex(u16 itemId) {
|
|
return itemId;
|
|
}
|
|
|
|
// TODO: Incorrect location
|
|
// const ItemFlagStruct *getItemFlagStruct(u16 itemId) {
|
|
// if (isItemThatHasStruct(itemId)) {
|
|
// return &sItemFlagStructs[getIndex(itemId)];
|
|
// } else {
|
|
// return &sDefaultFlagStruct;
|
|
// }
|
|
// }
|
|
|
|
fLiMgBa_c dAcItem_c::sItemList;
|
|
|
|
SPECIAL_ACTOR_PROFILE(ITEM, dAcItem_c, fProfile::ITEM, 0x2B, 0, 2);
|
|
|
|
STATE_DEFINE(dAcItem_c, Wait);
|
|
STATE_DEFINE(dAcItem_c, Carry);
|
|
STATE_DEFINE(dAcItem_c, GetBeetle);
|
|
STATE_DEFINE(dAcItem_c, WaitGet);
|
|
STATE_DEFINE(dAcItem_c, Get);
|
|
STATE_DEFINE(dAcItem_c, WaitGetDemo);
|
|
STATE_DEFINE(dAcItem_c, WaitForcedGetDemo);
|
|
STATE_DEFINE(dAcItem_c, GetDemo);
|
|
STATE_DEFINE(dAcItem_c, WaitTBoxGetDemo);
|
|
STATE_DEFINE(dAcItem_c, ResurgeWait);
|
|
STATE_DEFINE(dAcItem_c, WaitTurnOff);
|
|
STATE_DEFINE(dAcItem_c, WaitSacredDewGetEffect);
|
|
|
|
dAcItem_c::dAcItem_c()
|
|
: mStateMgr(*this, sStateID::null),
|
|
mEff_0x8F4(this),
|
|
mEff_0x928(this),
|
|
mEff_0x95C(this),
|
|
mEff_0x990(this),
|
|
mEff_0x9C4(this),
|
|
mEff_0x9F8(this),
|
|
mEff_0xA2C(this),
|
|
mEff_0xA60(this),
|
|
mNode(this),
|
|
mEventRelated(*this, nullptr),
|
|
mDowsingTarget(this, DowsingTarget::SLOT_NONE),
|
|
mItemQueuePrev(nullptr),
|
|
mItemQueueNext(nullptr) {
|
|
field_0xCD8 = 1.0f;
|
|
mBaseScale = 1.0f;
|
|
mCurrentScale = 1.0f;
|
|
field_0xCE4 = 1.0f;
|
|
field_0xCE8 = 1.0f;
|
|
field_0xCEC = 1.0f;
|
|
|
|
mItemFlags = 0;
|
|
field_0xD4C = 0;
|
|
|
|
mbNoDespawn = false;
|
|
mbNoGravity = false;
|
|
|
|
field_0xD51 = 0;
|
|
field_0xD56 = 0;
|
|
|
|
mbShowItemLighting = false;
|
|
|
|
field_0xD62 = 0;
|
|
field_0xD63 = 0;
|
|
field_0xD65 = 0;
|
|
field_0xD66 = 0;
|
|
|
|
sItemList.append(&mNode);
|
|
mTargetFiRelated = 3;
|
|
}
|
|
dAcItem_c::~dAcItem_c() {
|
|
delete field_0xB3C;
|
|
for (int i = 0; i < 2; i++) {
|
|
delete field_0xB34[i];
|
|
}
|
|
mDowsingTarget.doUnregister();
|
|
}
|
|
|
|
void dAcItem_c::initializeState_Wait() {}
|
|
void dAcItem_c::executeState_Wait() {}
|
|
void dAcItem_c::finalizeState_Wait() {}
|
|
|
|
void dAcItem_c::initializeState_Carry() {}
|
|
void dAcItem_c::executeState_Carry() {}
|
|
void dAcItem_c::finalizeState_Carry() {}
|
|
|
|
void dAcItem_c::initializeState_GetBeetle() {}
|
|
void dAcItem_c::executeState_GetBeetle() {}
|
|
void dAcItem_c::finalizeState_GetBeetle() {}
|
|
|
|
void dAcItem_c::initializeState_WaitGet() {}
|
|
void dAcItem_c::executeState_WaitGet() {}
|
|
void dAcItem_c::finalizeState_WaitGet() {}
|
|
|
|
void dAcItem_c::initializeState_Get() {}
|
|
void dAcItem_c::executeState_Get() {}
|
|
void dAcItem_c::finalizeState_Get() {}
|
|
|
|
void dAcItem_c::initializeState_WaitGetDemo() {}
|
|
void dAcItem_c::executeState_WaitGetDemo() {}
|
|
void dAcItem_c::finalizeState_WaitGetDemo() {}
|
|
|
|
void dAcItem_c::initializeState_WaitForcedGetDemo() {}
|
|
void dAcItem_c::executeState_WaitForcedGetDemo() {}
|
|
void dAcItem_c::finalizeState_WaitForcedGetDemo() {}
|
|
|
|
void dAcItem_c::initializeState_GetDemo() {}
|
|
void dAcItem_c::executeState_GetDemo() {}
|
|
void dAcItem_c::finalizeState_GetDemo() {}
|
|
|
|
void dAcItem_c::initializeState_WaitTBoxGetDemo() {}
|
|
void dAcItem_c::executeState_WaitTBoxGetDemo() {}
|
|
void dAcItem_c::finalizeState_WaitTBoxGetDemo() {}
|
|
|
|
void dAcItem_c::initializeState_ResurgeWait() {}
|
|
void dAcItem_c::executeState_ResurgeWait() {}
|
|
void dAcItem_c::finalizeState_ResurgeWait() {}
|
|
|
|
void dAcItem_c::initializeState_WaitTurnOff() {}
|
|
void dAcItem_c::executeState_WaitTurnOff() {}
|
|
void dAcItem_c::finalizeState_WaitTurnOff() {}
|
|
|
|
void dAcItem_c::initializeState_WaitSacredDewGetEffect() {}
|
|
void dAcItem_c::executeState_WaitSacredDewGetEffect() {}
|
|
void dAcItem_c::finalizeState_WaitSacredDewGetEffect() {}
|