#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() {}