Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //--------------------------------------
- //--- 010 Editor v8.0.0 Binary Template
- //
- // File: RF4 save files (rf4a.sav, rf4b.sav, rf4c.sav, rf4_sXX.sav)
- // Author: HenryEx
- // Revision: 2020-10-04
- // Purpose: Works for both Rune Factory 4 (3DS) and
- // Rune Factory 4 Special (NS)
- //--------------------------------------
- /* Addresses:
- 0x00000: CRC32 4b
- 0x00022: Something about tornados? 0B - no tornado, 05 - Tornado
- 0x00036: Gender
- 0x0003C: Lumber 4b
- 0x00040: Stone 4b
- 0x00044: Compost 4b
- 0x00048: Fodder 4b
- 0x0004C: Money 4b, 8b?
- 0x00054: Cur HP 4b
- 0x00058: HP mod 4b
- 0x0005C: Cur RP 2b
- 0x0005E: RP mod 2b
- 0x00060: Str mod
- 0x00064: Int mod
- 0x00068: Vit mod
- 0x0006C: Level (minus 1)
- 0x00070: Exp
- - Birthday -
- 0x1E8DE: Middle 8 bits spread over 2 bytes, and in
- REVERSE BIT ORDER HOLY OMFG WHAT WHY, so:
- b0-4: ???
- b5-6: Month (0-3)
- b7-11: Day (not 0-based)
- b12-15: ???
- Reverse bits means, for days: day 30 is value 15; Day 2 is value 8,
- Day 11 is value 26... this is terrible
- - Villager Stats -
- (Block size: 0x64 / 100
- Starts at dummy, 0xb8?)
- Vishnal:
- 0x0011C: Cur HP 4b
- 0x00120: HP mod 4b
- 0x00128: Str mod
- 0x0012C: Int mod
- 0x00130: Vit mod
- 0x00134: Level (minus 1)
- 0x00138: Exp
- 0x0013D: flags (80 if been in party -> stats visible)
- - Skills & Skill Exp (4b, 4b) -
- 0x05964: Short Sword
- 0x0596C: Long Sword
- 0x05974: Spear
- 0x0597C: Axe/Hammer
- 0x05984: Dual Blades
- 0x0598C: Fist
- 0x05994: Fire
- 0x0599C: Water
- 0x059A4: Earth
- 0x059AC: Wind
- 0x059B4: Light
- 0x059BC: Dark
- 0x059C4: Love
- 0x059CC: Farming
- 0x059D4: Logging
- 0x059DC: Mining
- 0x059E4: Fishing
- 0x059EC: Cooking
- 0x059F4: Forging
- 0x059FC: Chemistry
- 0x05A04: Crafting
- 0x05A0C: Searching
- 0x05A14: Walking
- 0x05A1C: Sleeping
- 0x05A24: Eating
- 0x05A2C: Defense
- 0x05A34: Resist poison
- 0x05A3C: Resist Seals
- 0x05A44: Resist Paralysis
- 0x05A4C: Resist Sleep
- 0x05A54: Resist Fatigue
- 0x05A5C: Resist Cold
- 0x05A64: Resist Knockout
- 0x05A6C: Bathing
- 0x05A74: Taming
- 0x05A7C: Throwing
- 0x05A84: Leadership
- 0x05A8C: Bartering
- - Item Storages -
- # Block size p. Item: 0x1C / 28 (except magic, size 02)
- # Start offsets for Inv types:
- 0x05AA4: Backpack/Equipment (0x7C4 / 1988) [71]
- 0x06268: Spellpack (magic) (0x3C / 60) [30]
- 0x062A4: Fridge (0x6C48 / 27720) [990]
- 0x0CEEC: Storage (0x6C48 / 27720) [990]
- 0x13B34: Weapon Box (0xD20 / 3360) [120]
- 0x14854: Wardrobe (0xD20 / 3360) [120]
- 0x15574: Tool Box (0x1068 / 4200) [150]
- 0x165DC: Shipping Box (0x20D0 / 8400) [300]
- 0x186AC: Shop Box (0x1A4 / 420) [15]
- 0x18850: Bookshelf (magic) (0xB4 / 180) [90]
- - Fields & Soil Attributes -
- # Start at 0x1AEB4, block size 0x10 / 16
- # size?: 0xA20 / 2592
- - Animal Flags & FP -
- (Block size: 0x24 / 36, Start at: 0x1BDB0)
- #Note: 20 slots per Barn, 10 Barns
- 0x00: Name
- 0x13: slot no., 1b
- 0x14: Monster Type? 4b
- 0x18: FP? 2b?
- - Villager Flags & FP -
- (Block size: 0x2C / 44, Start at: 0x1DB10)
- #Note: 1st & last persons are dummies
- FP levels:
- 140 - Lv4
- 0x00: FP 4b
- 0x04-2B: ???
- - NPC Equipment -
- #Start at: 0x1EB88, block size: 0xFC / 252
- - Farm objects -
- Table for objects on the farm
- 76 (?) objects, length 0xC / 12 bytes, per farm; Start 0x18EA4
- 0x00: crop / object ID - 00 is nothing, 58 tilled earth for example
- 0x07: 00 dry earth, 20 wet earth
- 0x08: crop (object) health
- 0x09-0B: 11bit(?) X/Y coords for object, (0,0) top left
- one "grid" square seems to be 32x32
- For ref.: middle of top-left square on main farm is 79|176
- Top-right 431|176; Bottom-left 79|336; Bottom-right 431|336
- 0x20694: Prince(ss) Points 4b
- 0x20698: Tourists 4b
- - Requests -
- Some flags
- 0x1E042: 01 - Daily request #1 done?
- 0x1E043: 80 - Daily request #2 done?, "come back tomorrow"?
- - Orders -
- 0x1E93F: 80 - Backpack +1, 40 - Backpack +2
- 0x1E94F: 10 - Unlock Sharance maze
- - Difficulty -
- 1 byte for original 3 difficulties, 1 bitflag for additional RF4S difficulty
- 0x0005: 00 - Normal, 40 - Easy, 80 - Hard
- 0x1EA3B: 20 - HELL difficulty (RF4S only) if on Hard
- - Fishing -
- Biggest & smallest size each 2b
- Masu trout records: 0x21934 & 0x2197C (0x219B4 & 0x219FC Special)
- 0x1E8C4: Story flag? 20 - Time frozen w/ Volkanon, 28 - normal?
- 0x1E8DE: 5bit reverse bit order - # of cooking breads Porco sells (max. 31)
- */
- // #include "VarDefs.bt" // shorthand typedefs
- // Typedef some custom variables:
- //-----------------------------------
- // Define enums
- typedef enum <ubyte> {
- Male,
- Female
- } GENDER;
- typedef enum <uint> {
- Spring,
- Summer,
- Fall,
- Winter
- } MONTH;
- typedef enum <ubyte> {
- Normal,
- Easy = 64,
- Hard = 128
- } DIFF;
- typedef enum <ubyte> {
- DefaultCostume,
- Variant1 = 4,
- Variant2 = 8
- } COST;
- typedef enum <short> {
- NoChange,
- Vishnal,
- Clorica,
- Volkanon,
- Forte,
- Kiel,
- Bado,
- Margaret,
- Dylas,
- Arthur,
- Porcoline,
- XiaoPai,
- LinFa,
- Amber,
- Illuminata,
- Doug,
- Blossom,
- Dolce,
- Jones,
- Nancy,
- Leon,
- Ventuswill,
- Son,
- Daughter,
- Barrett,
- Raven,
- MistressTrupin,
- TravelerM1,
- TravelerM2,
- TravelerF1 = 34,
- TravelerF2,
- Ethelberd = 239,
- Pico = 309,
- Lest = 9999
- } MODEL;
- typedef enum <ushort> {
- __000,
- __001,
- __002,
- __003,
- Farm_004,
- Farm_005,
- Farm_006,
- Farm_007,
- Field_008,
- Field_009,
- Field_010,
- Field_011,
- Field_012,
- Field_013,
- Field_014,
- Field_015,
- Field_016,
- Field_017,
- Field_018,
- Field_019,
- Field_020,
- Field_021,
- Field_022,
- Field_023,
- Selphia_AirshipWay_024,
- Selphia_AirshipWay_025,
- Selphia_AirshipWay_026,
- Selphia_AirshipWay_027,
- Selphia_HousingArea_028,
- Selphia_HousingArea_029,
- Selphia_HousingArea_030,
- Selphia_HousingArea_031,
- Selphia_MelodyStreet_032,
- Selphia_MelodyStreet_033,
- Selphia_MelodyStreet_034,
- Selphia_MelodyStreet_035,
- Selphia_Observatory_036,
- Selphia_Observatory_037,
- Selphia_Observatory_038,
- Selphia_Observatory_039,
- Selphia_DragonLake_040,
- Selphia_DragonLake_041,
- Selphia_DragonLake_042,
- Selphia_DragonLake_043,
- SelphiaCastleGate_044,
- SelphiaCastleGate_045,
- SelphiaCastleGate_046,
- SelphiaCastleGate_047,
- Selphia_TownSquare_048,
- Selphia_TownSquare_049,
- Selphia_TownSquare_050,
- Selphia_TownSquare_051,
- Selphia_052,
- Selphia_053,
- Selphia_054,
- Selphia_055,
- Selphia_056,
- Selphia_057,
- Selphia_058,
- Selphia_059,
- Castle_DragonRoom_060,
- Castle_DragonRoom_061,
- Castle_DragonRoom_062,
- Castle_DragonRoom_063,
- YourRoom_064,
- ButlersRoom_065,
- YourRoom_066,
- YourRoom_067,
- YourRoom_068,
- YourRoom_069,
- TrophyRoom_070,
- TrophyRoomB2_071,
- YourRoom_072,
- TrophyRoomB3_073,
- Room_Dummy_074,
- Room_Dummy_075,
- Room_Dummy_076,
- MonsterBarn_077,
- MonsterBarn_078,
- MonsterBarn_079,
- MonsterBarn_080,
- MonsterBarn_081,
- MonsterBarn_082,
- MonsterBarn_083,
- MonsterBarn_084,
- MonsterBarn_085,
- MonsterBarn_086,
- MonsterBarn_087,
- MonsterBarn_088,
- MonsterBarn_089,
- MonsterBarn_090,
- MonsterBarn_091,
- MonsterBarn_092,
- MonsterBarn_093,
- MonsterBarn_094,
- MonsterBarn_095,
- MonsterBarn_096,
- MonsterBarn_097,
- MonsterBarn_098,
- MonsterBarn_099,
- MonsterBarn_100,
- MonsterBarn_101,
- MonsterBarn_102,
- MonsterBarn_103,
- MonsterBarn_104,
- MonsterBarn_105,
- MonsterBarn_106,
- MonsterBarn_107,
- MonsterBarn_108,
- MonsterBarn_109,
- MonsterBarn_110,
- MonsterBarn_111,
- MonsterBarn_112,
- MonsterBarn_113,
- MonsterBarn_114,
- MonsterBarn_115,
- MonsterBarn_116,
- MonsterBarn_117,
- MonsterBarn_118,
- MonsterBarn_119,
- MonsterBarn_120,
- MonsterBarn_121,
- MonsterBarn_122,
- MonsterBarn_123,
- MonsterBarn_124,
- MonsterBarn_125,
- MonsterBarn_126,
- SincerityGeneralStore_127,
- SincerityGeneral2F_128,
- Blacksmith_129,
- PorcolinesKitchen_130,
- PorcolinesKitchen2F_131,
- TinyBandageClinic_132,
- TinyBandageClinic2F_133,
- Carnations_134,
- Carnations2F_135,
- BellHotelLobby_136,
- BellHotelResidence_137,
- BellHotelGuestRoom_138,
- BellBath_139,
- MargaretsHouse_140,
- SainteCoquilleManor_141,
- SteCoquilleManor2F_142,
- FortesHouse_143,
- House_144,
- House_145,
- House_146,
- House_147,
- __148,
- House_149,
- House_150,
- House_151,
- House_152,
- House_153,
- House_154,
- House_155,
- House_156,
- House_157,
- House_158,
- Airship_159,
- Airship_160,
- SelphiaPlain_161,
- SelphiaPlain_162,
- SelphiaPlain_163,
- SelphiaPlain_164,
- SelphiaPlain_165,
- SelphiaPlain_166,
- SelphiaPlain_167,
- SelphiaPlainMushRoad_168,
- SelphiaPlainMushSpan_169,
- SelphiaPlainEast_170,
- SelphiaPlainEast_171,
- WaterRuins_172,
- SelphiaPlain_173,
- SelphiaPlainMushRoad_174,
- SelphiaPlainMushRoad_175,
- SelphiaPlainMushRoad_176,
- SelphiaPlainMushRoad_177,
- SelphiaPlain_178,
- Cliff_179,
- SelphiaPlainWest_180,
- SelphiaPlainWest_181,
- SelphiaPlainWest_182,
- SelphiaPlainMushRoad_183,
- SelphiaPlainMushRoad_184,
- SelphiaPlainWest_185,
- SelphiaPlainWest_186,
- TwinRocks_187,
- SelphiaPlainWest_188,
- LeonKarnak_189,
- SelphiaPlainWest_190,
- CedarTree_191,
- SelphiaPlainEast_192,
- SelphiaPlainEast_193,
- SelphiaPlainEast_194,
- SercerezoHill_195,
- DailyRoad_196,
- SelphiaPlainEast_197,
- IdraCave_198,
- SercerezoHill_199,
- SercerezoHill_200,
- SercerezoHill_201,
- SercerezoHill_202,
- SelphiaPlain_203,
- SelphiaPlain_204,
- AutumnBridge_205,
- AutumnBridge_206,
- AutumnRoad_207,
- AutumnRoad_208,
- AutumnRoad_209,
- DeliriumLavaRuins_210,
- AutumnRoad_211,
- AutumnRoad_212,
- AutumnRoad_213,
- AutumnRoad_214,
- AutumnRoad_215,
- AutumnRoad_216,
- AutumnRoad_217,
- AutumnRiver_218,
- AutumnRoad_219,
- AutumnRoad_220,
- AutumnRoad_221,
- AutumnRoad_222,
- AutumnRoad_223,
- AutumnRoad_224,
- AutumnRoad_225,
- MayaRoadEntrance_226,
- SelphiaPlainEast_227,
- CerezoBridge_228,
- CerezoBridge_229,
- SercerezoHill_230,
- CluckCluckNest_231,
- SilverArch_232,
- SilverArch_233,
- SilverLake_234,
- WinterSpring_235,
- AutumnSpring_236,
- SelphiaPlainEast_237,
- SummerSpring_238,
- SpringSpring_239,
- BuriedCave_240,
- KeenoLake_241,
- SelphiaPlain_242,
- SelphiaPlain_243,
- SilverLake_244,
- SilverLake_245,
- SilverLake_246,
- SercerezoHill_247,
- SercerezoHill_248,
- SercerezoLake_249,
- SercerezoHill_250,
- DemonsDen_251,
- SercerezoHill_252,
- SercerezoHillBridge_253,
- SercerezoHill_254,
- SercerezoHill_255,
- AutumnBridge_256,
- RevivalCave_257,
- MayaBridge_258,
- SercerezoHill_259,
- Cave_260,
- SpringField_261,
- SummerField_262,
- AutumnField_263,
- WinterField_264,
- SelphiaPlain_265,
- SelphiaPlain_266,
- SelphiaPlain_267,
- SelphiaPlain_268,
- SelphiaPlain_269,
- SelphiaPlain_270,
- YokmirForest_271,
- YokmirForestDepths_272,
- YokmirForest_273,
- YokmirForest_274,
- YokmirForest_275,
- YokmirForest_276,
- YokmirForest_277,
- YokmirForest_278,
- Forest_Dummy_279,
- Forest_Dummy_280,
- Forest_Dummy_281,
- Forest_Dummy_282,
- Forest_Dummy_283,
- WaterRuins_284,
- WaterRuinsDepths_285,
- WaterRuins_286,
- WaterRuins_287,
- WaterRuins_288,
- WaterRuins_289,
- WaterRuins_290,
- WaterRuins_291,
- WaterRuins_292,
- WaterRuins_293,
- WaterRuins_294,
- WaterRuins_295,
- WaterRuins_296,
- WaterRuins_297,
- WaterRuins_298,
- WaterRuins_299,
- WaterRuins_300,
- Temple_Dummy_301,
- Temple_Dummy_302,
- ObsidianMansion_303,
- ObsidianMnsnTheatre_304,
- ObsidianMnsnEntrance_305,
- ObsidianMansion_306,
- ObsidianMansion_307,
- ObsidianMansion_308,
- ObsidianMansion_309,
- ObsidianMansion_310,
- ObsidianMansion_311,
- ObsidianMansion_312,
- ObsidianMansion_313,
- ObsidianMansion_314,
- ObsidianMansion_315,
- ObsidianMansion_316,
- ObsidianMansion_317,
- ObsidianMansion_318,
- ObsidianMansion_319,
- ObsidianMansion_320,
- ObsidianMansion_321,
- Ruin_Dummy_322,
- Ruin_Dummy_323,
- LeonKarnak_324,
- LeonKarnakDepths_325,
- LeonKarnak_326,
- LeonKarnak_327,
- LeonKarnak_328,
- LeonKarnak_329,
- LeonKarnak_330,
- LeonKarnak_331,
- LeonKarnak_332,
- LeonKarnak_333,
- LeonKarnak_334,
- LeonKarnak_335,
- LeonKarnak_336,
- LeonKarnak_337,
- LeonKarnak_338,
- LeonKarnak_339,
- LeonKarnak_340,
- LeonKarnak_341,
- LeonKarnak_342,
- LeonKarnak_343,
- LeonKarnak_344,
- LeonKarnak_345,
- LeonKarnak_346,
- FloatingEmpire_347,
- FloatingEmpire_348,
- FloatingEmpireFront_349,
- FloatingEmpire_350,
- FloatingEmpire_351,
- FloatingEmpireSouth_352,
- FloatingEmpireSouth_353,
- FloatingEmpireSouth_354,
- FloatingEmpireSouth_355,
- FloatingEmpireSouth_356,
- FloatingEmpireSouth_357,
- FloatingEmpireSouth_358,
- FloatingEmpireSouth_359,
- FloatingEmpireSouth_360,
- FloatingEmpireSouth_361,
- FloatingEmpireSouth_362,
- FloatingEmpireSouth_363,
- FloatingEmpireSouth_364,
- FloatingEmpireSouth_365,
- FloatingEmpireSouth_366,
- FloatingEmpireSouth_367,
- FloatingEmpireSouth_368,
- FloatingEmpireSouth_369,
- FloatingEmpireSouth_370,
- FloatingEmpireSouth_371,
- FloatingEmpireSouth_372,
- FloatingEmpireSouth_373,
- FloatingEmpireSouth_374,
- FloatingEmpireSouth_375,
- FloatingEmpireSouth_376,
- FloatingEmpireWest_377,
- FloatingEmpireWest_378,
- FloatingEmpireWest_379,
- FloatingEmpireWest_380,
- FloatingEmpireWest_381,
- FloatingEmpireWest_382,
- FloatingEmpireWest_383,
- FloatingEmpireWest_384,
- FloatingEmpireWest_385,
- FloatingEmpireWest_386,
- FloatingEmpireWest_387,
- FloatingEmpireWest_388,
- FloatingEmpireWest_389,
- FloatingEmpireWest_390,
- FloatingEmpireWest_391,
- FloatingEmpireWest_392,
- FloatingEmpireWest_393,
- FloatingEmpireWest_394,
- FloatingEmpireWest_395,
- FloatingEmpireWest_396,
- FloatingEmpireWest_397,
- FloatingEmpireWest_398,
- FloatingEmpireWest_399,
- FloatingEmpireWest_400,
- FloatingEmpireWest_401,
- FloatingEmpireWest_402,
- FloatingEmpireWest_403,
- FloatingEmpireWest_404,
- FloatingEmpireWest_405,
- FloatingEmpireWest_406,
- FloatingEmpireWest_407,
- FloatingEmpireWest_408,
- FloatingEmpireEast_409,
- FloatingEmpireEast_410,
- FloatingEmpireEast_411,
- FloatingEmpireEast_412,
- FloatingEmpireEast_413,
- FloatingEmpireEast_414,
- FloatingEmpireEast_415,
- FloatingEmpireEast_416,
- FloatingEmpireEast_417,
- FloatingEmpireEast_418,
- FloatingEmpireEast_419,
- FloatingEmpireEast_420,
- FloatingEmpireEast_421,
- FloatingEmpireEast_422,
- FloatingEmpireEast_423,
- FloatingEmpireEast_424,
- FloatingEmpireEast_425,
- FloatingEmpireEast_426,
- FloatingEmpireEast_427,
- FloatingEmpireEast_428,
- FloatingEmpireEast_429,
- FloatingEmpireEast_430,
- FloatingEmpireEast_431,
- FloatingEmpireEast_432,
- FloatingEmpireEast_433,
- FloatingEmpireEast_434,
- FloatingEmpireEast_435,
- FloatingEmpireEast_436,
- FloatingEmpireEast_437,
- FloatingEmpireEast_438,
- FloatingEmpireSouth_439,
- FloatingEmpire_440,
- FloatingEmpire_441,
- WorldofFields_442,
- SharanceMaze_443,
- SharanceMaze_444,
- SharanceMaze_445,
- SharanceMaze_446,
- SharanceMaze_447,
- SharanceMaze_448,
- SharanceMaze_449,
- SharanceMaze_450,
- SharanceMaze_451,
- SharanceMaze_452,
- SharanceMaze_453,
- YokmirCave_454,
- YokmirCave_455,
- YokmirCave_456,
- YokmirCave_457,
- YokmirCave_458,
- YokmirCave_459,
- YokmirCave_460,
- YokmirCave_461,
- YokmirCave_462,
- YokmirCave_463,
- YokmirCave_464,
- YokmirCave_465,
- YokmirCave_466,
- YokmirCave_467,
- YokmirCave_468,
- YokmirCave_469,
- YokmirCave_470,
- YokmirCave_471,
- YokmirCave_472,
- YokmirCave_473,
- YokmirCave_474,
- YokmirCave_475,
- YokmirCave_476,
- YokmirCave_477,
- YokmirCave_478,
- YokmirCave_479,
- YokmirCave_480,
- YokmirCave_481,
- YokmirCave_482,
- YokmirCave_483,
- YokmirCave_484,
- YokmirCave_485,
- DeliriumLavaRuins_486,
- DeliriumLavaRuins_487,
- DeliriumLavaRuins_488,
- DeliriumLavaRuins_489,
- DeliriumLavaRuins_490,
- DeliriumLavaRuins_491,
- DeliriumLavaRuins_492,
- DeliriumLavaRuins_493,
- DeliriumLavaRuins_494,
- DeliriumLavaRuins_495,
- DeliriumLavaRuins_496,
- DeliriumLavaRuins_497,
- DeliriumLavaRuins_498,
- DeliriumLavaRuins_499,
- DeliriumLavaRuins_500,
- DeliriumLavaRuins_501,
- DeliriumLavaRuins_502,
- DeliriumLavaRuins_503,
- DeliriumLavaRuins_504,
- DeliriumLavaRuins_505,
- DeliriumLavaRuins_506,
- DeliriumLavaRuins_507,
- DeliriumLavaRuins_508,
- DeliriumLavaRuins_509,
- DeliriumLavaRuins_510,
- DeliriumLavaRuins_511,
- DeliriumLavaRuins_512,
- DeliriumLavaRuins_513,
- DeliriumLavaRuins_514,
- DeliriumLavaRuins_515,
- DeliriumLavaRuins_516,
- DeliriumLavaRuins_517,
- DeliriumLavaRuins_518,
- DeliriumLavaRuins_519,
- DeliriumLavaRuins_520,
- DeliriumLavaRuins_521,
- DeliriumLavaRuins_522,
- DeliriumLavaRuins_523,
- DeliriumLavaRuins_524,
- DeliriumLavaRuins_525,
- DeliriumLavaRuins_526,
- Unknown_527,
- Unknown_528,
- Unknown_529,
- Unknown_530,
- Unknown_531,
- Unknown_532,
- Unknown_533,
- Unknown_534,
- Unknown_535,
- Unknown_536,
- Unknown_537,
- Unknown_538,
- Unknown_539,
- Unknown_540,
- IdraCave_541,
- IdraCave_542,
- IdraCave_543,
- IdraCave_544,
- IdraCave_545,
- IdraCave_546,
- IdraCave_547,
- IdraCave_548,
- IdraCave_549,
- IdraCave_550,
- IdraCave_551,
- IdraCaveB1_552,
- IdraCaveB1_553,
- IdraCaveB1_554,
- IdraCaveB1_555,
- IdraCaveB1_556,
- IdraCaveB1_557,
- IdraCaveB1_558,
- IdraCaveB1_559,
- IdraCaveB1_560,
- IdraCaveB1_561,
- IdraCaveB1_562,
- IdraCaveB1_563,
- IdraCaveB1_564,
- IdraCaveB1_565,
- IdraCaveB1_566,
- IdraCaveB1_567,
- IdraCaveB1_568,
- IdraCaveB1_569,
- IdraCaveB1_570,
- IdraCaveB1_571,
- IdraCaveB2_572,
- IdraCaveB2_573,
- IdraCaveB2_574,
- IdraCaveB2_575,
- IdraCaveB2_576,
- IdraCaveB2_577,
- IdraCaveB2_578,
- IdraCaveB2_579,
- IdraCaveB2_580,
- IdraCaveB2_581,
- IdraCaveB2_582,
- IdraCaveB2_583,
- IdraCaveB2_584,
- IdraCaveB2_585,
- IdraCaveB2_586,
- IdraCaveB2_587,
- IdraCaveB2_588,
- IdraCaveB2_589,
- IdraCaveB2_590,
- IdraCaveB2_591,
- IdraCaveB2_592,
- IdraCaveB2_593,
- ImperialResearchCntr_594,
- MayaRoad_595,
- MayaRoad_596,
- MayaRoad_597,
- MayaRoad_598,
- MayaRoad_599,
- MayaRoad_600,
- MayaRoad_601,
- MayaRoad_602,
- MayaRoad_603,
- MayaRoad_604,
- MayaRoad_605,
- MayaRoad_606,
- MayaRoad_607,
- MayaRoad_608,
- MayaRoad_609,
- MayaRoad_610,
- MayaRoad_611,
- MayaRoad_612,
- MayaRoad_613,
- MayaRoad_614,
- MayaRoad_615,
- MayaRoad_616,
- MayaRoad_617,
- MayaRoad_618,
- MayaRoad_619,
- MayaRoad_620,
- MayaRoad_621,
- MayaRoad_622,
- MayaRoad_623,
- MayaRoad_624,
- MayaRoad_625,
- MayaRoad_626,
- MayaRoad_627,
- MayaRoad_628,
- MayaRoad_629,
- MayaRoad_630,
- MayaRoad_631,
- MayaRoad_632,
- MayaRoad_633,
- MayaRoad_634,
- MayaRoad_635,
- MayaRoad_636,
- MayaRoad_637,
- MayaRoad_638,
- MayaRoad_639,
- MayaRoad_640,
- MayaRoad_641,
- MayaRoad_642,
- MayaRoad_643,
- MayaRoad_644,
- MayaRoad_645,
- MayaRoad_646,
- MayaRoad_647,
- MayaRoad_648,
- MayaRoad_649,
- MayaRoad_650,
- MayaRoad_651,
- MayaRoad_652,
- MayaRoad_653,
- MayaRoad_654,
- MayaRoad_655,
- MayaRoad_656,
- MayaRoad_657,
- SechsTerritory_658,
- SechsTerritory_659,
- SechsTerritory_660,
- SechsTerritory_661,
- SechsTerritory_662,
- SechsTerritory_663,
- SechsTerritory_664,
- SechsTerritory_665,
- SechsTerritory_666,
- SechsTerritory_667,
- SechsTerritory_668,
- SechsTerritory_669,
- SechsTerritory_670,
- SechsTerritory_671,
- SechsTerritory_672,
- SechsTerritory_673,
- SechsTerritory_674,
- SechsTerritory_675,
- SechsTerritory_676,
- SechsTerritory_677,
- SechsTerritory_678,
- SechsTerritory_679,
- SechsTerritory_680,
- SechsTerritory_681,
- SechsTerritory_682,
- SechsTerritory_683,
- SechsTerritory_684,
- SechsTerritory_685,
- SechsTerritory_686,
- SechsTerritory_687,
- SechsTerritory_688,
- SechsTerritory_689,
- SechsTerritory_690,
- SechsTerritory_691,
- SechsTerritory_692,
- SechsTerritory_693,
- SechsTerritory_694,
- SechsTerritory_695,
- SechsTerritory_696,
- SechsTerritory_697,
- SechsTerritory_698,
- SechsTerritory_699,
- SechsTerritory_700,
- SechsTerritory_701,
- SechsTerritory_702,
- SechsTerritory_703,
- SechsTerritory_704,
- SechsTerritory_705,
- SechsTerritory_706,
- SechsTerritory_707,
- SechsTerritory_708,
- SechsTerritory_709,
- SechsTerritory_710,
- SechsTerritory_711,
- SechsTerritory_712,
- SechsTerritory_713,
- SechsTerritory_714,
- SechsTerritory_715,
- SechsTerritory_716,
- SechsTerritory_717,
- SechsTerritory_718,
- SechsTerritory_719,
- SechsTerritory_720,
- SechsTerritory_721,
- SechsTerritory_722,
- SechsTerritory_723,
- SechsTerritory_724,
- SechsTerritory_725,
- RunePrana_726,
- RunePrana_727,
- RunePrana_728,
- RunePrana_729,
- RunePrana_730,
- RunePrana_731,
- RunePrana_732,
- RunePrana_733,
- RunePrana_734,
- RunePrana_735,
- RunePrana_736,
- RunePrana_737,
- RunePrana_738,
- RunePrana_739,
- RunePrana_740,
- RunePrana_741,
- RunePrana_742,
- RunePrana_743,
- RunePrana_744,
- RunePrana_745,
- RunePrana_746,
- RunePrana_747,
- RunePrana_748,
- RunePrana_749,
- RunePrana_750,
- RunePrana_751,
- RunePrana_752,
- RunePrana_753,
- RunePrana_754,
- RunePrana_755,
- RunePrana_756,
- RunePrana_757,
- RunePrana_758,
- RunePrana_759,
- RunePrana_760,
- RunePrana_761,
- RunePrana_762,
- RunePrana_763,
- RunePrana_764,
- RunePrana_765,
- RunePrana_766,
- RunePrana_767,
- RunePrana_768,
- RunePrana_769,
- RunePrana_770,
- RunePrana_771,
- RunePrana_772,
- RunePrana_773,
- RunePrana_774,
- RunePrana_775,
- RunePrana_776,
- RunePrana_777,
- RunePrana_778,
- RunePrana_779,
- RunePrana_780,
- RunePrana_781,
- RunePrana_782,
- RunePrana_783,
- RunePrana_784,
- RunePrana_785,
- RunePrana_786,
- RunePrana_787,
- RunePrana_788,
- RunePrana_789,
- RunePrana_790,
- RunePrana_791,
- RunePrana_792,
- RunePrana_793,
- RunePrana_794,
- RunePrana_795,
- RunePrana_796,
- RunePrana_797,
- RunePrana_798,
- RunePrana_799,
- RunePrana_800,
- RunePrana_801,
- RunePrana_802,
- RunePrana_803,
- RunePrana_804,
- RunePrana_805,
- RunePrana_806,
- RunePrana_807,
- RunePrana_808,
- RunePrana_809,
- RunePrana_810,
- RunePrana_811,
- RunePrana_812,
- RunePrana_813,
- RunePrana_814,
- RunePrana_815,
- RunePrana_816,
- RunePrana_817,
- RunePrana_818,
- RunePrana_819,
- RunePrana_820,
- RunePrana_821,
- RunePrana_822,
- RunePrana_823,
- RunePrana_824,
- RunePrana_825,
- RunePrana_826,
- RunePrana_827,
- RunePrana_828,
- RunePrana_829,
- RunePrana_830,
- RunePrana_831,
- RunePrana_832,
- RunePrana_833,
- RunePrana_834,
- RunePrana_835,
- RunePrana_836,
- RunePrana_837,
- RunePrana_838,
- RunePrana_839,
- RunePrana_840,
- RunePrana_841,
- RunePrana_842,
- RunePrana_843,
- RunePrana_844,
- RunePrana_845,
- RunePrana_846,
- RunePrana_847,
- RunePrana_848,
- RunePrana_849,
- RunePrana_850,
- RunePrana_851,
- RunePrana_852,
- CluckCluckNest_853,
- CluckCluckNest_854,
- CluckCluckNest_855,
- CluckCluckNest_856,
- CluckCluckNest_857,
- RevivalCave_858,
- RevivalCave_859,
- RevivalCave_860,
- DemonsDen_861,
- DemonsDen_862,
- DemonsDen_863,
- DemonsDen_864,
- DemonsDen_865,
- DemonsDen_866,
- DemonsDen_867,
- DemonsDen_868,
- DemonsDen_869,
- __870,
- __871,
- VolkanonBridge_872,
- AmoureuxdesSaisons_873
- } ROOM;
- typedef enum <short> {
- Cabbage = 1,
- KingCabbage,
- PinkTurnip,
- ColossalPink,
- PinkMelon,
- ConquerorMelon,
- Onion,
- UltraOnion,
- Pumpkin,
- DoomPumpkin,
- Cucumber,
- KaiserCucumber,
- Corn,
- GigantCorn,
- Tomato,
- TitanTomato,
- Eggplant,
- EmperorEggplant,
- Yam,
- LordlyYam,
- Potato,
- PrincelyPotato,
- Carrot,
- RoyalCarrot,
- GreenPepper,
- GreenPepperRex,
- Spinach,
- SovereignSpinach,
- Turnip,
- TyrantTurnip,
- Radish,
- NobleRadish,
- Leek,
- LegendaryLeek,
- BokChoy,
- BossBokChoy,
- HotHotFruit,
- GiantHotHotFruit,
- BambooSprout,
- GoldenCabbage,
- GoldenKingCabbage,
- GoldenPumpkin,
- GldnDoomPumpkin,
- GoldenPotato,
- GoldPrincePotato,
- GoldenTurnip,
- GoldenTyrantTurnip,
- MushroomA,
- MushroomB,
- MushroomC,
- MushroomD,
- MushroomE,
- Mushroom,
- MonarchMushroom,
- Strawberry,
- SultanStrawberry,
- Pineapple,
- KingPineapple,
- Grapes,
- Apple,
- Orange,
- MealyApple,
- Toyherb,
- UltraToyherb,
- MoondropFlower,
- UltraMoondropFlower,
- PinkCat,
- KingPinkCat,
- CharmBlue,
- GreatCharmBlue,
- MedicinalHerb,
- AntidoteGrass,
- BlackGrass,
- OrangeGrass,
- RedGrass,
- YellowGrass,
- BlueGrass,
- GreenGrass,
- PurpleGrass,
- IndigoGrass,
- WhiteGrass,
- Weeds,
- WitheredGrass,
- CherryGrass,
- KingCherryGrass,
- LampGrass,
- KaiserLampGrass,
- BlueCrystal,
- BigBlueCrystal,
- EmeryFlower,
- GreatEmeryFlower,
- Ironleaf,
- SuperIronleaf,
- FourLeafClover,
- Great4LeafClover,
- Fireflower,
- BigFireflower,
- GreenCrystal,
- BigGreenCrystal,
- NoelGrass,
- LargeNoelGrass,
- AutumnGrass,
- BigAutumnGrass,
- PomPomGrass,
- KingPomPomGrass,
- RedCrystal,
- BigRedCrystal,
- WhiteCrystal,
- BigWhiteCrystal,
- AyngondaiaLawn,
- TheProtein,
- Intelligencer,
- VitalGummi,
- HeartDrink,
- AntidotePotion,
- ParaGone,
- Roundoff,
- ColdMedicine,
- Formuade,
- LovePotion,
- Invinciroid,
- Leveliser,
- HeavySpice,
- SweetPowder,
- SourDrop,
- MixedHerbs,
- RecoveryPotion,
- HealingPotion,
- MysteryPotion,
- MagicalPotion,
- ObjectX,
- FailedDish,
- DisastrousDish,
- TroutSashimi,
- CharSashimi,
- RainbowSashimi,
- SalmonSashimi,
- CherrySashimi,
- TaimenSashimi,
- SnapperSashimi,
- GlitterSashimi,
- LoverSashimi,
- GirellaSashimi,
- SkipjackSashimi,
- YellowtailSashimi,
- TunaSashimi,
- SardineSashimi,
- NeedlefishSashimi,
- PikeSashimi,
- FlounderSashimi,
- TurbotSashimi,
- FallSashimi,
- SquidSashimi,
- SunsquidSashimi,
- LampSquidSashimi,
- BlowfishSashimi,
- LobsterSashimi,
- ShrimpSashimi,
- FriedVeggies,
- FriedRice,
- CabbageCakes,
- FrenchFries,
- Croquettes,
- Popcorn,
- CornCereal,
- MisoEggplant,
- FriedEggs,
- Omelet,
- OmeletRice,
- BakedApple,
- CurryBread,
- FrenchToast,
- Donut,
- FriedUdon,
- Tempura,
- Pancakes,
- Gyoza,
- Risotto,
- DryCurry,
- SaltedMasuTrout,
- SaltedChar,
- SaltedRTrout,
- SaltedCSalmon,
- SaltedChub,
- SaltedSalmon,
- SaltedTaimen,
- GrilledCCarp,
- GrilledGibelio,
- GrilledSnapper,
- GrilledGirella,
- GrilledGSnapper,
- GrilledLSnapper,
- GrilledSkipjack,
- GrilledMackerel,
- GrilledYellowtail,
- SaltedPondSmelt,
- TunaTeriyaki,
- DriedSardines,
- GrilledNeedlefish,
- SaltedPike,
- GrilledFlounder,
- GrilledTurbot,
- GrilledFFlounder,
- GrilledSquid,
- GrilledSunsquid,
- GrilledLampSquid,
- GrilledBlowfish,
- GrilledLobster,
- GrilledShrimp,
- GrilledSFlounder,
- HotMilk,
- HotChocolate,
- GrapeLiqueur,
- BoiledPumpkin,
- BoiledSpinach,
- BoiledEgg,
- GlazedYam,
- BoiledGyoza,
- StrawberryJam,
- AppleJam,
- GrapeJam,
- Marmalade,
- CheeseFondue,
- Udon,
- CurryUdon,
- TempuraUdon,
- RicePorridge,
- MilkPorridge,
- TempuraBowl,
- EggBowl,
- Stew,
- CurryRice,
- UltimateCurry,
- RoyalCurry,
- RelaxTea,
- GrilledMiso,
- UnionStew,
- RockfishStew,
- CornontheCob,
- BakedOnigiri,
- SweetPotato,
- Toast,
- JamRoll,
- ButterRoll,
- Pizza,
- SeafoodPizza,
- Doria,
- SeafoodDoria,
- Gratin,
- SeafoodGratin,
- YamoftheAges,
- Cookie,
- ChocoCookie,
- Cake,
- ChocolateCake,
- Cheesecake,
- ApplePie,
- PineappleJuice,
- TomatoJuice,
- GrapeJuice,
- OrangeJuice,
- AppleJuice,
- StrawberryMilk,
- FruitJuice,
- FruitSmoothie,
- VegetableJuice,
- VeggieSmoothie,
- MixedJuice,
- MixedSmoothie,
- Ketchup,
- Butter,
- GoldJuice,
- PreludetoLove,
- HotJuice,
- SteamedBread,
- CheeseBread,
- MeatDumpling,
- ChineseManju,
- CurryManju,
- SteamedGyoza,
- PoundCake,
- ChocolateSponge,
- Flan,
- PumpkinFlan,
- Dumplings,
- Salad,
- Sandwich,
- FruitSandwich,
- PickledTurnip,
- Pickles,
- BambooRice,
- RaisinBread,
- IceCream,
- RelaxTeaLeaves,
- Onigiri,
- Bread,
- SalmonOnigiri,
- PickleMix,
- TurnipHeaven,
- Rice,
- Chocolate,
- Wine,
- ElliLeaves,
- Milk_S,
- Milk_M,
- Milk_L,
- Egg_S,
- Egg_M,
- Egg_L,
- Mayonnaise,
- Cheese,
- Yogurt,
- Honey,
- Flour,
- Oil,
- CurryPowder,
- RiceFlour,
- MedicineBread,
- MedicineBreadPlus,
- CookingBread,
- CookingBreadPlus,
- WeaponBread,
- WeaponBreadPlus,
- AccessoryBread,
- AccessoryBreadPlus,
- FarmingBread,
- FarmingBreadPlus,
- Broadsword,
- SteelSword,
- WindSword,
- AquaSword,
- Defender,
- AerialBlade,
- BurningSword,
- Sakura,
- LuckBlade,
- PlatinumSword,
- Raventine,
- Icifier,
- SoulEater,
- SmashBlade,
- DragonSlayer,
- Sunspot,
- StarSaber,
- GaiaSword,
- Grantale,
- ChaosBlade,
- RuneBlade,
- SteelSwordPlus,
- PlatinumSwordPlus,
- Cutlass,
- BackScratcher,
- Durendal,
- Gladius,
- GorgeousSword,
- Spoon,
- RuneLegend,
- Snakesword,
- Veggieblade,
- Invisiblade,
- PlantSword,
- Claymore,
- Zweihaender,
- FlameSaber,
- CycloneBlade,
- DancingDicer,
- GreatSword,
- HeavenAsunder,
- GrandSmasher,
- BlueEyedBlade,
- PoisonBlade,
- SteelSlicer,
- Flamberge,
- ShineBlade,
- EarthShade,
- BioSmasher,
- Punisher,
- SeaCutter,
- Volcanon,
- SnowCrown,
- MoonShadow,
- ForceElement,
- ZweihaenderPlus,
- FlambergePlus,
- Katzbalger,
- BigKnife,
- Katana,
- Balmung,
- Psycho,
- Dekash,
- Braveheart,
- Belzebuth,
- Daicone,
- Caliburn,
- Orochi,
- Spear,
- Lance,
- NeedleSpear,
- Halberd,
- WaterSpear,
- BloodLance,
- WoodStaff,
- PoisonSpear,
- Corsesca,
- SilentGrave,
- FlareLance,
- HeavyLance,
- Iceberg,
- Metus,
- MonkStaff,
- Overbreak,
- Brionac,
- FeatherLance,
- Belvarose,
- Bjor,
- Gungnir,
- LancePlus,
- CorsescaPlus,
- Trident,
- Pitchfork,
- DragonsFang,
- GaeBolg,
- MagicalLance,
- SafetyLance,
- Legion,
- PoisonQueen,
- PineClub,
- Fivestaff,
- BattleHammer,
- WarHammer,
- GreatHammer,
- Schnabel,
- GigantHammer,
- Mjolnir,
- SpikedHammer,
- FlameHammer,
- IceHammer,
- SkyHammer,
- GravitonHammer,
- BoneHammer,
- CrystalHammer,
- WarHammerPlus,
- GigantHammerPlus,
- Hammer,
- ToyHammer,
- FatalCrush,
- StrongStone,
- Kongo,
- Bat,
- IronBat,
- SplashStar,
- BattleAxe,
- PoleAxe,
- Alldale,
- GreatAxe,
- DemonAxe,
- CrescentAxe,
- Executioner,
- HeatAxe,
- FrostAxe,
- Tomahawk,
- RockAxe,
- DoubleEdge,
- SaintAxe,
- PoleAxePlus,
- CrescentAxePlus,
- Axe,
- Lollipop,
- BattleScythe,
- BasiliskFang,
- DevilFinger,
- Rod,
- Staff,
- SilverStaff,
- FlareStaff,
- IceStaff,
- LightningWand,
- EarthStaff,
- WizardsStaff,
- MagesStaff,
- RuneStaff,
- MagesStaffPlus,
- MagicBroom,
- Basket,
- MagicShot,
- HellBranch,
- CrimsonStaff,
- BubbleStaff,
- GaiaRod,
- ShootingStarStaff,
- CycloneRod,
- StormWand,
- RubyRod,
- EmeraldRod,
- SapphireRod,
- AmethystRod,
- AquamarineRod,
- DiamondRod,
- FriendlyRod,
- LoveLoveRod,
- SorcerersWand,
- HellCurse,
- Algernon,
- GoldenTurnipStaff,
- SweetPotatoStaff,
- ElvishHarp,
- Syringe,
- ShortDagger,
- SteelEdge,
- WindEdge,
- FrostEdge,
- SteelKatana,
- SonicDagger,
- Salamander,
- TwinBlade,
- Rampage,
- PlatinumEdge,
- Efreet,
- DeepBlizzard,
- DarkInvitation,
- ForceDivide,
- DragoonClaw,
- HeartFire,
- DesertWind,
- BrokenWall,
- OrcusSword,
- ChaosEdge,
- RuneEdge,
- IronEdge,
- EmeraldEdge,
- ThiefKnife,
- DoubleScratch,
- PriestSaber,
- EarnestEdge,
- GorgeousLx,
- Acutorimass,
- TwinLeeks,
- TwinJustice,
- LeatherGloves,
- BrassKnuckles,
- Kote,
- BearClaws,
- FistsofFire,
- FistsofWater,
- FistsofWind,
- FistsoftheEarth,
- FistsofLight,
- FistsofDark,
- Gloves_A,
- CatPunch,
- DragonClaws,
- AnimalPuppets,
- IronleafFists,
- GolemPunch,
- HandofGod,
- Caestus,
- BazalKatar,
- Fenrir,
- CheapHoe,
- SturdyHoe,
- SeasonedHoe,
- ShinyHoe,
- BlessedHoe,
- CheapWaterpot,
- TinWaterpot,
- LionWaterpot,
- RainbowWaterpot,
- JoyWaterpot,
- CheapSickle,
- IronSickle,
- QualitySickle,
- SuperSickle,
- LegendarySickle,
- CheapHammer,
- IronHammer,
- SilverHammer,
- GoldenHammer,
- PlatinumHammer,
- CheapAxe,
- ChoppingAxe,
- LumberAxe,
- MountainAxe,
- MiracleAxe,
- CheapPole,
- BeginnersPole,
- SkilledPole,
- FamousPole,
- SacredPole,
- SmallShield,
- IronShield,
- RoundShield,
- PlatinumShield,
- HeavyShield,
- KnightShield,
- RuneShield,
- MagicShield,
- PrismShield,
- ElementShield,
- ChaosShield,
- TurtleShield,
- BoneShield,
- KiteShield,
- MagicalShield,
- MonkeyPlush,
- Umbrella,
- MagicPlantShield,
- AquamarineRing,
- AmethystRing,
- EmeraldRing,
- SapphireRing,
- DiamondRing,
- RubyRing,
- HappyRing,
- CursedRing,
- FireRing,
- WindRing,
- WaterRing,
- EarthRing,
- SilverRing,
- GoldRing,
- PlatinumRing,
- CriticalRing,
- SilentRing,
- ParalysisRing,
- PoisonRing,
- MagicRing,
- CheapBracelet,
- BronzeBracelet,
- SilverBracelet,
- GoldBracelet,
- PlatinumBracelet,
- AquamarineBrooch,
- AmethystBrooch,
- EmeraldBrooch,
- SapphireBrooch,
- DiamondBrooch,
- RubyBrooch,
- SilverPendant,
- HeartPendant,
- StarPendant,
- SunPendant,
- FieldPendant,
- DewPendant,
- EarthPendant,
- HolyAmulet,
- Charm,
- LeatherBelt,
- LuckyStrike,
- Talisman,
- ChampBelt,
- Gloves_B,
- WorkGloves,
- Badge,
- PowerGloves,
- MagicCharm,
- ShieldRing,
- Rosary,
- CourageBadge,
- HerosProof,
- ProofofWisdom,
- HandKnitScarf,
- FluffyScarf,
- ArtofAttack,
- ArtofDefense,
- ArtofMagic,
- Earrings,
- WitchEarrings,
- MagicEarrings,
- VentisCharmA,
- VentisCharmB,
- AnettesNecklace,
- ThrowingRing,
- StayUpRing,
- StrangePendant,
- DolphinBrooch,
- EngagementRing,
- SilverHairpin,
- GoldHairpin,
- FancyHat,
- Headband,
- FeatheredHat,
- BrandGlasses,
- Spectacles,
- IntelligentGlasses,
- StrawHat,
- FireproofHood,
- CuteKnitting,
- BlackRibbon,
- OrangeRibbon,
- RedRibbon,
- YellowRibbon,
- BlueRibbon,
- GreenRibbon,
- PurpleRibbon,
- IndigoRibbon,
- WhiteRibbon,
- TurnipHeadgear,
- PumpkinHeadgear,
- SpringHeaddress,
- SummerHeaddress,
- AutumnHeaddress,
- WinterHeaddress,
- LolitaHeaddress,
- Headdress,
- CatEars,
- Crown,
- FourSeasons,
- SilkHat,
- FeatherBoots,
- HeavyBoots,
- LeatherBoots,
- KnightBoots,
- SnowBoots,
- IceSkates,
- PiyoSandals,
- StepInBoots,
- GhostBoots,
- IronGeta,
- StriderBoots,
- SecretShoes,
- WetBoots,
- SneakingBoots,
- FastStepBoots,
- WaterShoes,
- RocketWing,
- SilverBoots,
- GoldBoots,
- BoneBoots,
- FairyBoots,
- FreeFarmingShoes,
- Shirt,
- Vest,
- WoolyShirt,
- MercenarysCloak,
- Mail,
- CottonCloth,
- ChainMail,
- ScaleVest,
- Protector,
- WindCloak,
- SparklingShirt,
- PlatinumMail,
- LamellarVest,
- ElvishCloak,
- PowerProtector,
- DragonCloak,
- RuneVest,
- RoyalGarter,
- FourDragonsVest,
- Brush,
- Clippers,
- MagnifyingGlass,
- TurnipSeeds,
- PotatoSeeds,
- CucumberSeeds,
- StrawberrySeeds,
- CabbageSeeds,
- MoondropSeeds,
- ToyherbSeeds,
- TomatoSeeds,
- CornSeeds,
- OnionSeeds,
- PumpkinSeeds,
- PineappleSeeds,
- PinkCatSeeds,
- EggplantSeeds,
- CarrotSeeds,
- YamSeeds,
- SpinachSeeds,
- GreenPepperSeeds,
- CharmBlueSeeds,
- FodderSeeds,
- CherryGrassSeeds,
- LampGrassSeeds,
- BlueCrystalSeeds,
- EmeryFlowerSeeds,
- IronleafSeeds,
- CloverSeeds,
- FireflowerSeeds,
- GreenCrystalSeeds,
- NoelGrassSeeds,
- AutumnGrassSeeds,
- PomPomGrassSeeds,
- RedCrystalSeeds,
- WhiteCrystalSeeds,
- PinkTurnipSeeds,
- RadishSeeds,
- LeekSeeds,
- BokChoySeeds,
- GoldCabbageSeeds,
- GoldPumpkinSeeds,
- GoldPotatoSeeds,
- GoldTurnipSeeds,
- GoldMelonSeeds,
- HotHotSeeds,
- AppleTreeSeeds,
- OrangeTreeSeed,
- GrapeTreeSeed,
- ShiningSeed,
- DungeonSeed,
- SwordSeed,
- ShieldSeed,
- WettablePowder,
- Greenifier,
- GreenifierPlus,
- FormulaA,
- FormulaB,
- FormulaC,
- NoRotAlpha,
- NoRotBeta,
- Giantizer,
- Minimizer,
- Fodder,
- Fur_S,
- Fur_M,
- Fur_L,
- Yarn,
- ScrapMetal,
- Iron,
- Bronze,
- Silver,
- Gold,
- Platinum,
- Orichalcum,
- Diamond,
- Ruby,
- Emerald,
- Sapphire,
- Amethyst,
- Aquamarine,
- CheapCloth,
- QualityCloth,
- SilkCloth,
- Arrowhead,
- WarriorsProof,
- Glue,
- OldBandage,
- Gunpowder,
- EarthCrystal,
- DevilHorn,
- DevilBlood,
- MagicPowder,
- MagicCrystal,
- ShoulderPiece,
- GiantsNail,
- GiantsGloves,
- HammerPiece,
- InsectCarapace,
- InsectJaw,
- SpidersThread,
- PrettyThread,
- PrettyCarapace,
- RigidHorn,
- ScorpionTail,
- ScorpionPincer,
- PantherClaw,
- DragonFang,
- WolfFang,
- QualityFur,
- BullsHorn,
- BirdsFeather,
- WindCrystal,
- Fur,
- Root,
- Spore,
- PoisonPowder,
- PlantStem,
- StrongVine,
- FishFossil,
- WaterCrystal,
- TurtleShell,
- FireCrystal,
- GhostHood,
- Skull,
- BrokenHilt,
- BrokenBox,
- FairyDust,
- SmallCrystal,
- WoolyFurball,
- LightCrystal,
- DarkCrystal,
- LoveCrystal,
- RaccoonLeaf,
- DragonBones,
- RedLionFur,
- BlueLionFur,
- BrokenIceWall,
- Ammonite,
- IcyNose,
- ChestHair,
- ChimeraTail,
- GrimoireScale,
- LegendaryScale,
- DragonFin,
- MovingBranch,
- ElectroCrystal,
- MelodyBottle,
- GolemTablet,
- EarthwyrmScale,
- FirewyrmScale,
- AmbrosiasThorns,
- LightningMane,
- CursedDoll,
- PuppetryStrings,
- LeftRockShard,
- RightRockShard,
- CrystalSkull,
- ThroneoftheEmpire,
- WindDragonTooth,
- RuneSphereShard,
- RafflesiaPetal,
- MTGUPlate,
- CheapPropeller,
- QualityPropeller,
- RustyScrew,
- ShinyScrew,
- PalmClaw,
- MalmClaw,
- BigCrystal,
- RuneCrystal,
- GreenCore,
- RedCore,
- YellowCore,
- BlueCore,
- WaterDragonAsh,
- FireDragonAsh,
- EarthDragonAsh,
- HolySpore,
- WhiteStone,
- InvisibleStone,
- ShadeStone,
- DoubleSteel,
- TenFoldSteel,
- RoundStone,
- GlittaAugite,
- LightOre,
- ScrapMetalPlus,
- Stick,
- QualityPuffyFur,
- YellowDown,
- PenguinDown,
- IvoryTusk,
- UnbrokenIvoryTusk,
- TinyGolemStone,
- ParalysisPoison,
- BlackBirdFeather,
- Vine,
- InsectHorn,
- MysteriousPowder,
- WetScale,
- Magic,
- GoldWolfFang,
- BlueGiantsGlove,
- ThickStick,
- MagicClaw,
- GlisteningBlade,
- FairyElixir,
- GreatHammerShard,
- GolemStone,
- BlackTortoiseShell,
- ThunderbirdFeather,
- BigGiantsNail,
- YellowFeather,
- QualityWornCloth,
- PiratesArmor,
- BladeShard,
- ProofofRank,
- TurnipsMiracle,
- DragonScale,
- GolemSpiritStone,
- AncientOrcCloth,
- QueensJaw,
- PoisonKing,
- DangerousScissors,
- ChimerasClaw,
- TabletofTruth,
- BigBirdsComb,
- BattleTurnip,
- BlackScale,
- BlueScale,
- GlitterScale,
- CrimsonScale,
- LoveScale,
- DragonicStone,
- MasuTrout,
- Squid,
- Taimen,
- Sardine,
- Char,
- Chub,
- GlitterSnapper,
- Skipjack,
- Turbot,
- Gibelio,
- Salmon,
- Mackerel,
- Needlefish,
- Pike,
- Sunsquid,
- Shrimp,
- Snapper,
- ThrobbySnapper,
- RainbowTrout,
- Flounder,
- Blowfish,
- Yellowtail,
- CrucianCarp,
- Tuna,
- Girella,
- FallFlounder,
- CherrySalmon,
- LampSquid,
- Lobster,
- PondSmelt,
- SandFlounder,
- Rockfish,
- Can,
- Boot,
- RareCan,
- Rock,
- Branch,
- Lumber,
- MaterialStone,
- Escape_S,
- Fireball_S,
- BigFire_S,
- Explosion_S,
- WaterLaser_S,
- ParallelLaser_S,
- DeltaLaser_S,
- ScrewRock_S,
- EarthSpike_S,
- AvengerRock_S,
- SonicWind_S,
- DoubleSonic_S,
- PenetrateSonic_S,
- LightBarrier_S,
- Shine_S,
- Prism_S,
- DarkBall_S,
- DarkSnake_S,
- Darkness_S,
- Cure_S,
- CureAll_S,
- MasterCure_S,
- Medipoison_S,
- Mediparalyze_S,
- Mediseal_S,
- GreetingSpell_S,
- PowerWave_S,
- DashSlash_S,
- RushAttack_S,
- RoundBreak_S,
- MindThrust_S,
- Gust_S,
- Storm_S,
- Blitz_S,
- TwinAttack_S,
- RailStrike_S,
- WindSlash_S,
- FlashStrike_S,
- NaiveBlade_S,
- SteelHeart_S,
- DeltaStrike_S,
- Hurricane_S,
- ReaperSlash_S,
- Millionstrike_S,
- AxelDisaster_S,
- StardustUpper_S,
- TornadoSwing_S,
- GrandImpact_S,
- GigaSwing_S,
- UpperCut_S,
- DoubleKick_S,
- StraightPunch_S,
- NekoDamashi_S,
- RushPunch_S,
- Cyclone_S,
- RapidMove_S,
- BonusConcerto_S,
- StrikingMarch_S,
- IronWaltz_S,
- Minerals,
- Liquids,
- ClawsandFangs,
- SticksandStems,
- ClothsandSkins,
- Furs,
- Strings,
- Shards,
- PowdersandSpores,
- Scales,
- ShellsandBones,
- Stones,
- Turnip_B,
- Crystals,
- Jewels,
- Feathers,
- Jam,
- Curry,
- Squid_B,
- BattleTurnip_B,
- GoldBattleTurnip,
- Bullet,
- GoldenBullet,
- CherryTurnip,
- DisgustingFood
- } ITEMID;
- typedef enum <short> {
- Escape,
- Fireball,
- BigFire,
- Explosion,
- WaterLaser,
- ParallelLaser,
- DeltaLaser,
- ScrewRock,
- EarthSpike,
- AvengerRock,
- SonicWind,
- DoubleSonic,
- PenetrateSonic,
- LightBarrier,
- Shine,
- Prism,
- DarkBall,
- DarkSnake,
- Darkness,
- Cure,
- CureAll,
- MasterCure,
- Medipoison,
- Mediparalyze,
- Mediseal,
- GreetingSpell,
- PowerWave,
- DashSlash,
- RushAttack,
- RoundBreak,
- MindThrust,
- Gust,
- Storm,
- Blitz,
- TwinAttack,
- RailStrike,
- WindSlash,
- FlashStrike,
- NaiveBlade,
- SteelHeart,
- DeltaStrike,
- Hurricane,
- ReaperSlash,
- Millionstrike,
- AxelDisaster,
- StardustUpper,
- TornadoSwing,
- GrandImpact,
- GigaSwing,
- UpperCut,
- DoubleKick,
- StraightPunch,
- NekoDamashi,
- RushPunch,
- Cyclone,
- RapidMove,
- BonusConcerto,
- StrikingMarch,
- IronWaltz
- } SPELLID;
- typedef enum <ubyte> {
- Nothing_C,
- Stone_C,
- Rock_C,
- Branch_C,
- TreeStump_C,
- BrokenStump_C,
- PoisonSwamp_C,
- EllieLeaves_C,
- MedicinalHerb_C,
- AntidotalHerb_C,
- BlackGrass_C,
- OrangeGrass_C,
- RedGrass_C,
- YellowGrass_C,
- BlueGrass_C,
- GreenGrass_C,
- PurpeGrass_C,
- IndigoGrass_C,
- WhiteGrass_C,
- Weed_C,
- WitheredGrass_C,
- BambooSprout_C,
- ClayStone_C,
- RuneFlower_C,
- RuneCrystal_C,
- AyngondaiaLawn_C,
- Mineral_Scrap_C,
- Mineral_Iron_C,
- MineralC_C,
- MineralD_C,
- MineralE_C,
- MineralF_C,
- MineralG_C,
- MineralH_C,
- MineralI_C,
- MineralJ_C,
- MineralK_C,
- MineralL_C,
- Strawberry_C,
- Cabbage_C,
- PinkTurnip_C,
- Onion_C,
- Toyherb_C,
- MoondropFlower_C,
- CherryGrass_C,
- LampGrass_C,
- EmeryFlower_C,
- BlueCrystal_C,
- GoldenCabbage_C,
- PinkMelon_C,
- Pumpkin_C,
- Cucumber_C,
- Corn_C,
- Tomato_C,
- Eggplant_C,
- Pineapple_C,
- PinkCat_C,
- Ironleaf_C,
- FourLeafClover_C,
- Fireflower_C,
- GreenCrystal_C,
- GoldenPumpkin_C,
- Yam_C,
- Potato_C,
- Carrot_C,
- GreenPepper_C,
- Spinach_C,
- CharmBlue_C,
- AutumnGrass_C,
- PomPomGrass_C,
- RedCrystal_C,
- GoldenPotato_C,
- Turnip_C,
- Radish_C,
- Leek_C,
- BokChoy_C,
- NoelGrass_C,
- WhiteCrystal_C,
- GoldenTurnip_C,
- HotHotFruit_C,
- Fodder_C,
- AppleTree_C,
- OrangeTree_C,
- GrapeTree_C,
- TwinkleTree_C,
- DungeonFlower_C,
- SwordFlower_C,
- ShieldFlower_C,
- TilledEarth_C,
- SultanStrawberry_C,
- KingCabbage_C,
- PinkTurnipB_C,
- UltraOnion_C,
- UltraToyherb_C,
- GreatMoondropFlower_C,
- KingCherryGrass_C,
- KaiserLampGrass_C,
- GreatEmeryFlower_C,
- BigBlueCrystal_C,
- KingGoldCabbage_C,
- ConquerorMelon_C,
- DoomPumpkin_C,
- KaiserCucumber_C,
- GigantCorn_C,
- TitanTomato_C,
- EmperorEggplant_C,
- KingPineapple_C,
- KingPinkCat_C,
- UltraIronleaf_C,
- GiantFourLeafClover_C,
- BigFireflower_C,
- BigGreenCrystal_C,
- GoldenDoomPumpkin_C,
- LordlyYam_C,
- PrincelyPotato_C,
- RoyalCarrot_C,
- GreenPepperRex_C,
- SovereignSpinach_C,
- GreatCharmBlue_C,
- GreatAutumnGrass_C,
- KingPomPomGrass_C,
- BigRedCrystal_C,
- GoldenPrincelyPotato_C,
- TyrantTurnip_C,
- NobleRadish_C,
- LegendaryLeek_C,
- BossBokChoy_C,
- LargeNoelGrass_C,
- BigWhiteCrystal_C,
- GoldenTyrantTurnip_C,
- GiantHotHotFruit_C,
- FodderB_C,
- LargeAppleTree_C,
- LargeOrangeTree_C,
- LargeGrapeTree_C,
- LargeTwinkleTree_C,
- DungeonFlowerB_C,
- SwordFlowerB_C,
- ShieldFlowerB_C,
- } CROPID;
- typedef enum <ushort> {
- None_000,
- Table_292 = 292,
- Table_293,
- Table_294,
- Chair_295,
- Chair_296,
- PommePommeToy_297,
- WoolyToy_298,
- ChipsqueekToy_299,
- DuckToy_300,
- WolfToy_301,
- RuneSaur_302,
- SpringPottedPlant_303,
- SummerPottedPlant_304,
- AutumnPottedPlant_305,
- WinterPottedPlant_306,
- Cactus_307,
- CuteStatue_308,
- ColumnStatue_309,
- Snowman_310,
- RainbowArt_311,
- Barrel_312,
- Brazier_313,
- LargeAnchor_314,
- FoldingScreen_315,
- RollingBall_316,
- RollingBall_317,
- RollingBall_318,
- RollingBall_319,
- BouncingBall_320,
- BouncingBall_321,
- BouncingBall_322,
- BouncingBall_323,
- VentisCharm_324,
- WeaponBox_325,
- Dummy_326,
- Bed_327,
- DoubleBed_328,
- Bird_329,
- Bird_330,
- Bird_331,
- Bird_332,
- Sign_333,
- Sign_334,
- Bookshelf_335,
- Butterfly_336,
- Butterfly_337,
- Butterfly_338,
- Butterfly_339,
- Calendar_340,
- Closet_341,
- FertilizerBin_342,
- CookingTable_343,
- Knife_344,
- FryingPan_345,
- Pot_346,
- Oven_347,
- Steamer_348,
- Mixer_349,
- ChemistrySet_350,
- Forge_351,
- CraftingTable_352,
- Statue_353,
- Statue_354,
- Statue_355,
- Statue_356,
- Statue_357,
- Statue_358,
- Statue_359,
- Statue_360,
- Diary_361,
- Dice_362,
- Sign_363,
- Sign_364,
- FarmToolBox_365,
- Fridge_366,
- Fridge_367,
- Device_368,
- WingFin_369,
- SmallFodderBin_370,
- BitingGrass_371,
- LumberStoneBox_372,
- MusicPlayer_373,
- OrderBoard_374,
- BigFodderBin_375,
- Mailbox_376,
- Fence_377,
- Fence_378,
- SavePoint_379,
- ShopBox_380,
- Storage_381,
- ShippingBox_382,
- Telecommunicator_383,
- Can_384,
- Can_385,
- Warp_386,
- Well_387,
- FurnitureStore_388,
- FashionStore_389,
- FishMarket_390,
- MagicStore_391,
- JewelryStore_392,
- AbilityStore_393
- } OBJID;
- //-----------------------------------
- // Define aux structures
- typedef struct {
- } UNKNWN;
- // Mini-scruct for bitflag arrays
- typedef struct ( int idx ) {
- local int idx = idx;
- ubyte flag : 1;
- } BFLAG <read=ReadBitflag, write=WriteBitflag>;
- // Flags on whether an area was discovered (visible on map)
- typedef struct {
- struct {
- ubyte __000 : 1;
- ubyte __001 : 1;
- ubyte __002 : 1;
- ubyte __003 : 1;
- } blank;
- struct {
- ubyte Farm_004 : 1;
- ubyte Farm_005 : 1;
- ubyte Farm_006 : 1;
- ubyte Farm_007 : 1;
- ubyte Field_008 : 1;
- ubyte Field_009 : 1;
- ubyte Field_010 : 1;
- ubyte Field_011 : 1;
- ubyte Field_012 : 1;
- ubyte Field_013 : 1;
- ubyte Field_014 : 1;
- ubyte Field_015 : 1;
- ubyte Field_016 : 1;
- ubyte Field_017 : 1;
- ubyte Field_018 : 1;
- ubyte Field_019 : 1;
- ubyte Field_020 : 1;
- ubyte Field_021 : 1;
- ubyte Field_022 : 1;
- ubyte Field_023 : 1;
- } farmAndFields;
- struct {
- ubyte Selphia_AirshipWay_024 : 1;
- ubyte Selphia_AirshipWay_025 : 1;
- ubyte Selphia_AirshipWay_026 : 1;
- ubyte Selphia_AirshipWay_027 : 1;
- ubyte Selphia_HousingArea_028 : 1;
- ubyte Selphia_HousingArea_029 : 1;
- ubyte Selphia_HousingArea_030 : 1;
- ubyte Selphia_HousingArea_031 : 1;
- ubyte Selphia_MelodyStreet_032 : 1;
- ubyte Selphia_MelodyStreet_033 : 1;
- ubyte Selphia_MelodyStreet_034 : 1;
- ubyte Selphia_MelodyStreet_035 : 1;
- ubyte Selphia_Observatory_036 : 1;
- ubyte Selphia_Observatory_037 : 1;
- ubyte Selphia_Observatory_038 : 1;
- ubyte Selphia_Observatory_039 : 1;
- ubyte Selphia_DragonLake_040 : 1;
- ubyte Selphia_DragonLake_041 : 1;
- ubyte Selphia_DragonLake_042 : 1;
- ubyte Selphia_DragonLake_043 : 1;
- ubyte SelphiaCastleGate_044 : 1;
- ubyte SelphiaCastleGate_045 : 1;
- ubyte SelphiaCastleGate_046 : 1;
- ubyte SelphiaCastleGate_047 : 1;
- ubyte Selphia_TownSquare_048 : 1;
- ubyte Selphia_TownSquare_049 : 1;
- ubyte Selphia_TownSquare_050 : 1;
- ubyte Selphia_TownSquare_051 : 1;
- ubyte Selphia_052 : 1;
- ubyte Selphia_053 : 1;
- ubyte Selphia_054 : 1;
- ubyte Selphia_055 : 1;
- ubyte Selphia_056 : 1;
- ubyte Selphia_057 : 1;
- ubyte Selphia_058 : 1;
- ubyte Selphia_059 : 1;
- ubyte Castle_DragonRoom_060 : 1;
- ubyte Castle_DragonRoom_061 : 1;
- ubyte Castle_DragonRoom_062 : 1;
- ubyte Castle_DragonRoom_063 : 1;
- ubyte YourRoom_064 : 1;
- ubyte ButlersRoom_065 : 1;
- ubyte YourRoom_066 : 1;
- ubyte YourRoom_067 : 1;
- ubyte YourRoom_068 : 1;
- ubyte YourRoom_069 : 1;
- ubyte TrophyRoom_070 : 1;
- ubyte TrophyRoomB2_071 : 1;
- ubyte YourRoom_072 : 1;
- ubyte TrophyRoomB3_073 : 1;
- ubyte Room_Dummy_074 : 1;
- ubyte Room_Dummy_075 : 1;
- ubyte Room_Dummy_076 : 1;
- } selphia;
- struct {
- ubyte MonsterBarn_077 : 1;
- ubyte MonsterBarn_078 : 1;
- ubyte MonsterBarn_079 : 1;
- ubyte MonsterBarn_080 : 1;
- ubyte MonsterBarn_081 : 1;
- ubyte MonsterBarn_082 : 1;
- ubyte MonsterBarn_083 : 1;
- ubyte MonsterBarn_084 : 1;
- ubyte MonsterBarn_085 : 1;
- ubyte MonsterBarn_086 : 1;
- ubyte MonsterBarn_087 : 1;
- ubyte MonsterBarn_088 : 1;
- ubyte MonsterBarn_089 : 1;
- ubyte MonsterBarn_090 : 1;
- ubyte MonsterBarn_091 : 1;
- ubyte MonsterBarn_092 : 1;
- ubyte MonsterBarn_093 : 1;
- ubyte MonsterBarn_094 : 1;
- ubyte MonsterBarn_095 : 1;
- ubyte MonsterBarn_096 : 1;
- ubyte MonsterBarn_097 : 1;
- ubyte MonsterBarn_098 : 1;
- ubyte MonsterBarn_099 : 1;
- ubyte MonsterBarn_100 : 1;
- ubyte MonsterBarn_101 : 1;
- ubyte MonsterBarn_102 : 1;
- ubyte MonsterBarn_103 : 1;
- ubyte MonsterBarn_104 : 1;
- ubyte MonsterBarn_105 : 1;
- ubyte MonsterBarn_106 : 1;
- ubyte MonsterBarn_107 : 1;
- ubyte MonsterBarn_108 : 1;
- ubyte MonsterBarn_109 : 1;
- ubyte MonsterBarn_110 : 1;
- ubyte MonsterBarn_111 : 1;
- ubyte MonsterBarn_112 : 1;
- ubyte MonsterBarn_113 : 1;
- ubyte MonsterBarn_114 : 1;
- ubyte MonsterBarn_115 : 1;
- ubyte MonsterBarn_116 : 1;
- ubyte MonsterBarn_117 : 1;
- ubyte MonsterBarn_118 : 1;
- ubyte MonsterBarn_119 : 1;
- ubyte MonsterBarn_120 : 1;
- ubyte MonsterBarn_121 : 1;
- ubyte MonsterBarn_122 : 1;
- ubyte MonsterBarn_123 : 1;
- ubyte MonsterBarn_124 : 1;
- ubyte MonsterBarn_125 : 1;
- ubyte MonsterBarn_126 : 1;
- } monsterBarns;
- struct {
- ubyte SincerityGeneralStore_127 : 1;
- ubyte SincerityGeneral2F_128 : 1;
- ubyte Blacksmith_129 : 1;
- ubyte PorcolinesKitchen_130 : 1;
- ubyte PorcolinesKitchen2F_131 : 1;
- ubyte TinyBandageClinic_132 : 1;
- ubyte TinyBandageClinic2F_133 : 1;
- ubyte Carnations_134 : 1;
- ubyte Carnations2F_135 : 1;
- ubyte BellHotelLobby_136 : 1;
- ubyte BellHotelResidence_137 : 1;
- ubyte BellHotelGuestRoom_138 : 1;
- ubyte BellBath_139 : 1;
- ubyte MargaretsHouse_140 : 1;
- ubyte SainteCoquilleManor_141 : 1;
- ubyte SteCoquilleManor2F_142 : 1;
- ubyte FortesHouse_143 : 1;
- ubyte House_144 : 1;
- ubyte House_145 : 1;
- ubyte House_146 : 1;
- ubyte House_147 : 1;
- ubyte __148 : 1;
- ubyte House_149 : 1;
- ubyte House_150 : 1;
- ubyte House_151 : 1;
- ubyte House_152 : 1;
- ubyte House_153 : 1;
- ubyte House_154 : 1;
- ubyte House_155 : 1;
- ubyte House_156 : 1;
- ubyte House_157 : 1;
- ubyte House_158 : 1;
- ubyte Airship_159 : 1;
- ubyte Airship_160 : 1;
- } selphiaHouses;
- struct {
- ubyte SelphiaPlain_161 : 1;
- ubyte SelphiaPlain_162 : 1;
- ubyte SelphiaPlain_163 : 1;
- ubyte SelphiaPlain_164 : 1;
- ubyte SelphiaPlain_165 : 1;
- ubyte SelphiaPlain_166 : 1;
- ubyte SelphiaPlain_167 : 1;
- ubyte SelphiaPlainMushRoad_168 : 1;
- ubyte SelphiaPlainMushSpan_169 : 1;
- ubyte SelphiaPlainEast_170 : 1;
- ubyte SelphiaPlainEast_171 : 1;
- ubyte WaterRuins_172 : 1;
- ubyte SelphiaPlain_173 : 1;
- ubyte SelphiaPlainMushRoad_174 : 1;
- ubyte SelphiaPlainMushRoad_175 : 1;
- ubyte SelphiaPlainMushRoad_176 : 1;
- ubyte SelphiaPlainMushRoad_177 : 1;
- ubyte SelphiaPlain_178 : 1;
- ubyte Cliff_179 : 1;
- ubyte SelphiaPlainWest_180 : 1;
- ubyte SelphiaPlainWest_181 : 1;
- ubyte SelphiaPlainWest_182 : 1;
- ubyte SelphiaPlainMushRoad_183 : 1;
- ubyte SelphiaPlainMushRoad_184 : 1;
- ubyte SelphiaPlainWest_185 : 1;
- ubyte SelphiaPlainWest_186 : 1;
- ubyte TwinRocks_187 : 1;
- ubyte SelphiaPlainWest_188 : 1;
- ubyte LeonKarnak_189 : 1;
- ubyte SelphiaPlainWest_190 : 1;
- ubyte CedarTree_191 : 1;
- ubyte SelphiaPlainEast_192 : 1;
- ubyte SelphiaPlainEast_193 : 1;
- ubyte SelphiaPlainEast_194 : 1;
- ubyte SercerezoHill_195 : 1;
- ubyte DailyRoad_196 : 1;
- ubyte SelphiaPlainEast_197 : 1;
- ubyte IdraCave_198 : 1;
- ubyte SercerezoHill_199 : 1;
- ubyte SercerezoHill_200 : 1;
- ubyte SercerezoHill_201 : 1;
- ubyte SercerezoHill_202 : 1;
- ubyte SelphiaPlain_203 : 1;
- ubyte SelphiaPlain_204 : 1;
- ubyte AutumnBridge_205 : 1;
- ubyte AutumnBridge_206 : 1;
- ubyte AutumnRoad_207 : 1;
- ubyte AutumnRoad_208 : 1;
- ubyte AutumnRoad_209 : 1;
- ubyte DeliriumLavaRuins_210 : 1;
- ubyte AutumnRoad_211 : 1;
- ubyte AutumnRoad_212 : 1;
- ubyte AutumnRoad_213 : 1;
- ubyte AutumnRoad_214 : 1;
- ubyte AutumnRoad_215 : 1;
- ubyte AutumnRoad_216 : 1;
- ubyte AutumnRoad_217 : 1;
- ubyte AutumnRiver_218 : 1;
- ubyte AutumnRoad_219 : 1;
- ubyte AutumnRoad_220 : 1;
- ubyte AutumnRoad_221 : 1;
- ubyte AutumnRoad_222 : 1;
- ubyte AutumnRoad_223 : 1;
- ubyte AutumnRoad_224 : 1;
- ubyte AutumnRoad_225 : 1;
- ubyte MayaRoadEntrance_226 : 1;
- ubyte SelphiaPlainEast_227 : 1;
- ubyte CerezoBridge_228 : 1;
- ubyte CerezoBridge_229 : 1;
- ubyte SercerezoHill_230 : 1;
- ubyte CluckCluckNest_231 : 1;
- ubyte SilverArch_232 : 1;
- ubyte SilverArch_233 : 1;
- ubyte SilverLake_234 : 1;
- ubyte WinterSpring_235 : 1;
- ubyte AutumnSpring_236 : 1;
- ubyte SelphiaPlainEast_237 : 1;
- ubyte SummerSpring_238 : 1;
- ubyte SpringSpring_239 : 1;
- ubyte BuriedCave_240 : 1;
- ubyte KeenoLake_241 : 1;
- ubyte SelphiaPlain_242 : 1;
- ubyte SelphiaPlain_243 : 1;
- ubyte SilverLake_244 : 1;
- ubyte SilverLake_245 : 1;
- ubyte SilverLake_246 : 1;
- ubyte SercerezoHill_247 : 1;
- ubyte SercerezoHill_248 : 1;
- ubyte SercerezoLake_249 : 1;
- ubyte SercerezoHill_250 : 1;
- ubyte DemonsDen_251 : 1;
- ubyte SercerezoHill_252 : 1;
- ubyte SercerezoHillBridge_253 : 1;
- ubyte SercerezoHill_254 : 1;
- ubyte SercerezoHill_255 : 1;
- ubyte AutumnBridge_256 : 1;
- ubyte RevivalCave_257 : 1;
- ubyte MayaBridge_258 : 1;
- ubyte SercerezoHill_259 : 1;
- ubyte Cave_260 : 1;
- ubyte SpringField_261 : 1;
- ubyte SummerField_262 : 1;
- ubyte AutumnField_263 : 1;
- ubyte WinterField_264 : 1;
- ubyte SelphiaPlain_265 : 1;
- ubyte SelphiaPlain_266 : 1;
- ubyte SelphiaPlain_267 : 1;
- ubyte SelphiaPlain_268 : 1;
- ubyte SelphiaPlain_269 : 1;
- ubyte SelphiaPlain_270 : 1;
- ubyte YokmirForest_271 : 1;
- ubyte YokmirForestDepths_272 : 1;
- ubyte YokmirForest_273 : 1;
- ubyte YokmirForest_274 : 1;
- ubyte YokmirForest_275 : 1;
- ubyte YokmirForest_276 : 1;
- ubyte YokmirForest_277 : 1;
- ubyte YokmirForest_278 : 1;
- ubyte Forest_Dummy_279 : 1;
- ubyte Forest_Dummy_280 : 1;
- ubyte Forest_Dummy_281 : 1;
- ubyte Forest_Dummy_282 : 1;
- ubyte Forest_Dummy_283 : 1;
- } overworld;
- struct {
- ubyte WaterRuins_284 : 1;
- ubyte WaterRuinsDepths_285 : 1;
- ubyte WaterRuins_286 : 1;
- ubyte WaterRuins_287 : 1;
- ubyte WaterRuins_288 : 1;
- ubyte WaterRuins_289 : 1;
- ubyte WaterRuins_290 : 1;
- ubyte WaterRuins_291 : 1;
- ubyte WaterRuins_292 : 1;
- ubyte WaterRuins_293 : 1;
- ubyte WaterRuins_294 : 1;
- ubyte WaterRuins_295 : 1;
- ubyte WaterRuins_296 : 1;
- ubyte WaterRuins_297 : 1;
- ubyte WaterRuins_298 : 1;
- ubyte WaterRuins_299 : 1;
- ubyte WaterRuins_300 : 1;
- } waterRuins;
- ubyte Temple_Dummy_301 : 1;
- ubyte Temple_Dummy_302 : 1;
- struct {
- ubyte ObsidianMansion_303 : 1;
- ubyte ObsidianMnsnTheatre_304 : 1;
- ubyte ObsidianMnsnEntrance_305 : 1;
- ubyte ObsidianMansion_306 : 1;
- ubyte ObsidianMansion_307 : 1;
- ubyte ObsidianMansion_308 : 1;
- ubyte ObsidianMansion_309 : 1;
- ubyte ObsidianMansion_310 : 1;
- ubyte ObsidianMansion_311 : 1;
- ubyte ObsidianMansion_312 : 1;
- ubyte ObsidianMansion_313 : 1;
- ubyte ObsidianMansion_314 : 1;
- ubyte ObsidianMansion_315 : 1;
- ubyte ObsidianMansion_316 : 1;
- ubyte ObsidianMansion_317 : 1;
- ubyte ObsidianMansion_318 : 1;
- ubyte ObsidianMansion_319 : 1;
- ubyte ObsidianMansion_320 : 1;
- ubyte ObsidianMansion_321 : 1;
- } obsidianMansion;
- ubyte Ruin_Dummy_322 : 1;
- ubyte Ruin_Dummy_323 : 1;
- struct {
- ubyte LeonKarnak_324 : 1;
- ubyte LeonKarnakDepths_325 : 1;
- ubyte LeonKarnak_326 : 1;
- ubyte LeonKarnak_327 : 1;
- ubyte LeonKarnak_328 : 1;
- ubyte LeonKarnak_329 : 1;
- ubyte LeonKarnak_330 : 1;
- ubyte LeonKarnak_331 : 1;
- ubyte LeonKarnak_332 : 1;
- ubyte LeonKarnak_333 : 1;
- ubyte LeonKarnak_334 : 1;
- ubyte LeonKarnak_335 : 1;
- ubyte LeonKarnak_336 : 1;
- ubyte LeonKarnak_337 : 1;
- ubyte LeonKarnak_338 : 1;
- ubyte LeonKarnak_339 : 1;
- ubyte LeonKarnak_340 : 1;
- ubyte LeonKarnak_341 : 1;
- ubyte LeonKarnak_342 : 1;
- ubyte LeonKarnak_343 : 1;
- ubyte LeonKarnak_344 : 1;
- ubyte LeonKarnak_345 : 1;
- ubyte LeonKarnak_346 : 1;
- } leonKarnak;
- struct {
- ubyte FloatingEmpire_347 : 1;
- ubyte FloatingEmpire_348 : 1;
- ubyte FloatingEmpireFront_349 : 1;
- ubyte FloatingEmpire_350 : 1;
- ubyte FloatingEmpire_351 : 1;
- ubyte FloatingEmpireSouth_352 : 1;
- ubyte FloatingEmpireSouth_353 : 1;
- ubyte FloatingEmpireSouth_354 : 1;
- ubyte FloatingEmpireSouth_355 : 1;
- ubyte FloatingEmpireSouth_356 : 1;
- ubyte FloatingEmpireSouth_357 : 1;
- ubyte FloatingEmpireSouth_358 : 1;
- ubyte FloatingEmpireSouth_359 : 1;
- ubyte FloatingEmpireSouth_360 : 1;
- ubyte FloatingEmpireSouth_361 : 1;
- ubyte FloatingEmpireSouth_362 : 1;
- ubyte FloatingEmpireSouth_363 : 1;
- ubyte FloatingEmpireSouth_364 : 1;
- ubyte FloatingEmpireSouth_365 : 1;
- ubyte FloatingEmpireSouth_366 : 1;
- ubyte FloatingEmpireSouth_367 : 1;
- ubyte FloatingEmpireSouth_368 : 1;
- ubyte FloatingEmpireSouth_369 : 1;
- ubyte FloatingEmpireSouth_370 : 1;
- ubyte FloatingEmpireSouth_371 : 1;
- ubyte FloatingEmpireSouth_372 : 1;
- ubyte FloatingEmpireSouth_373 : 1;
- ubyte FloatingEmpireSouth_374 : 1;
- ubyte FloatingEmpireSouth_375 : 1;
- ubyte FloatingEmpireSouth_376 : 1;
- ubyte FloatingEmpireWest_377 : 1;
- ubyte FloatingEmpireWest_378 : 1;
- ubyte FloatingEmpireWest_379 : 1;
- ubyte FloatingEmpireWest_380 : 1;
- ubyte FloatingEmpireWest_381 : 1;
- ubyte FloatingEmpireWest_382 : 1;
- ubyte FloatingEmpireWest_383 : 1;
- ubyte FloatingEmpireWest_384 : 1;
- ubyte FloatingEmpireWest_385 : 1;
- ubyte FloatingEmpireWest_386 : 1;
- ubyte FloatingEmpireWest_387 : 1;
- ubyte FloatingEmpireWest_388 : 1;
- ubyte FloatingEmpireWest_389 : 1;
- ubyte FloatingEmpireWest_390 : 1;
- ubyte FloatingEmpireWest_391 : 1;
- ubyte FloatingEmpireWest_392 : 1;
- ubyte FloatingEmpireWest_393 : 1;
- ubyte FloatingEmpireWest_394 : 1;
- ubyte FloatingEmpireWest_395 : 1;
- ubyte FloatingEmpireWest_396 : 1;
- ubyte FloatingEmpireWest_397 : 1;
- ubyte FloatingEmpireWest_398 : 1;
- ubyte FloatingEmpireWest_399 : 1;
- ubyte FloatingEmpireWest_400 : 1;
- ubyte FloatingEmpireWest_401 : 1;
- ubyte FloatingEmpireWest_402 : 1;
- ubyte FloatingEmpireWest_403 : 1;
- ubyte FloatingEmpireWest_404 : 1;
- ubyte FloatingEmpireWest_405 : 1;
- ubyte FloatingEmpireWest_406 : 1;
- ubyte FloatingEmpireWest_407 : 1;
- ubyte FloatingEmpireWest_408 : 1;
- ubyte FloatingEmpireEast_409 : 1;
- ubyte FloatingEmpireEast_410 : 1;
- ubyte FloatingEmpireEast_411 : 1;
- ubyte FloatingEmpireEast_412 : 1;
- ubyte FloatingEmpireEast_413 : 1;
- ubyte FloatingEmpireEast_414 : 1;
- ubyte FloatingEmpireEast_415 : 1;
- ubyte FloatingEmpireEast_416 : 1;
- ubyte FloatingEmpireEast_417 : 1;
- ubyte FloatingEmpireEast_418 : 1;
- ubyte FloatingEmpireEast_419 : 1;
- ubyte FloatingEmpireEast_420 : 1;
- ubyte FloatingEmpireEast_421 : 1;
- ubyte FloatingEmpireEast_422 : 1;
- ubyte FloatingEmpireEast_423 : 1;
- ubyte FloatingEmpireEast_424 : 1;
- ubyte FloatingEmpireEast_425 : 1;
- ubyte FloatingEmpireEast_426 : 1;
- ubyte FloatingEmpireEast_427 : 1;
- ubyte FloatingEmpireEast_428 : 1;
- ubyte FloatingEmpireEast_429 : 1;
- ubyte FloatingEmpireEast_430 : 1;
- ubyte FloatingEmpireEast_431 : 1;
- ubyte FloatingEmpireEast_432 : 1;
- ubyte FloatingEmpireEast_433 : 1;
- ubyte FloatingEmpireEast_434 : 1;
- ubyte FloatingEmpireEast_435 : 1;
- ubyte FloatingEmpireEast_436 : 1;
- ubyte FloatingEmpireEast_437 : 1;
- ubyte FloatingEmpireEast_438 : 1;
- ubyte FloatingEmpireSouth_439 : 1;
- ubyte FloatingEmpire_440 : 1;
- ubyte FloatingEmpire_441 : 1;
- } floatingEmpire;
- ubyte WorldofFields_442 : 1;
- struct {
- ubyte SharanceMaze_443 : 1;
- ubyte SharanceMaze_444 : 1;
- ubyte SharanceMaze_445 : 1;
- ubyte SharanceMaze_446 : 1;
- ubyte SharanceMaze_447 : 1;
- ubyte SharanceMaze_448 : 1;
- ubyte SharanceMaze_449 : 1;
- ubyte SharanceMaze_450 : 1;
- ubyte SharanceMaze_451 : 1;
- ubyte SharanceMaze_452 : 1;
- ubyte SharanceMaze_453 : 1;
- } sharance;
- struct {
- ubyte YokmirCave_454 : 1;
- ubyte YokmirCave_455 : 1;
- ubyte YokmirCave_456 : 1;
- ubyte YokmirCave_457 : 1;
- ubyte YokmirCave_458 : 1;
- ubyte YokmirCave_459 : 1;
- ubyte YokmirCave_460 : 1;
- ubyte YokmirCave_461 : 1;
- ubyte YokmirCave_462 : 1;
- ubyte YokmirCave_463 : 1;
- ubyte YokmirCave_464 : 1;
- ubyte YokmirCave_465 : 1;
- ubyte YokmirCave_466 : 1;
- ubyte YokmirCave_467 : 1;
- ubyte YokmirCave_468 : 1;
- ubyte YokmirCave_469 : 1;
- ubyte YokmirCave_470 : 1;
- ubyte YokmirCave_471 : 1;
- ubyte YokmirCave_472 : 1;
- ubyte YokmirCave_473 : 1;
- ubyte YokmirCave_474 : 1;
- ubyte YokmirCave_475 : 1;
- ubyte YokmirCave_476 : 1;
- ubyte YokmirCave_477 : 1;
- ubyte YokmirCave_478 : 1;
- ubyte YokmirCave_479 : 1;
- ubyte YokmirCave_480 : 1;
- ubyte YokmirCave_481 : 1;
- ubyte YokmirCave_482 : 1;
- ubyte YokmirCave_483 : 1;
- ubyte YokmirCave_484 : 1;
- ubyte YokmirCave_485 : 1;
- } yokmir;
- struct {
- ubyte DeliriumLavaRuins_486 : 1;
- ubyte DeliriumLavaRuins_487 : 1;
- ubyte DeliriumLavaRuins_488 : 1;
- ubyte DeliriumLavaRuins_489 : 1;
- ubyte DeliriumLavaRuins_490 : 1;
- ubyte DeliriumLavaRuins_491 : 1;
- ubyte DeliriumLavaRuins_492 : 1;
- ubyte DeliriumLavaRuins_493 : 1;
- ubyte DeliriumLavaRuins_494 : 1;
- ubyte DeliriumLavaRuins_495 : 1;
- ubyte DeliriumLavaRuins_496 : 1;
- ubyte DeliriumLavaRuins_497 : 1;
- ubyte DeliriumLavaRuins_498 : 1;
- ubyte DeliriumLavaRuins_499 : 1;
- ubyte DeliriumLavaRuins_500 : 1;
- ubyte DeliriumLavaRuins_501 : 1;
- ubyte DeliriumLavaRuins_502 : 1;
- ubyte DeliriumLavaRuins_503 : 1;
- ubyte DeliriumLavaRuins_504 : 1;
- ubyte DeliriumLavaRuins_505 : 1;
- ubyte DeliriumLavaRuins_506 : 1;
- ubyte DeliriumLavaRuins_507 : 1;
- ubyte DeliriumLavaRuins_508 : 1;
- ubyte DeliriumLavaRuins_509 : 1;
- ubyte DeliriumLavaRuins_510 : 1;
- ubyte DeliriumLavaRuins_511 : 1;
- ubyte DeliriumLavaRuins_512 : 1;
- ubyte DeliriumLavaRuins_513 : 1;
- ubyte DeliriumLavaRuins_514 : 1;
- ubyte DeliriumLavaRuins_515 : 1;
- ubyte DeliriumLavaRuins_516 : 1;
- ubyte DeliriumLavaRuins_517 : 1;
- ubyte DeliriumLavaRuins_518 : 1;
- ubyte DeliriumLavaRuins_519 : 1;
- ubyte DeliriumLavaRuins_520 : 1;
- ubyte DeliriumLavaRuins_521 : 1;
- ubyte DeliriumLavaRuins_522 : 1;
- ubyte DeliriumLavaRuins_523 : 1;
- ubyte DeliriumLavaRuins_524 : 1;
- ubyte DeliriumLavaRuins_525 : 1;
- ubyte DeliriumLavaRuins_526 : 1;
- } deliriumLavaRuins;
- struct {
- ubyte Unknown_527 : 1;
- ubyte Unknown_528 : 1;
- ubyte Unknown_529 : 1;
- ubyte Unknown_530 : 1;
- ubyte Unknown_531 : 1;
- ubyte Unknown_532 : 1;
- ubyte Unknown_533 : 1;
- ubyte Unknown_534 : 1;
- ubyte Unknown_535 : 1;
- ubyte Unknown_536 : 1;
- ubyte Unknown_537 : 1;
- ubyte Unknown_538 : 1;
- ubyte Unknown_539 : 1;
- ubyte Unknown_540 : 1;
- } unknownPlace;
- struct {
- ubyte IdraCave_541 : 1;
- ubyte IdraCave_542 : 1;
- ubyte IdraCave_543 : 1;
- ubyte IdraCave_544 : 1;
- ubyte IdraCave_545 : 1;
- ubyte IdraCave_546 : 1;
- ubyte IdraCave_547 : 1;
- ubyte IdraCave_548 : 1;
- ubyte IdraCave_549 : 1;
- ubyte IdraCave_550 : 1;
- ubyte IdraCave_551 : 1;
- ubyte IdraCaveB1_552 : 1;
- ubyte IdraCaveB1_553 : 1;
- ubyte IdraCaveB1_554 : 1;
- ubyte IdraCaveB1_555 : 1;
- ubyte IdraCaveB1_556 : 1;
- ubyte IdraCaveB1_557 : 1;
- ubyte IdraCaveB1_558 : 1;
- ubyte IdraCaveB1_559 : 1;
- ubyte IdraCaveB1_560 : 1;
- ubyte IdraCaveB1_561 : 1;
- ubyte IdraCaveB1_562 : 1;
- ubyte IdraCaveB1_563 : 1;
- ubyte IdraCaveB1_564 : 1;
- ubyte IdraCaveB1_565 : 1;
- ubyte IdraCaveB1_566 : 1;
- ubyte IdraCaveB1_567 : 1;
- ubyte IdraCaveB1_568 : 1;
- ubyte IdraCaveB1_569 : 1;
- ubyte IdraCaveB1_570 : 1;
- ubyte IdraCaveB1_571 : 1;
- ubyte IdraCaveB2_572 : 1;
- ubyte IdraCaveB2_573 : 1;
- ubyte IdraCaveB2_574 : 1;
- ubyte IdraCaveB2_575 : 1;
- ubyte IdraCaveB2_576 : 1;
- ubyte IdraCaveB2_577 : 1;
- ubyte IdraCaveB2_578 : 1;
- ubyte IdraCaveB2_579 : 1;
- ubyte IdraCaveB2_580 : 1;
- ubyte IdraCaveB2_581 : 1;
- ubyte IdraCaveB2_582 : 1;
- ubyte IdraCaveB2_583 : 1;
- ubyte IdraCaveB2_584 : 1;
- ubyte IdraCaveB2_585 : 1;
- ubyte IdraCaveB2_586 : 1;
- ubyte IdraCaveB2_587 : 1;
- ubyte IdraCaveB2_588 : 1;
- ubyte IdraCaveB2_589 : 1;
- ubyte IdraCaveB2_590 : 1;
- ubyte IdraCaveB2_591 : 1;
- ubyte IdraCaveB2_592 : 1;
- ubyte IdraCaveB2_593 : 1;
- } idraCave;
- ubyte ImperialResearchCntr_594 : 1;
- struct {
- ubyte MayaRoad_595 : 1;
- ubyte MayaRoad_596 : 1;
- ubyte MayaRoad_597 : 1;
- ubyte MayaRoad_598 : 1;
- ubyte MayaRoad_599 : 1;
- ubyte MayaRoad_600 : 1;
- ubyte MayaRoad_601 : 1;
- ubyte MayaRoad_602 : 1;
- ubyte MayaRoad_603 : 1;
- ubyte MayaRoad_604 : 1;
- ubyte MayaRoad_605 : 1;
- ubyte MayaRoad_606 : 1;
- ubyte MayaRoad_607 : 1;
- ubyte MayaRoad_608 : 1;
- ubyte MayaRoad_609 : 1;
- ubyte MayaRoad_610 : 1;
- ubyte MayaRoad_611 : 1;
- ubyte MayaRoad_612 : 1;
- ubyte MayaRoad_613 : 1;
- ubyte MayaRoad_614 : 1;
- ubyte MayaRoad_615 : 1;
- ubyte MayaRoad_616 : 1;
- ubyte MayaRoad_617 : 1;
- ubyte MayaRoad_618 : 1;
- ubyte MayaRoad_619 : 1;
- ubyte MayaRoad_620 : 1;
- ubyte MayaRoad_621 : 1;
- ubyte MayaRoad_622 : 1;
- ubyte MayaRoad_623 : 1;
- ubyte MayaRoad_624 : 1;
- ubyte MayaRoad_625 : 1;
- ubyte MayaRoad_626 : 1;
- ubyte MayaRoad_627 : 1;
- ubyte MayaRoad_628 : 1;
- ubyte MayaRoad_629 : 1;
- ubyte MayaRoad_630 : 1;
- ubyte MayaRoad_631 : 1;
- ubyte MayaRoad_632 : 1;
- ubyte MayaRoad_633 : 1;
- ubyte MayaRoad_634 : 1;
- ubyte MayaRoad_635 : 1;
- ubyte MayaRoad_636 : 1;
- ubyte MayaRoad_637 : 1;
- ubyte MayaRoad_638 : 1;
- ubyte MayaRoad_639 : 1;
- ubyte MayaRoad_640 : 1;
- ubyte MayaRoad_641 : 1;
- ubyte MayaRoad_642 : 1;
- ubyte MayaRoad_643 : 1;
- ubyte MayaRoad_644 : 1;
- ubyte MayaRoad_645 : 1;
- ubyte MayaRoad_646 : 1;
- ubyte MayaRoad_647 : 1;
- ubyte MayaRoad_648 : 1;
- ubyte MayaRoad_649 : 1;
- ubyte MayaRoad_650 : 1;
- ubyte MayaRoad_651 : 1;
- ubyte MayaRoad_652 : 1;
- ubyte MayaRoad_653 : 1;
- ubyte MayaRoad_654 : 1;
- ubyte MayaRoad_655 : 1;
- ubyte MayaRoad_656 : 1;
- ubyte MayaRoad_657 : 1;
- } mayaRoad;
- struct {
- ubyte SechsTerritory_658 : 1;
- ubyte SechsTerritory_659 : 1;
- ubyte SechsTerritory_660 : 1;
- ubyte SechsTerritory_661 : 1;
- ubyte SechsTerritory_662 : 1;
- ubyte SechsTerritory_663 : 1;
- ubyte SechsTerritory_664 : 1;
- ubyte SechsTerritory_665 : 1;
- ubyte SechsTerritory_666 : 1;
- ubyte SechsTerritory_667 : 1;
- ubyte SechsTerritory_668 : 1;
- ubyte SechsTerritory_669 : 1;
- ubyte SechsTerritory_670 : 1;
- ubyte SechsTerritory_671 : 1;
- ubyte SechsTerritory_672 : 1;
- ubyte SechsTerritory_673 : 1;
- ubyte SechsTerritory_674 : 1;
- ubyte SechsTerritory_675 : 1;
- ubyte SechsTerritory_676 : 1;
- ubyte SechsTerritory_677 : 1;
- ubyte SechsTerritory_678 : 1;
- ubyte SechsTerritory_679 : 1;
- ubyte SechsTerritory_680 : 1;
- ubyte SechsTerritory_681 : 1;
- ubyte SechsTerritory_682 : 1;
- ubyte SechsTerritory_683 : 1;
- ubyte SechsTerritory_684 : 1;
- ubyte SechsTerritory_685 : 1;
- ubyte SechsTerritory_686 : 1;
- ubyte SechsTerritory_687 : 1;
- ubyte SechsTerritory_688 : 1;
- ubyte SechsTerritory_689 : 1;
- ubyte SechsTerritory_690 : 1;
- ubyte SechsTerritory_691 : 1;
- ubyte SechsTerritory_692 : 1;
- ubyte SechsTerritory_693 : 1;
- ubyte SechsTerritory_694 : 1;
- ubyte SechsTerritory_695 : 1;
- ubyte SechsTerritory_696 : 1;
- ubyte SechsTerritory_697 : 1;
- ubyte SechsTerritory_698 : 1;
- ubyte SechsTerritory_699 : 1;
- ubyte SechsTerritory_700 : 1;
- ubyte SechsTerritory_701 : 1;
- ubyte SechsTerritory_702 : 1;
- ubyte SechsTerritory_703 : 1;
- ubyte SechsTerritory_704 : 1;
- ubyte SechsTerritory_705 : 1;
- ubyte SechsTerritory_706 : 1;
- ubyte SechsTerritory_707 : 1;
- ubyte SechsTerritory_708 : 1;
- ubyte SechsTerritory_709 : 1;
- ubyte SechsTerritory_710 : 1;
- ubyte SechsTerritory_711 : 1;
- ubyte SechsTerritory_712 : 1;
- ubyte SechsTerritory_713 : 1;
- ubyte SechsTerritory_714 : 1;
- ubyte SechsTerritory_715 : 1;
- ubyte SechsTerritory_716 : 1;
- ubyte SechsTerritory_717 : 1;
- ubyte SechsTerritory_718 : 1;
- ubyte SechsTerritory_719 : 1;
- ubyte SechsTerritory_720 : 1;
- ubyte SechsTerritory_721 : 1;
- ubyte SechsTerritory_722 : 1;
- ubyte SechsTerritory_723 : 1;
- ubyte SechsTerritory_724 : 1;
- ubyte SechsTerritory_725 : 1;
- } sechsTerritory;
- struct {
- ubyte RunePrana_726 : 1;
- ubyte RunePrana_727 : 1;
- ubyte RunePrana_728 : 1;
- ubyte RunePrana_729 : 1;
- ubyte RunePrana_730 : 1;
- ubyte RunePrana_731 : 1;
- ubyte RunePrana_732 : 1;
- ubyte RunePrana_733 : 1;
- ubyte RunePrana_734 : 1;
- ubyte RunePrana_735 : 1;
- ubyte RunePrana_736 : 1;
- ubyte RunePrana_737 : 1;
- ubyte RunePrana_738 : 1;
- ubyte RunePrana_739 : 1;
- ubyte RunePrana_740 : 1;
- ubyte RunePrana_741 : 1;
- ubyte RunePrana_742 : 1;
- ubyte RunePrana_743 : 1;
- ubyte RunePrana_744 : 1;
- ubyte RunePrana_745 : 1;
- ubyte RunePrana_746 : 1;
- ubyte RunePrana_747 : 1;
- ubyte RunePrana_748 : 1;
- ubyte RunePrana_749 : 1;
- ubyte RunePrana_750 : 1;
- ubyte RunePrana_751 : 1;
- ubyte RunePrana_752 : 1;
- ubyte RunePrana_753 : 1;
- ubyte RunePrana_754 : 1;
- ubyte RunePrana_755 : 1;
- ubyte RunePrana_756 : 1;
- ubyte RunePrana_757 : 1;
- ubyte RunePrana_758 : 1;
- ubyte RunePrana_759 : 1;
- ubyte RunePrana_760 : 1;
- ubyte RunePrana_761 : 1;
- ubyte RunePrana_762 : 1;
- ubyte RunePrana_763 : 1;
- ubyte RunePrana_764 : 1;
- ubyte RunePrana_765 : 1;
- ubyte RunePrana_766 : 1;
- ubyte RunePrana_767 : 1;
- ubyte RunePrana_768 : 1;
- ubyte RunePrana_769 : 1;
- ubyte RunePrana_770 : 1;
- ubyte RunePrana_771 : 1;
- ubyte RunePrana_772 : 1;
- ubyte RunePrana_773 : 1;
- ubyte RunePrana_774 : 1;
- ubyte RunePrana_775 : 1;
- ubyte RunePrana_776 : 1;
- ubyte RunePrana_777 : 1;
- ubyte RunePrana_778 : 1;
- ubyte RunePrana_779 : 1;
- ubyte RunePrana_780 : 1;
- ubyte RunePrana_781 : 1;
- ubyte RunePrana_782 : 1;
- ubyte RunePrana_783 : 1;
- ubyte RunePrana_784 : 1;
- ubyte RunePrana_785 : 1;
- ubyte RunePrana_786 : 1;
- ubyte RunePrana_787 : 1;
- ubyte RunePrana_788 : 1;
- ubyte RunePrana_789 : 1;
- ubyte RunePrana_790 : 1;
- ubyte RunePrana_791 : 1;
- ubyte RunePrana_792 : 1;
- ubyte RunePrana_793 : 1;
- ubyte RunePrana_794 : 1;
- ubyte RunePrana_795 : 1;
- ubyte RunePrana_796 : 1;
- ubyte RunePrana_797 : 1;
- ubyte RunePrana_798 : 1;
- ubyte RunePrana_799 : 1;
- ubyte RunePrana_800 : 1;
- ubyte RunePrana_801 : 1;
- ubyte RunePrana_802 : 1;
- ubyte RunePrana_803 : 1;
- ubyte RunePrana_804 : 1;
- ubyte RunePrana_805 : 1;
- ubyte RunePrana_806 : 1;
- ubyte RunePrana_807 : 1;
- ubyte RunePrana_808 : 1;
- ubyte RunePrana_809 : 1;
- ubyte RunePrana_810 : 1;
- ubyte RunePrana_811 : 1;
- ubyte RunePrana_812 : 1;
- ubyte RunePrana_813 : 1;
- ubyte RunePrana_814 : 1;
- ubyte RunePrana_815 : 1;
- ubyte RunePrana_816 : 1;
- ubyte RunePrana_817 : 1;
- ubyte RunePrana_818 : 1;
- ubyte RunePrana_819 : 1;
- ubyte RunePrana_820 : 1;
- ubyte RunePrana_821 : 1;
- ubyte RunePrana_822 : 1;
- ubyte RunePrana_823 : 1;
- ubyte RunePrana_824 : 1;
- ubyte RunePrana_825 : 1;
- ubyte RunePrana_826 : 1;
- ubyte RunePrana_827 : 1;
- ubyte RunePrana_828 : 1;
- ubyte RunePrana_829 : 1;
- ubyte RunePrana_830 : 1;
- ubyte RunePrana_831 : 1;
- ubyte RunePrana_832 : 1;
- ubyte RunePrana_833 : 1;
- ubyte RunePrana_834 : 1;
- ubyte RunePrana_835 : 1;
- ubyte RunePrana_836 : 1;
- ubyte RunePrana_837 : 1;
- ubyte RunePrana_838 : 1;
- ubyte RunePrana_839 : 1;
- ubyte RunePrana_840 : 1;
- ubyte RunePrana_841 : 1;
- ubyte RunePrana_842 : 1;
- ubyte RunePrana_843 : 1;
- ubyte RunePrana_844 : 1;
- ubyte RunePrana_845 : 1;
- ubyte RunePrana_846 : 1;
- ubyte RunePrana_847 : 1;
- ubyte RunePrana_848 : 1;
- ubyte RunePrana_849 : 1;
- ubyte RunePrana_850 : 1;
- ubyte RunePrana_851 : 1;
- ubyte RunePrana_852 : 1;
- } runePrana;
- struct {
- ubyte CluckCluckNest_853 : 1;
- ubyte CluckCluckNest_854 : 1;
- ubyte CluckCluckNest_855 : 1;
- ubyte CluckCluckNest_856 : 1;
- ubyte CluckCluckNest_857 : 1;
- } cluckCluckNest;
- struct {
- ubyte RevivalCave_858 : 1;
- ubyte RevivalCave_859 : 1;
- ubyte RevivalCave_860 : 1;
- } revivalCave;
- struct {
- ubyte DemonsDen_861 : 1;
- ubyte DemonsDen_862 : 1;
- ubyte DemonsDen_863 : 1;
- ubyte DemonsDen_864 : 1;
- ubyte DemonsDen_865 : 1;
- ubyte DemonsDen_866 : 1;
- ubyte DemonsDen_867 : 1;
- ubyte DemonsDen_868 : 1;
- ubyte DemonsDen_869 : 1;
- } demonsDen;
- ubyte __870 : 1;
- ubyte __871 : 1;
- } MAPB <size=109>;
- // Unlocked recipes bitfield
- typedef struct {
- ubyte : 7; // probably part of a different flagset - fix later
- struct {
- ubyte Yarn : 1;
- ubyte Cheap_Bracelet : 1;
- ubyte Bronze_Bracelet : 1;
- ubyte Silver_Bracelet : 1;
- ubyte Gold_Bracelet : 1;
- ubyte Platinum_Bracelet : 1;
- ubyte Silver_Ring : 1;
- ubyte Gold_Ring : 1;
- ubyte Platinum_Ring : 1;
- ubyte Shield_Ring : 1;
- ubyte Critical_Ring : 1;
- ubyte Silent_Ring : 1;
- ubyte Paralysis_Ring : 1;
- ubyte Poison_Ring : 1;
- ubyte Magic_Ring : 1;
- ubyte Throwing_Ring : 1;
- ubyte Stay_up_Ring : 1;
- ubyte Aquamarine_Ring : 1;
- ubyte Amethyst_Ring : 1;
- ubyte Emerald_Ring : 1;
- ubyte Sapphire_Ring : 1;
- ubyte Ruby_Ring : 1;
- ubyte Cursed_Ring : 1;
- ubyte Diamond_Ring : 1;
- ubyte Aquamarine_Brooch : 1;
- ubyte Amethyst_Brooch : 1;
- ubyte Emerald_Brooch : 1;
- ubyte Sapphire_Brooch : 1;
- ubyte Ruby_Brooch : 1;
- ubyte Diamond_Brooch : 1;
- ubyte Dolphin_Brooch : 1;
- ubyte Fire_Ring : 1;
- ubyte Wind_Ring : 1;
- ubyte Water_Ring : 1;
- ubyte Earth_Ring : 1;
- ubyte Happy_Ring : 1;
- ubyte Silver_Pendant : 1;
- ubyte Star_Pendant : 1;
- ubyte Sun_Pendant : 1;
- ubyte Field_Pendant : 1;
- ubyte Dew_Pendant : 1;
- ubyte Earth_Pendant : 1;
- ubyte Heart_Pendant : 1;
- ubyte Strange_Pendant : 1;
- ubyte Anettes_Necklace : 1;
- ubyte Work_Gloves : 1;
- ubyte Gloves : 1;
- ubyte Power_Gloves : 1;
- ubyte Earrings : 1;
- ubyte Witch_Earrings : 1;
- ubyte Magic_Earrings : 1;
- ubyte Charm : 1;
- ubyte Holy_Amulet : 1;
- ubyte Rosary : 1;
- ubyte Talisman : 1;
- ubyte Magic_Charm : 1;
- ubyte Leather_Belt : 1;
- ubyte Lucky_Strike : 1;
- ubyte Champ_Belt : 1;
- ubyte Hand_Knit_Scarf : 1;
- ubyte Fluffy_Scarf : 1;
- ubyte Heros_Proof : 1;
- ubyte Proof_of_Wisdom : 1;
- ubyte Art_of_Attack : 1;
- ubyte Art_of_Defense : 1;
- ubyte Art_of_Magic : 1;
- ubyte Badge : 1;
- ubyte Courage_Badge : 1;
- ubyte Ventis_Charm_A : 1;
- ubyte Ventis_Charm_B : 1;
- } craft_Accessories;
- struct {
- ubyte Shirt : 1;
- ubyte Vest : 1;
- ubyte Cotton_Cloth : 1;
- ubyte Mail : 1;
- ubyte Chain_Mail : 1;
- ubyte Scale_Vest : 1;
- ubyte Sparkling_Shirt : 1;
- ubyte Wind_Cloak : 1;
- ubyte Protector : 1;
- ubyte Platinum_Mail : 1;
- ubyte Lamellar_Vest : 1;
- ubyte Mercenarys_Cloak : 1;
- ubyte Wooly_Shirt : 1;
- ubyte Elvish_Cloak : 1;
- ubyte Dragon_Cloak : 1;
- ubyte Power_Protector : 1;
- ubyte Rune_Vest : 1;
- ubyte Royal_Garter : 1;
- ubyte Four_Dragons_Vest : 1;
- } craft_Armor;
- struct {
- ubyte Trout_Sashimi : 1;
- ubyte Char_Sashimi : 1;
- ubyte Rainbow_Sashimi : 1;
- ubyte Salmon_Sashimi : 1;
- ubyte Cherry_Sashimi : 1;
- ubyte Taimen_Sashimi : 1;
- ubyte Snapper_Sashimi : 1;
- ubyte Glitter_Sashimi : 1;
- ubyte Lover_Sashimi : 1;
- ubyte Girella_Sashimi : 1;
- ubyte Skipjack_Sashimi : 1;
- ubyte Yellowtail_Sashimi : 1;
- ubyte Tuna_Sashimi : 1;
- ubyte Sardine_Sashimi : 1;
- ubyte Needlefish_Sashimi : 1;
- ubyte Pike_Sashimi : 1;
- ubyte Flounder_Sashimi : 1;
- ubyte Turbot_Sashimi : 1;
- ubyte Fall_Sashimi : 1;
- ubyte Squid_Sashimi : 1;
- ubyte Sunsquid_Sashimi : 1;
- ubyte Lamp_Squid_Sashimi : 1;
- ubyte Blowfish_Sashimi : 1;
- ubyte Lobster_Sashimi : 1;
- ubyte Shrimp_Sashimi : 1;
- } cooking_Knife;
- struct {
- ubyte Fried_Veggies : 1;
- ubyte Fried_Rice : 1;
- ubyte Cabbage_Cakes : 1;
- ubyte French_Fries : 1;
- ubyte Croquettes : 1;
- ubyte Popcorn : 1;
- ubyte Corn_Cereal : 1;
- ubyte Miso_Eggplant : 1;
- ubyte Fried_Eggs : 1;
- ubyte Omelet : 1;
- ubyte Omelet_Rice : 1;
- ubyte Baked_Apple : 1;
- ubyte Curry_Bread : 1;
- ubyte French_Toast : 1;
- ubyte Donut : 1;
- ubyte Fried_Udon : 1;
- ubyte Tempura : 1;
- ubyte Pancakes : 1;
- ubyte Gyoza : 1;
- ubyte Risotto : 1;
- ubyte Dry_Curry : 1;
- ubyte Salted_Masu_Trout : 1;
- ubyte Salted_Char : 1;
- ubyte Salted_R_Trout : 1;
- ubyte Salted_C_Salmon : 1;
- ubyte Salted_Chub : 1;
- ubyte Salted_Salmon : 1;
- ubyte Salted_Taimen : 1;
- ubyte Grilled_C_Carp : 1;
- ubyte Grilled_Gibelio : 1;
- ubyte Grilled_Snapper : 1;
- ubyte Grilled_Girella : 1;
- ubyte Grilled_G_Snapper : 1;
- ubyte Grilled_L_Snapper : 1;
- ubyte Grilled_Skipjack : 1;
- ubyte Grilled_Mackerel : 1;
- ubyte Grilled_Yellowtail : 1;
- ubyte Salted_Pond_Smelt : 1;
- ubyte Tuna_Teriyaki : 1;
- ubyte Dried_Sardines : 1;
- ubyte Grilled_Needlefish : 1;
- ubyte Salted_Pike : 1;
- ubyte Grilled_Flounder : 1;
- ubyte Grilled_Turbot : 1;
- ubyte Grilled_F_Flounder : 1;
- ubyte Grilled_Squid : 1;
- ubyte Grilled_Sunsquid : 1;
- ubyte Grilled_Lamp_Squid : 1;
- ubyte Grilled_Blowfish : 1;
- ubyte Grilled_Lobster : 1;
- ubyte Grilled_Shrimp : 1;
- ubyte Grilled_S_Flounder : 1;
- } cooking_FryingPan;
- struct {
- ubyte Hot_Milk : 1;
- ubyte Hot_Chocolate : 1;
- ubyte Grape_Liqueur : 1;
- ubyte Boiled_Pumpkin : 1;
- ubyte Boiled_Spinach : 1;
- ubyte Boiled_Egg : 1;
- ubyte Glazed_Yam : 1;
- ubyte Boiled_Gyoza : 1;
- ubyte Strawberry_Jam : 1;
- ubyte Apple_Jam : 1;
- ubyte Grape_Jam : 1;
- ubyte Marmalade : 1;
- ubyte Cheese_Fondue : 1;
- ubyte Udon : 1;
- ubyte Curry_Udon : 1;
- ubyte Tempura_Udon : 1;
- ubyte Rice_Porridge : 1;
- ubyte Milk_Porridge : 1;
- ubyte Tempura_Bowl : 1;
- ubyte Egg_Bowl : 1;
- ubyte Stew : 1;
- ubyte Curry_Rice : 1;
- ubyte Ultimate_Curry : 1;
- ubyte Royal_Curry : 1;
- ubyte Relax_Tea : 1;
- ubyte Grilled_Miso : 1;
- ubyte Union_Stew : 1;
- ubyte Rockfish_Stew : 1;
- ubyte Yogurt : 1;
- } cooking_Pot;
- struct {
- ubyte Corn_on_the_Cob : 1;
- ubyte Baked_Onigiri : 1;
- ubyte Sweet_Potato : 1;
- ubyte Toast : 1;
- ubyte Jam_Roll : 1;
- ubyte Butter_Roll : 1;
- ubyte Pizza : 1;
- ubyte Seafood_Pizza : 1;
- ubyte Doria : 1;
- ubyte Seafood_Doria : 1;
- ubyte Gratin : 1;
- ubyte Seafood_Gratin : 1;
- ubyte Yam_of_the_Ages : 1;
- ubyte Cookie : 1;
- ubyte Choco_Cookie : 1;
- ubyte Cake : 1;
- ubyte Chocolate_Cake : 1;
- ubyte Cheesecake : 1;
- ubyte Apple_Pie : 1;
- } cooking_Oven;
- struct {
- ubyte Pineapple_Juice : 1;
- ubyte Tomato_Juice : 1;
- ubyte Grape_Juice : 1;
- ubyte Orange_Juice : 1;
- ubyte Apple_Juice : 1;
- ubyte Strawberry_Milk : 1;
- ubyte Fruit_Juice : 1;
- ubyte Fruit_Smoothie : 1;
- ubyte Vegetable_Juice : 1;
- ubyte Veggie_Smoothie : 1;
- ubyte Mixed_Juice : 1;
- ubyte Mixed_Smoothie : 1;
- ubyte Ketchup : 1;
- ubyte Butter : 1;
- ubyte Gold_Juice : 1;
- ubyte Prelude_to_Love : 1;
- ubyte Hot_Juice : 1;
- } cooking_Mixer;
- struct {
- ubyte Steamed_Bread : 1;
- ubyte Cheese_Bread : 1;
- ubyte Meat_Dumpling : 1;
- ubyte Chinese_Manju : 1;
- ubyte Curry_Manju : 1;
- ubyte Steamed_Gyoza : 1;
- ubyte Pound_Cake : 1;
- ubyte Chocolate_Sponge : 1;
- ubyte Flan : 1;
- ubyte Pumpkin_Flan : 1;
- ubyte Dumplings : 1;
- } cooking_Steamer;
- struct {
- ubyte Salad : 1;
- ubyte Sandwich : 1;
- ubyte Fruit_Sandwich : 1;
- ubyte Pickled_Turnip : 1;
- ubyte Pickles : 1;
- ubyte Bamboo_Rice : 1;
- ubyte Raisin_Bread : 1;
- ubyte Ice_Cream : 1;
- ubyte Relax_Tea_Leaves : 1;
- ubyte Onigiri : 1;
- ubyte Bread : 1;
- ubyte Salmon_Onigiri : 1;
- ubyte Pickle_Mix : 1;
- ubyte Turnip_Heaven : 1;
- ubyte Cheese : 1;
- ubyte Mayonnaise : 1;
- } cooking_HandmadeAndOthers;
- struct {
- ubyte The_Protein : 1;
- ubyte Intelligencer : 1;
- ubyte Vital_Gummi : 1;
- ubyte Heart_Drink : 1;
- ubyte Antidote_Potion : 1;
- ubyte Para_Gone : 1;
- ubyte Roundoff : 1;
- ubyte Cold_Medicine : 1;
- ubyte Formuade : 1;
- ubyte Love_Potion : 1;
- ubyte Invinciroid : 1;
- ubyte Leveliser : 1;
- ubyte Heavy_Spice : 1;
- ubyte Sweet_Powder : 1;
- ubyte Sour_Drop : 1;
- ubyte Mixed_Herbs : 1;
- ubyte Recovery_Potion : 1;
- ubyte Healing_Potion : 1;
- ubyte Mystery_Potion : 1;
- ubyte Magical_Potion : 1;
- } chem_Medicine;
- struct {
- ubyte Cheap_Hoe : 1;
- ubyte Sturdy_Hoe : 1;
- ubyte Seasoned_Hoe : 1;
- ubyte Shiny_Hoe : 1;
- ubyte Blessed_Hoe : 1;
- ubyte Cheap_Waterpot : 1;
- ubyte Tin_Waterpot : 1;
- ubyte Lion_Waterpot : 1;
- ubyte Rainbow_Waterpot : 1;
- ubyte Joy_Waterpot : 1;
- ubyte Cheap_Sickle : 1;
- ubyte Iron_Sickle : 1;
- ubyte Quality_Sickle : 1;
- ubyte Super_Sickle : 1;
- ubyte Legendary_Sickle : 1;
- ubyte Cheap_Hammer : 1;
- ubyte Iron_Hammer : 1;
- ubyte Silver_Hammer : 1;
- ubyte Golden_Hammer : 1;
- ubyte Platinum_Hammer : 1;
- ubyte Cheap_Axe : 1;
- ubyte Chopping_Axe : 1;
- ubyte Lumber_Axe : 1;
- ubyte Mountain_Axe : 1;
- ubyte Miracle_Axe : 1;
- ubyte Cheap_Pole : 1;
- ubyte Beginners_Pole : 1;
- ubyte Skilled_Pole : 1;
- ubyte Famous_Pole : 1;
- ubyte Sacred_Pole : 1;
- } forge_FarmTools;
- struct {
- ubyte Headband : 1;
- ubyte Blue_Ribbon : 1;
- ubyte Green_Ribbon : 1;
- ubyte Purple_Ribbon : 1;
- ubyte Summer_Headdress : 1;
- ubyte Spectacles : 1;
- ubyte Straw_Hat : 1;
- ubyte Fancy_Hat : 1;
- ubyte Brand_Glasses : 1;
- ubyte Cute_Knitting : 1;
- ubyte Intelligent_Glasses : 1;
- ubyte Fireproof_Hood : 1;
- ubyte Black_Ribbon : 1;
- ubyte Lolita_Headdress : 1;
- ubyte Headdress : 1;
- ubyte Yellow_Ribbon : 1;
- ubyte Autumn_Headdress : 1;
- ubyte Cat_Ears : 1;
- ubyte Silver_Hairpin : 1;
- ubyte Red_Ribbon : 1;
- ubyte Spring_Headdress : 1;
- ubyte Orange_Ribbon : 1;
- ubyte Winter_Headdress : 1;
- ubyte White_Ribbon : 1;
- ubyte Four_Seasons : 1;
- ubyte Feathered_Hat : 1;
- ubyte Gold_Hairpin : 1;
- ubyte Indigo_Ribbon : 1;
- ubyte Crown : 1;
- ubyte Turnip_Headgear : 1;
- ubyte Pumpkin_Headgear : 1;
- ubyte Silk_Hat : 1;
- } craft_Headgear;
- ubyte : 1; // dummy_341
- ubyte Engagement_Ring : 1;
- struct {
- ubyte Wettable_Powder : 1;
- ubyte Greenifier : 1;
- ubyte GreenifierPlus : 1;
- ubyte FormulaA : 1;
- ubyte FormulaB : 1;
- ubyte FormulaC : 1;
- ubyte NoRotAlpha : 1;
- ubyte NoRotBeta : 1;
- ubyte Giantizer : 1;
- ubyte Minimizer : 1;
- } chem_FarmChemicals;
- struct {
- ubyte Small_Shield : 1;
- ubyte Umbrella : 1;
- ubyte Iron_Shield : 1;
- ubyte Monkey_Plush : 1;
- ubyte Round_Shield : 1;
- ubyte Turtle_Shield : 1;
- ubyte Chaos_Shield : 1;
- ubyte Bone_Shield : 1;
- ubyte Magic_Shield : 1;
- ubyte Heavy_Shield : 1;
- ubyte Platinum_Shield : 1;
- ubyte Kite_Shield : 1;
- ubyte Knight_Shield : 1;
- ubyte Element_Shield : 1;
- ubyte Magical_Shield : 1;
- ubyte Prism_Shield : 1;
- ubyte Rune_Shield : 1;
- } craft_Shields;
- struct {
- ubyte Feather_Boots : 1;
- ubyte Heavy_Boots : 1;
- ubyte Leather_Boots : 1;
- ubyte Iron_Geta : 1;
- ubyte Snow_Boots : 1;
- ubyte Ice_Skates : 1;
- ubyte Piyo_Sandals : 1;
- ubyte Step_In_Boots : 1;
- ubyte Ghost_Boots : 1;
- ubyte Knight_Boots : 1;
- ubyte Strider_Boots : 1;
- ubyte Secret_Shoes : 1;
- ubyte Wet_Boots : 1;
- ubyte Sneaking_Boots : 1;
- ubyte Fast_Step_Boots : 1;
- ubyte Water_Shoes : 1;
- ubyte Rocket_Wing : 1;
- ubyte Silver_Boots : 1;
- ubyte Gold_Boots : 1;
- ubyte Bone_Boots : 1;
- ubyte Fairy_Boots : 1;
- ubyte Free_Farming_Shoes : 1;
- } craft_Shoes;
- struct {
- ubyte Broadsword : 1;
- ubyte Steel_Sword : 1;
- ubyte Steel_Sword_Plus : 1;
- ubyte Cutlass : 1;
- ubyte Aqua_Sword : 1;
- ubyte Invisiblade : 1;
- ubyte Defender : 1;
- ubyte Burning_Sword : 1;
- ubyte Gorgeous_Sword : 1;
- ubyte Gaia_Sword : 1;
- ubyte Snakesword : 1;
- ubyte Luck_Blade : 1;
- ubyte Platinum_Sword : 1;
- ubyte Wind_Sword : 1;
- ubyte Chaos_Blade : 1;
- ubyte Sakura : 1;
- ubyte Sunspot : 1;
- ubyte Durendal : 1;
- ubyte Aerial_Blade : 1;
- ubyte Grantale : 1;
- ubyte Smash_Blade : 1;
- ubyte Icifier : 1;
- ubyte Soul_Eater : 1;
- ubyte Raventine : 1;
- ubyte Star_Saber : 1;
- ubyte Platinum_Sword_Plus : 1;
- ubyte Dragon_Slayer : 1;
- ubyte Rune_Blade : 1;
- ubyte Gladius : 1;
- ubyte Rune_Legend : 1;
- ubyte Back_Scratcher : 1;
- ubyte Spoon : 1;
- ubyte Veggieblade : 1;
- } forge_ShortSwords;
- struct {
- ubyte Claymore : 1;
- ubyte Zweihaender : 1;
- ubyte Zweihaender_Plus : 1;
- ubyte Great_Sword : 1;
- ubyte Sea_Cutter : 1;
- ubyte Cyclone_Blade : 1;
- ubyte Poison_Blade : 1;
- ubyte Katzbalger : 1;
- ubyte Earth_Shade : 1;
- ubyte Big_Knife : 1;
- ubyte Katana : 1;
- ubyte Flame_Saber : 1;
- ubyte Bio_Smasher : 1;
- ubyte Snow_Crown : 1;
- ubyte Dancing_Dicer : 1;
- ubyte Flamberge : 1;
- ubyte Flamberge_Plus : 1;
- ubyte Volcanon : 1;
- ubyte Psycho : 1;
- ubyte Shine_Blade : 1;
- ubyte Grand_Smasher : 1;
- ubyte Belzebuth : 1;
- ubyte Orochi : 1;
- ubyte Punisher : 1;
- ubyte Steel_Slicer : 1;
- ubyte Moon_Shadow : 1;
- ubyte Blue_Eyed_Blade : 1;
- ubyte Balmung : 1;
- ubyte Braveheart : 1;
- ubyte Force_Element : 1;
- ubyte Heaven_Asunder : 1;
- ubyte Caliburn : 1;
- ubyte Dekash : 1;
- ubyte Daicone : 1;
- } forge_LongSwords;
- struct {
- ubyte Spear : 1;
- ubyte Wood_Staff : 1;
- ubyte Lance : 1;
- ubyte Lance_Plus : 1;
- ubyte Needle_Spear : 1;
- ubyte Trident : 1;
- ubyte Water_Spear : 1;
- ubyte Halberd : 1;
- ubyte Corsesca : 1;
- ubyte Corsesca_Plus : 1;
- ubyte Poison_Spear : 1;
- ubyte Fivestaff : 1;
- ubyte Heavy_Lance : 1;
- ubyte Feather_Lance : 1;
- ubyte Iceberg : 1;
- ubyte Blood_Lance : 1;
- ubyte Magical_Lance : 1;
- ubyte Flare_Lance : 1;
- ubyte Brionac : 1;
- ubyte Poison_Queen : 1;
- ubyte Monk_Staff : 1;
- ubyte Metus : 1;
- ubyte Silent_Grave : 1;
- ubyte Overbreak : 1;
- ubyte Bjor : 1;
- ubyte Belvarose : 1;
- ubyte Gae_Bolg : 1;
- ubyte Gungnir : 1;
- ubyte Dragons_Fang : 1;
- ubyte Legion : 1;
- ubyte Pitchfork : 1;
- ubyte Safety_Lance : 1;
- ubyte Pine_Club : 1;
- ubyte : 1; // dummy_492
- ubyte : 1; // dummy_493
- ubyte : 1; // dummy_494
- ubyte : 1; // dummy_495
- ubyte : 1; // dummy_496
- } forge_Spears;
- struct {
- ubyte Battle_Hammer : 1;
- ubyte Battle_Axe : 1;
- ubyte Bat : 1;
- ubyte War_Hammer : 1;
- ubyte Battle_Scythe : 1;
- ubyte War_Hammer_Plus : 1;
- ubyte Pole_Axe : 1;
- ubyte Iron_Bat : 1;
- ubyte Pole_Axe_Plus : 1;
- ubyte Great_Hammer : 1;
- ubyte Great_Axe : 1;
- ubyte Ice_Hammer : 1;
- ubyte Tomahawk : 1;
- ubyte Basilisk_Fang : 1;
- ubyte Bone_Hammer : 1;
- ubyte Rock_Axe : 1;
- ubyte Strong_Stone : 1;
- ubyte Demon_Axe : 1;
- ubyte Flame_Hammer : 1;
- ubyte Gigant_Hammer : 1;
- ubyte Sky_Hammer : 1;
- ubyte Frost_Axe : 1;
- ubyte Crescent_Axe : 1;
- ubyte Crescent_Axe_Plus : 1;
- ubyte Graviton_Hammer : 1;
- ubyte Spiked_Hammer : 1;
- ubyte Heat_Axe : 1;
- ubyte Crystal_Hammer : 1;
- ubyte Schnabel : 1;
- ubyte Double_Edge : 1;
- ubyte Alldale : 1;
- ubyte Gigant_Hammer_Plus : 1;
- ubyte Devil_Finger : 1;
- ubyte Kongo : 1;
- ubyte Executioner : 1;
- ubyte Mjolnir : 1;
- ubyte Fatal_Crush : 1;
- ubyte Saint_Axe : 1;
- ubyte Splash_Star : 1;
- ubyte Hammer : 1;
- ubyte Toy_Hammer : 1;
- ubyte Axe : 1;
- ubyte Lollipop : 1;
- ubyte : 1; // dummy_540
- ubyte : 1; // dummy_541
- ubyte : 1; // dummy_542
- ubyte : 1; // dummy_543
- ubyte : 1; // dummy_544
- ubyte : 1; // dummy_545
- ubyte : 1; // dummy_546
- ubyte : 1; // dummy_547
- ubyte : 1; // dummy_548
- ubyte : 1; // dummy_549
- ubyte : 1; // dummy_550
- ubyte : 1; // dummy_551
- ubyte : 1; // dummy_552
- ubyte : 1; // dummy_553
- ubyte : 1; // dummy_554
- ubyte : 1; // dummy_555
- ubyte : 1; // dummy_556
- ubyte : 1; // dummy_557
- ubyte : 1; // dummy_558
- ubyte : 1; // dummy_559
- } forge_AxesHammers;
- struct {
- ubyte Rod : 1;
- ubyte Amethyst_Rod : 1;
- ubyte Aquamarine_Rod : 1;
- ubyte Friendly_Rod : 1;
- ubyte Love_Love_Rod : 1;
- ubyte Staff : 1;
- ubyte Emerald_Rod : 1;
- ubyte Silver_Staff : 1;
- ubyte Flare_Staff : 1;
- ubyte Ruby_Rod : 1;
- ubyte Sapphire_Rod : 1;
- ubyte Earth_Staff : 1;
- ubyte Lightning_Wand : 1;
- ubyte Ice_Staff : 1;
- ubyte Diamond_Rod : 1;
- ubyte Wizards_Staff : 1;
- ubyte Mages_Staff : 1;
- ubyte Shooting_Star_Staff : 1;
- ubyte Hell_Branch : 1;
- ubyte Crimson_Staff : 1;
- ubyte Bubble_Staff : 1;
- ubyte Gaia_Rod : 1;
- ubyte Cyclone_Rod : 1;
- ubyte Storm_Wand : 1;
- ubyte Rune_Staff : 1;
- ubyte Mages_Staff_Plus : 1;
- ubyte Magic_Broom : 1;
- ubyte Magic_Shot : 1;
- ubyte Hell_Curse : 1;
- ubyte Algernon : 1;
- ubyte Sorcerers_Wand : 1;
- ubyte Basket : 1;
- ubyte Golden_Turnip_Staff : 1;
- ubyte Sweet_Potato_Staff : 1;
- ubyte Elvish_Harp : 1;
- ubyte Syringe : 1;
- } forge_Staves;
- struct {
- ubyte Short_Dagger : 1;
- ubyte Steel_Edge : 1;
- ubyte Frost_Edge : 1;
- ubyte Twin_Leeks : 1;
- ubyte Iron_Edge : 1;
- ubyte Thief_Knife : 1;
- ubyte Wind_Edge : 1;
- ubyte Gorgeous_Lx : 1;
- ubyte Steel_Katana : 1;
- ubyte Twin_Blade : 1;
- ubyte Rampage : 1;
- ubyte Salamander : 1;
- ubyte Platinum_Edge : 1;
- ubyte Sonic_Dagger : 1;
- ubyte Chaos_Edge : 1;
- ubyte Desert_Wind : 1;
- ubyte Broken_Wall : 1;
- ubyte Force_Divide : 1;
- ubyte Heart_Fire : 1;
- ubyte Orcus_Sword : 1;
- ubyte Deep_Blizzard : 1;
- ubyte Dark_Invitation : 1;
- ubyte Priest_Saber : 1;
- ubyte Efreet : 1;
- ubyte Dragoon_Claw : 1;
- ubyte Emerald_Edge : 1;
- ubyte Rune_Edge : 1;
- ubyte Earnest_Edge : 1;
- ubyte Twin_Justice : 1;
- ubyte Double_Scratch : 1;
- ubyte Acutorimass : 1;
- } forge_DualBlades;
- struct {
- ubyte Leather_Gloves : 1;
- ubyte Brass_Knuckles : 1;
- ubyte Kote : 1;
- ubyte Gloves : 1;
- ubyte Bear_Claws : 1;
- ubyte Fists_of_the_Earth : 1;
- ubyte Fists_of_Fire : 1;
- ubyte Fists_of_Water : 1;
- ubyte Dragon_Claws : 1;
- ubyte Fists_of_Dark : 1;
- ubyte Fists_of_Wind : 1;
- ubyte Fists_of_Light : 1;
- ubyte Cat_Punch : 1;
- ubyte Animal_Puppets : 1;
- ubyte Ironleaf_Fists : 1;
- ubyte Caestus : 1;
- ubyte Golem_Punch : 1;
- ubyte Hand_of_God : 1;
- ubyte Bazal_Katar : 1;
- ubyte Fenrir : 1;
- } forge_Fists;
- } RECIP <size=188>;
- typedef struct {
- ubyte : 5;
- ubyte season : 2 <read=ReadBMonth, write=WriteBMonth, comment="Spring = 0, Winter = 3">;
- ubyte day : 5 <read=ReadBDay, write=WriteBDay>;
- ubyte : 4;
- } BDAY <read=GetBDay>;
- typedef struct {
- long level;
- long exp;
- } SKILL <read=ReadSkillVal>;
- typedef struct {
- SPELLID spellID : 10; // 10 bits spell ID
- ubyte isActive : 1; // 1 bit spell exists?
- ubyte level : 5 <comment="Level - 1 (0-9)">;
- } SPELL <read=ReadSpell, size=2>;
- typedef struct {
- ITEMID itemID : 11;
- ubyte amount : 5 <comment="Item stack size (for spells: level)">;
- short isCrafted;
- if( (isCrafted > 0) || ( (itemID >= 985) && (itemID < 1020) ) ) { // crafted or fish
- ubyte iLevel;
- ubyte UnknownA;
- if (isCrafted > 0) {
- ubyte iQuality;
- ushort UnknownB;
- ushort : 2;
- ushort iRarity : 8;
- ubyte UnknownC;
- ITEMID inheritedItem;
- }
- else {
- ushort UnknownB;
- ushort fishSize <comment="in mm">;
- }
- }
- else {
- ubyte iLevels[9] <comment="Descending order, Level - 1 (0-9)">;
- }
- } ITEM <read=ReadItem, size=28, optimize=false>;
- // An object on a farm
- typedef struct {
- CROPID crop;
- ubyte UnknownA : 2 <hidden=true>;
- ushort cropLevel : 12 <read=ReadCropLvl, write=WriteCropLvl, comment="Always rounded down">;
- ushort sizeBonus : 10 <read=ReadCropSize, write=WriteCropSize,comment="Range -2 to 2">;
- uint growthProgress : 17 <read=ReadCropGrowth, write=WriteCropGrowth, comment="Max. 511; measured in days assuming normal growth">;
- ushort additionalCrops : 12 <read=ReadCropNum, write=WriteCropNum, comment="Range -7 to 7">;
- ubyte isWatered : 1;
- ubyte UnknownB : 2 <hidden=true>;
- ubyte health;
- ushort coordX : 11 <comment="'Square' length is 32">;
- ushort coordY : 10 <comment="'Square' length is 32">;
- ubyte levelChanged : 1 <comment="CropLv changed by soil? (turns number blue)">;
- ubyte UnknownC : 1 <hidden=true>;
- ubyte playerMade : 1 <comment="(Not sure) Player created this?">;
- } CROP <size=12, name=ReadCropName, read=ReadCropValue, comment=ReadCropComment>;
- // An interactable object (storage boxes etc.)
- typedef struct {
- ROOM room : 15;
- ushort UnknownA :1 ;
- OBJID object <comment="unsure">;
- ushort coordX <comment="'Square' length is 32">;
- ushort coordY <comment="'Square' length is 32">;
- } OBJ <size=8, name=ReadObjName, read=ReadObjValue>;
- typedef struct {
- local int i;
- for( i = 0; i < 15; i ++ )
- ITEM item;
- } EQPAGE <optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 15; i ++ )
- SPELL spell;
- } SPLPAGE <optimize=true>;
- typedef struct {
- ITEM carried;
- ITEM weapon;
- ITEM shield;
- ITEM accessory;
- ITEM head;
- ITEM boots;
- struct {
- ITEM spell_X1;
- ITEM spell_Y1;
- ITEM spell_X2;
- ITEM spell_Y2;
- } spells;
- ITEM armor;
- } EQUIPINV <size=308>;
- typedef struct {
- local int i;
- for( i = 0; i < 4; i ++ )
- EQPAGE page;
- } BACKPACK <size=1680, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 2; i ++ )
- SPLPAGE page;
- } SPELLINV <size=60, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 66; i ++ )
- EQPAGE page;
- } STORAGE <size=27720, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 66; i ++ )
- EQPAGE page;
- } FRIDGE <size=27720, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 6; i ++ )
- SPLPAGE page;
- } LIBRARY <size=180, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 20; i ++ )
- EQPAGE page;
- } SHIPBOX <size=8400, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 1; i ++ )
- EQPAGE page;
- } SHOPBOX <size=420, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 8; i ++ )
- EQPAGE page;
- } WPNBOX <size=3360, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 10; i ++ )
- EQPAGE page;
- } TOOLBOX <size=4200, optimize=true>;
- typedef struct {
- local int i;
- for( i = 0; i < 8; i ++ )
- EQPAGE page;
- } WARDROBE <size=3360, optimize=true>;
- typedef struct {
- ITEM weapon;
- ITEM shield;
- ITEM accessory;
- ITEM armor;
- ITEM head;
- ITEM boots;
- ITEM UnkA;
- ITEM UnkB;
- ITEM UnkC;
- } NPCINV <size=252>;
- typedef struct {
- long curHP;
- long modHP;
- ushort curRP;
- ushort modRP;
- short modStr;
- ushort UnknownStr;
- short modInt;
- ushort UnknownInt;
- short modVit;
- ushort UnknownVit;
- ushort level;
- ushort UnknownB;
- long exp;
- ushort UnknownC;
- COST costume;
- } CHARSTAT <size=100>;
- typedef struct {
- local int i;
- for( i = 0; i < 20; i ++ )
- CHARSTAT monster <name=ReadMonNameB>;
- } BARNSTAT <optimize=true>;
- typedef struct ( ubyte bytelen, ubyte hasSign, float factor ){
- local ubyte bytelen = bytelen;
- local ubyte hasSign = hasSign;
- local float factor = factor;
- ulong value : bytelen;
- } FSTAT;
- typedef struct {
- ushort tmpSpeed : 11 <read=GetTmpSpeed, write=SetTmpSpeed, comment="Range 0 to 8">;
- ushort tmpNumber : 11 <read=GetTmpNumber, write=SetTmpNumber, comment="Range -4 to 4">;
- ushort tmpQuality : 10 <read=GetTmpQuality, write=SetTmpQuality, comment="Range -2 to 2">;
- ushort tmpSize : 10 <read=GetTmpSize, write=SetTmpSize, comment="Range -2 to 2">;
- ushort defense : 6 <comment="Range 0 to 63">;
- ubyte HPc <comment="Range 0 to 255">;
- ubyte UnknownA : 8;
- ubyte UnknownB : 4;
- ubyte numberA : 4 <read=GetNumber, write=SetNumber, comment="Range 1 to 16.99">;
- ubyte qualityA : 4 <read=GetQuality, write=SetQuality, comment="Range 1 to 16.99">;
- ubyte sizeA : 4 <read=GetSize, write=SetSize, comment="Range 1 to 16.99">;
- ubyte overallB <read=GetOverall, write=SetOverall, comment="Range 1 to 16.99">;
- ubyte speedB <read=GetSpeed, write=SetSpeed, comment="Range 1 to 16.99">;
- ubyte numberB <read=GetNumber, write=SetNumber, comment="Range 1 to 16.99">;
- ubyte qualityB <read=GetQuality, write=SetQuality, comment="Range 1 to 16.99">;
- ubyte sizeB <read=GetSize, write=SetSize, comment="Range 1 to 16.99">;
- ubyte overallA : 4 <read=GetOverall, write=SetOverall, comment="Range 1 to 16.99">;
- ubyte speedA : 4 <read=GetSpeed, write=SetSpeed, comment="Range 1 to 16.99">;
- } SOIL <size=16, read=ReadSoil, comment=CommentSoil>;
- typedef struct ( byte amnt ){
- local int j;
- for( j = 0; j < amnt; j ++ )
- SOIL soilpatch;
- } FROW;
- typedef struct ( byte cols, byte rows )
- {
- local int i;
- for( i = 0; i < rows; i ++ )
- FROW fieldRow ( cols );
- if( (cols * rows) < 18 ) {
- i = cols * rows;
- struct {
- for( i; i < 18; i ++ )
- SOIL soilpatch;
- } dummyPatches <hidden=true>;
- }
- } FARM;
- typedef struct {
- long FP;
- uint Flags[2];
- ushort ID <comment="maybe?">;
- struct {
- ROOM location;
- ushort coordX;
- ushort coordY;
- } pos;
- } VILSTAT <size=44, comment=ReadVillagerLocation>;
- typedef struct {
- char name[19];
- ubyte slotID;
- uint type;
- ushort FP;
- } MONSTAT <name=ReadMonName, size=36>;
- // Highest level shipped for flowers/crops
- typedef struct {
- ubyte Unknown[19];
- ubyte Strawberry_lv;
- ubyte Cabbage_lv;
- ubyte PinkTurnip_lv;
- ubyte Onion_lv;
- ubyte Toyherb_lv;
- ubyte MoondropFlower_lv;
- ubyte CherryGrass_lv;
- ubyte LampGrass_lv;
- ubyte EmeryFlower_lv;
- ubyte BlueCrystal_lv;
- ubyte GoldenCabbage_lv;
- ubyte PinkMelon_lv;
- ubyte Pumpkin_lv;
- ubyte Cucumber_lv;
- ubyte Corn_lv;
- ubyte Tomato_lv;
- ubyte Eggplant_lv;
- ubyte Pineapple_lv;
- ubyte PinkCat_lv;
- ubyte Ironleaf_lv;
- ubyte FourLeafClover_lv;
- ubyte Fireflower_lv;
- ubyte GreenCrystal_lv;
- ubyte GoldenPumpkin_lv;
- ubyte Yam_lv;
- ubyte Potato_lv;
- ubyte Carrot_lv;
- ubyte GreenPepper_lv;
- ubyte Spinach_lv;
- ubyte CharmBlue_lv;
- ubyte AutumnGrass_lv;
- ubyte PomPomGrass_lv;
- ubyte RedCrystal_lv;
- ubyte GoldenPotato_lv;
- ubyte Turnip_lv;
- ubyte Radish_lv;
- ubyte Leek_lv;
- ubyte BokChoy_lv;
- ubyte NoelGrass_lv;
- ubyte WhiteCrystal_lv;
- ubyte GoldenTurnip_lv;
- ubyte HotHotFruit_lv;
- ubyte Fodder_lv;
- ubyte AppleTree_lv;
- ubyte OrangeTree_lv;
- ubyte GrapeTree_lv;
- ubyte TwinkleTree_lv;
- ubyte DungeonFlower_lv;
- ubyte SwordFlower_lv;
- ubyte ShieldFlower_lv;
- } SHIPL;
- // Money earned via items shipped
- typedef struct {
- local int i;
- for( i = 0; i < 1106; i ++ )
- ulong item : 30 <name=ReadShippedName>;
- } SHIPT;
- // FSize for shipped fish
- typedef struct {
- int MasuTrout;
- int Squid;
- int Taimen;
- int Sardine;
- int Char;
- int Chub;
- int GlitterSnapper;
- int Skipjack;
- int Turbot;
- int Gibelio;
- int Salmon;
- int Mackerel;
- int Needlefish;
- int Pike;
- int Sunsquid;
- int Shrimp;
- int Snapper;
- int ThrobbySnapper;
- int RainbowTrout;
- int Flounder;
- int Blowfish;
- int Yellowtail;
- int CrucianCarp;
- int Tuna;
- int Girella;
- int FallFlounder;
- int CherrySalmon;
- int LampSquid;
- int Lobster;
- int PondSmelt;
- int SandFlounder;
- int Rockfish;
- } SHIPF <size=132>;
- // Flags whether an item was shipped or not
- typedef struct {
- local int i;
- for( i = 0; i < 1108; i ++ )
- BFLAG item(i) <name=ReadItemBitName>;
- } SHIPB <size=139>;
- // Flags whether an item was picked up / in player possession?
- typedef struct {
- local int i;
- for( i = 0; i < 1108; i ++ )
- BFLAG item(i) <name=ReadItemBitName>;
- } PICKB <size=139>;
- //-----------------------------------
- // Define main structures
- typedef struct {
- uint CRC32<format=hex>;
- ubyte UnknownA[1];
- DIFF difficulty <comment="RF4S: Extra HELL flag @ 0x1EA3B">;
- ubyte UnknownB[6];
- uint clock_Minutes;
- uint clock_Hours;
- uint day;
- MONTH month;
- uint UnknownC[4];
- struct {
- ROOM room <read=ReadRoom>;
- ushort CoordX <comment="counts from left of screen">;
- ushort CoordY <comment="counts from top of screen">;
- } playerLocation ;
- ubyte UnknownD[4];
- GENDER gender;
- ubyte wateringCanCharges <comment="max. = 20?">;
- uint UnknownE;
- struct {
- uint lumber;
- uint stone;
- uint compost;
- uint fodder;
- } materials;
- uint money;
- uint UnknownF;
- } HEADER <size=84>;
- typedef struct {
- CHARSTAT player;
- CHARSTAT villager[27];
- BARNSTAT monsterbarn[10];
- } BTLSTATS;
- typedef struct {
- struct {
- SKILL shortSword;
- SKILL longSword;
- SKILL spear;
- SKILL axeHammer;
- SKILL dualBlades;
- SKILL fists;
- } Weapons;
- struct {
- SKILL fire;
- SKILL water;
- SKILL earth;
- SKILL wind;
- SKILL light;
- SKILL dark;
- SKILL love;
- } Magic;
- struct {
- SKILL farming;
- SKILL logging;
- SKILL mining;
- SKILL fishing;
- } Farming;
- struct {
- SKILL cooking;
- SKILL forging;
- SKILL chemistry;
- SKILL crafting;
- } Crafting;
- struct {
- SKILL searching;
- SKILL walking;
- SKILL sleeping;
- SKILL eating;
- } Adventure;
- struct {
- SKILL defense;
- SKILL resPoison;
- SKILL resSeal;
- SKILL resParalysis;
- SKILL resSleep;
- SKILL resFatigue;
- SKILL resCold;
- SKILL resKnockout;
- } Defense;
- struct {
- SKILL bathing;
- SKILL taming;
- SKILL throwing;
- SKILL leadership;
- SKILL bartering;
- } Other;
- SKILL Unknown[2] <hidden=true>;
- } SKILLS;
- typedef struct {
- EQUIPINV equipment;
- BACKPACK backpack;
- SPELLINV spellpack;
- FRIDGE fridge;
- STORAGE storage;
- WPNBOX weaponbox;
- WARDROBE wardrobe;
- TOOLBOX toolbox;
- SHIPBOX shippingbox;
- SHOPBOX shopbox;
- LIBRARY bookshelf;
- } ITEMS;
- typedef struct {
- local int i;
- for( i = 0; i < 76; i ++ )
- CROP fieldObject;
- } FOBJ;
- typedef struct {
- local int i;
- for( i = 0; i < 67; i ++ )
- OBJ object;
- } WOBJ <size=536>;
- typedef struct {
- struct {
- FOBJ mainFarm <comment="X 79-431 | Y 176-336 (field squares)">;
- FOBJ secondFarm <comment="">;
- FOBJ thirdFarm <comment="">;
- FOBJ fourthFarm <comment="">;
- FOBJ fifthFarm <comment="">;
- FOBJ springFarm <comment="">;
- FOBJ summerFarm <comment="">;
- FOBJ autumnFarm <comment="">;
- FOBJ winterFarm <comment="">;
- } farmObjects;
- struct {
- FARM mainFarm ( 6,3 ) <comment="First and central plot.">;
- FARM secondFarm ( 6,3 ) <comment="Bottom-left plot.">;
- FARM thirdFarm ( 6,3 ) <comment="Bottom-right plot.">;
- FARM fourthFarm ( 6,3 ) <comment="">;
- FARM fifthFarm ( 6,3 ) <comment="">;
- FARM springFarm ( 2,4 ) <comment="">;
- FARM summerFarm ( 2,2 ) <comment="">;
- FARM autumnFarm ( 3,3 ) <comment="Farm is 2x3 - 3rd (rightmost) column in each row is dummied out.">;
- FARM winterFarm ( 4,3 ) <comment="">;
- } fields <comment="Fields start top-left, count going right and down.">;
- } FARMS <size=10800>;
- typedef struct {
- local int i;
- struct {
- for( i = 0; i < 20; i ++ )
- MONSTAT monster;
- } monsterbarn[10] <size=720, optimize=false>;
- UNKNWN Unknown <size=368, hidden=true>;
- struct {
- VILSTAT Vishnal;
- VILSTAT Clorica;
- VILSTAT Volkanon;
- VILSTAT Forte;
- VILSTAT Kiel;
- VILSTAT Bado;
- VILSTAT Margaret;
- VILSTAT Dylas;
- VILSTAT Arthur;
- VILSTAT Porcoline;
- VILSTAT XiaoPai;
- VILSTAT LinFa;
- VILSTAT Amber;
- VILSTAT Illuminata;
- VILSTAT Doug;
- VILSTAT Blossom;
- VILSTAT Dolce;
- VILSTAT Jones;
- VILSTAT Nancy;
- VILSTAT Leon;
- VILSTAT Ventuswill;
- VILSTAT Son;
- VILSTAT Daughter;
- } villagers;
- } OSTATS;
- typedef struct {
- NPCINV DummyA;
- NPCINV Vishnal;
- NPCINV Clorica;
- NPCINV Volkanon;
- NPCINV Forte;
- NPCINV Kiel;
- NPCINV Bado;
- NPCINV Margaret;
- NPCINV Dylas;
- NPCINV Arthur;
- NPCINV Porcoline;
- NPCINV XiaoPai;
- NPCINV LinFa;
- NPCINV Amber;
- NPCINV Illuminata;
- NPCINV Doug;
- NPCINV Blossom;
- NPCINV Dolce;
- NPCINV Jones;
- NPCINV Nancy;
- NPCINV Leon;
- NPCINV Ventuswill;
- NPCINV Son;
- NPCINV Daughter;
- NPCINV Barrett;
- NPCINV Raven;
- NPCINV DummyB;
- } NPCEQ;
- typedef struct {
- ulong princessPoints <comment="Max 99999">;
- ulong tourists;
- ubyte Unknown <hidden=true>;
- ubyte monstersSlainToday <comment="First 10 monsters give PP">;
- ubyte UnknownA[4] <hidden=true>;
- ubyte : 5;
- ubyte bDisableTownEvents : 1;
- ubyte : 2;
- ubyte : 3;
- ubyte bDisableExpGain : 1;
- ubyte bDisableSkillGain : 1;
- ubyte bSeeMonsterLevels : 1;
- ubyte bSeeMonsterHP : 1;
- ulong UnknownB[3] <hidden=true>;
- ubyte monsterLevelIncrease <comment="# of times the monster level was increased">;
- ubyte UnknownC[7] <hidden=true>;
- struct {
- ulong : 1;
- ulong bFestBeanToss :1;
- ulong : 1;
- ulong bFestDeFluff : 1;
- ulong bFestTurnip : 1;
- ulong bFestTurnipFlurry : 1;
- ulong bFestQuizContest : 1;
- ulong : 1;
- ulong bFestFishingFrenzy : 1;
- ulong : 1;
- ulong bFestSquidCatch : 1;
- ulong : 1;
- ulong bFestSpringHarvest : 1;
- ulong : 2;
- ulong bFestWinterHarvest : 1;
- ulong bFestCooking : 1;
- ulong : 7;
- ulong : 1;
- ulong bFestChristmas : 1;
- ulong : 6;
- } festivalFlags;
- ubyte UnknownD[4] <hidden=true>;
- ulong festivalsOrdered <hidden=true, comment="Ordered once, not currently ordered">;
- MODEL appearanceChange;
- } MISC;
- //--------------------------------------------
- // Custom functions
- // Read out pseudo-float soil values
- string ReadFieldStat( uint fval, ubyte bitlength, float factor, ubyte hasSign, ubyte round ) {
- local string s;
- local double value, div;
- local uint temp = fval;
- local ubyte bLen = bitlength;
- local ubyte neg;
- //Printf( "Raw value: %d, Hex: 0x%04X \nValue's bit length: %d, Factor: %f (0x%08X) \n", temp, temp, bLen, factor, factor);
- if (factor) {
- temp <<= (32 - bLen);
- if (hasSign) {
- if ( temp & 0x80000000 )
- neg = 1;
- //else Printf( "Value is positive! \n");
- temp <<= 1;
- bLen -= 1;
- if( neg )
- //Printf( "Value is negative! Before: 0x%08X, after: 0x%08X \n", temp, ~temp + 1 );
- temp = ~temp;
- }
- temp >>= (32 - bLen);
- //Printf( "Value shifted RIGHT to the end by %d ( 16 - bitLength %d )! Now: %u, Hex: 0x%04X \n", ( 16 - bLen ), bLen, temp, temp);
- // Get maximum bit value and divide by factor ( max. variable value)
- // Get max bit value +1 if variable doesn't reach max value
- div = 1 << bLen;
- if( round )
- div -= 1;
- if( neg )
- div /= -factor;
- else
- div /= factor;
- // divide integer by value to get pseudo-"float"
- // Printf("temp: %d, div: %lf, result: %lf \n", temp, div, value / div );
- value = temp / div;
- //Printf( "Divided value by %d , now: %.18f, \n", temp, value);
- SPrintf( s, "%f", value );
- }
- else s = "No float!";
- // Put the var value into a buffer string via SPrintf
- //SPrintf( s, "Val: %d (0x%04X)", temp, temp );
- return s;
- }
- // Write back pseudo-float soil values
- string WriteFieldStat( double fval, ubyte bitlength, float factor, ubyte hasSign, ubyte round ) {
- local string s;
- local uint mask = -1;
- local uint temp;
- local ubyte bLen = bitlength;
- if (hasSign)
- bLen -= 1;
- // Shift FFFF mask left / right by # of unused bits (effectively, 16 - [number of bits in original value])
- // to get the bit length of our value in active bits
- mask <<= ( 32 - bLen );
- //Printf( "Shift mask LEFT by %d ( 32 - bitLength %d ), now: %u, Hex: 0x%08X \n", (32 - bLen), bLen, mask, mask);
- mask >>= ( 32 - bLen );
- //Printf( "Shift mask RIGHT by %d ( 32 - bitLength %d ), now: %u, Hex: 0x%08X \n", (32 - bLen), bLen, mask, mask);
- if( round )
- SPrintf( s, "%.lf", Abs( fval ) / factor * mask ); // round value by putting into a string at 0 precision
- else
- SPrintf( s, "%.lf", Abs( fval ) / factor * (mask + 1) ); // round value by putting into a string at 0 precision
- SScanf( s, "%u", temp); // read value back out as integer
- if ( temp > mask)
- temp = mask; // limit to maximum value
- //Printf( "Temp value: %u (0x%08X) \n", temp, temp);
- if ( hasSign && ( fval < 0 )) {
- //Printf( "Value is signed and input %lf is negative! \n", fval );
- temp <<= ( 32 - (bLen+1) );
- temp = ~ temp;
- temp >>= ( 32 - (bLen+1) );
- //Printf( "Value now: %u (0x%04X) \n", temp, temp );
- }
- SPrintf( s, "%u", temp);
- return s;
- }
- // Read & write values on a bitflag struct, so you don't have to
- // open it to modify / check
- string ReadBitflag( BFLAG &flag ) {
- local string s;
- SPrintf( s, "%d", flag.flag );
- return s;
- }
- void WriteBitflag( BFLAG &flag, string s ) {
- local ubyte input;
- SScanf( s, "%d", input );
- if( input )
- flag.flag = 1;
- else
- flag.flag = 0;
- }
- // Display soil health, defense and overall quality at a quick glance
- string ReadSoil( SOIL &soil ) {
- local string s;
- local float val;
- SScanf( GetOverall( soil.overallA ), "%f", val);
- // Put the var value into a buffer string via SPrintf
- SPrintf( s, "%dHP %d Def %.2f Ovrl", soil.HPc, soil.defense, val );
- return s;
- }
- // Display unknown soil values as comment for quick comparison
- string CommentSoil( SOIL &soil ) {
- local string s;
- SPrintf( s, "%u | %u", soil.UnknownA, soil.UnknownB );
- return s;
- }
- // Display skill level and exp
- string ReadSkillVal( SKILL &skl ) {
- local string s;
- // Put the var value into a buffer string via SPrintf
- SPrintf( s, "%d ( %d )", skl.level, skl.exp );
- return s;
- }
- // Display spell name
- string ReadSpell( SPELL &spl ) {
- local string s = "";
- if( spl.isActive != 0 )
- s = EnumToString( spl.spellID );
- return s;
- }
- // Display item name
- string ReadItem( ITEM &item ) {
- local string s = "";
- s = EnumToString( item.itemID );
- return s;
- }
- // Display location
- string ReadRoom( ROOM &room ) {
- local string s = "";
- s = EnumToString( room );
- if( s == "" )
- SPrintf(s, "%d", room);
- else
- s = StrDel( s, Strlen( s ) - 4, 4 ); // Remove the _XXX from name
- return s;
- }
- // Display villager location on otherStats
- string ReadVillagerLocation( VILSTAT &vil ) {
- local string s = "";
- s = EnumToString( vil.pos.location );
- if( s == "" )
- SPrintf(s, "%d", room);
- else
- s = StrDel( s, Strlen( s ) - 4, 4 ); // Remove the _XXX from name
- SPrintf( s, "%s (%d,%d)", s, vil.pos.coordX, vil.pos.coordY );
- return s;
- }
- // Display field object's name
- string ReadCropName( CROP &object ) {
- local string s = "";
- local float lvl;
- s = EnumToString( object.crop );
- if( s == "" )
- SPrintf(s, "%d", object.crop);
- else
- s = StrDel( s, Strlen( s ) - 2, 2 ); // Remove the _C from name
- if( object.crop > 37 ) {
- SScanf( ReadCropLvl( object.cropLevel ), "%f", lvl);
- SPrintf( s, "%s LV%.f", s, Floor( lvl ) );
- }
- return s;
- }
- // Display field object's coords
- string ReadCropValue( CROP &object ) {
- local string s = "";
- local float grw;
- if( object.crop > 0 )
- SPrintf( s, "[%d|%d] %dHP", object.coordX, object.coordY, object.health );
- if( object.growthProgress > 0 ) {
- SScanf( ReadCropGrowth( object.growthProgress ), "%f", grw);
- SPrintf( s, "%s %.1fD", s, grw);
- }
- return s;
- }
- // Display field object's unknown values for quick comparison
- string ReadCropComment( CROP &object ) {
- local string s = "";
- if( object.crop > 0 ) {
- SPrintf( s, "%X | %X | %X", object.UnknownA, object.UnknownB, object.UnknownC );
- if( object.levelChanged )
- s += " [Lv]";
- if( object.playerMade )
- s += " [P]";
- }
- return s;
- }
- // Display world object's name
- string ReadObjName( OBJ &object ) {
- local string s = "";
- s = EnumToString( object.object );
- if( s == "" )
- SPrintf(s, "%d", object.object);
- else
- s = StrDel( s, Strlen( s ) - 4, 4 ); // Remove the _XX from name
- return s;
- }
- // Display world object's coords
- string ReadObjValue( OBJ &object ) {
- local string s = "";
- s = EnumToString( object.room );
- if( s == "" )
- SPrintf(s, "%d", object.room);
- else
- s = StrDel( s, Strlen( s ) - 4, 4 ); // Remove the _XXX from name
- SPrintf( s, "%s (%d,%d) | %d", s, object.coordX, object.coordY, object.UnknownA );
- return s;
- }
- // Lmao holy shit this is a terrible way to find the array index of a value
- // Convert float to string to integer why do i have to do this
- // But it works for now, i hope
- string ReadShippedName( ulong &item ) {
- local string s;
- local double val;
- local ITEMID i;
- val = ( startof(item) - startof( parentof(item).item[0] ) );
- val = val * 8 / 30;
- SPrintf( s, "%.lf", val ); // why can't i just round nearest instead...
- SScanf( s, "%d", i);
- return EnumToString( i );
- }
- // Fetch monster name from otherstats for display in battlestats
- // Lmao this jank-ass array index gathering again, kill me
- // And i need TWO OF THEM this time
- string ReadMonNameB( CHARSTAT &monster ) {
- local string s;
- local int idx1, idx2;
- idx1 = ( startof(monster) - startof( parentof(monster).monster[0] ) );
- idx2 = (idx1 % 2000) / 100;
- idx1 /= 0x7D0;
- if( exists( otherStats.monsterbarn[idx1].monster[idx2] ) )
- // SPrintf(s, "%d", otherStats.monsterbarn[idx1].monster[idx2].FP);
- s += otherStats.monsterbarn[idx1].monster[idx2].name;
- else
- s = "monster";
- if( s != "" )
- return s;
- else
- return "(none)";
- }
- // Lets try something else to read bitflag item names
- string ReadItemBitName( BFLAG &flag ) {
- local ITEMID i = flag.idx;
- return EnumToString( i );
- }
- // Read and display monster names in otherstats
- string ReadMonName( MONSTAT &stats ) {
- local string s;
- s += stats.name;
- if( s != "" )
- return s;
- else
- return "(none)";
- }
- // Reverse bit order in a byte
- ubyte ReverseBits( ubyte bits ) {
- bits = (bits & 0xF0) >> 4 | (bits & 0x0F) << 4;
- bits = (bits & 0xCC) >> 2 | (bits & 0x33) << 2;
- bits = (bits & 0xAA) >> 1 | (bits & 0x55) << 1;
- return bits;
- }
- // Read & write reverse bit-order birthday, which is a PITA
- string ReadBDay( ubyte &val )
- {
- local string s;
- local ubyte bits = ReverseBits( val ) >> 3;
- SPrintf( s, "%d", bits );
- return s;
- }
- void WriteBDay( ubyte &val, string s ) {
- local ubyte bits;
- SScanf( s, "%d", bits );
- val = ReverseBits( bits ) >> 3;
- }
- // Read & write reverse bit-order birth month, still a PITA
- string ReadBMonth( ubyte &val )
- {
- local string s;
- local ubyte bits = ReverseBits( val ) >> 6;
- SPrintf( s, "%d", bits );
- return s;
- }
- void WriteBMonth( ubyte &val, string s ) {
- local ubyte bits;
- SScanf( s, "%d", bits );
- val = ReverseBits( bits ) >> 6;
- }
- // Get a nice display string for BDay
- string GetBDay( BDAY &bday ) {
- local string s;
- local ubyte day = ReverseBits( bday.day ) >> 3;
- local ubyte season = ReverseBits( bday.season ) >> 6;
- local MONTH month = season;
- SPrintf( s, "%d. %s", day, EnumToString(month) );
- return s;
- }
- // Display & modify crop level
- string ReadCropLvl( ushort &lvl ) {
- local string s;
- local float f1;
- SScanf( ReadFieldStat( lvl, 12, 16, 0, 0 ) , "%f", f1 );
- SPrintf(s, "%f", f1 + 1 );
- return s;
- }
- void WriteCropLvl( ushort &lvl, string s ) {
- local double value;
- SScanf( s, "%lf", value );
- value = Max( Abs(value) - 1, 0 ); // minimum 0
- SScanf( WriteFieldStat( value, 12, 16, 0, 0 ), "%u", lvl );
- }
- // Display & modify crop size bonus
- string ReadCropSize( ushort &size ) {
- return ReadFieldStat( size, 10, 2, 1, 0 );
- }
- void WriteCropSize( ushort &size, string s ) {
- local double value;
- SScanf( s, "%lf", value );
- SScanf( WriteFieldStat( value, 10, 2, 1, 0 ), "%u", size );
- }
- // Display & modify crop growth
- string ReadCropGrowth( uint &grw ) {
- return ReadFieldStat( grw, 17, 512, 0, 0 );
- }
- void WriteCropGrowth( uint &grw, string s ) {
- local double value;
- SScanf( s, "%lf", value );
- SScanf( WriteFieldStat( value, 17, 512, 0, 0 ), "%u", grw );
- }
- // Display & modify additional crop yield
- string ReadCropNum( ushort &num ) {
- return ReadFieldStat( num, 12, 8, 1, 0 );
- }
- void WriteCropNum( ushort &num, string s ) {
- local double value;
- SScanf( s, "%lf", value );
- SScanf( WriteFieldStat( value, 12, 8, 1, 0 ), "%u", num );
- }
- // All the silly helper functions for soil values
- string GetTmpSpeed( uint16 &fval ) {
- return ReadFieldStat( fval, 11, 8, 0, 1 );
- }
- void SetTmpSpeed( uint16 &fval, string s ) {
- local double value;
- SScanf( s, "%lf", value );
- SScanf( WriteFieldStat( value, 11, 8, 0, 1 ), "%u", fval );
- }
- string GetTmpNumber( uint16 &fval ) {
- return ReadFieldStat( fval, 11, 4, 1, 1 );
- }
- void SetTmpNumber( uint16 &fval, string s ) {
- local double value;
- SScanf( s, "%lf", value );
- SScanf( WriteFieldStat( value, 11, 4, 1, 1 ), "%u", fval );
- }
- string GetTmpQuality( uint16 &fval ) {
- return ReadFieldStat( fval, 10, 2, 1, 1 );
- }
- void SetTmpQuality( uint16 &fval, string s ) {
- local double value;
- SScanf( s, "%lf", value );
- SScanf( WriteFieldStat( value, 10, 2, 1, 1 ), "%u", fval );
- }
- string GetTmpSize( uint16 &fval ) {
- return ReadFieldStat( fval, 10, 2, 1, 1 );
- }
- void SetTmpSize( uint16 &fval, string s ) {
- local double value;
- SScanf( s, "%lf", value );
- SScanf( WriteFieldStat( value, 10, 2, 1, 1 ), "%u", fval );
- }
- string GetOverall( ubyte &fval ) {
- local string s;
- local float f1;
- local uint value = parentof(fval).overallA;
- value = (value << 8) + parentof(fval).overallB;
- SScanf( ReadFieldStat( value, 12, 16, 0, 0 ) , "%f", f1 );
- SPrintf(s, "%f", f1 + 1 );
- return s;
- }
- void SetOverall( ubyte &fval, string s ) {
- local float f1, f2;
- local double value;
- SScanf( s, "%lf", value );
- value = Abs( value );
- //Printf( "Received input string %s, read out value: %lf \n", s, value);
- f1 = Max( Floor(value) - 1, 0 ); // minimum 0
- f2 = Max( value - f1 - 1, 0 ); // minimum 0
- //Printf( "Split values into: ValA %f, ValB %f \n", f1, f2);
- SScanf( WriteFieldStat( f1, 4, 15, 0, 0 ) , "%u", parentof(fval).overallA );
- SScanf( WriteFieldStat( f2, 8, 1, 0, 0 ) , "%u", parentof(fval).overallB );
- }
- string GetSpeed( ubyte &fval ) {
- local string s;
- local float f1;
- local uint value = parentof(fval).speedA;
- value = (value << 8) + parentof(fval).speedB;
- SScanf( ReadFieldStat( value, 12, 16, 0, 0 ) , "%f", f1 );
- SPrintf(s, "%f", f1 + 1 );
- return s;
- }
- void SetSpeed( ubyte &fval, string s ) {
- local float f1, f2;
- local double value;
- SScanf( s, "%lf", value );
- value = Abs( value );
- f1 = Max( Floor(value) - 1, 0 ); // minimum 0
- f2 = Max( value - f1 - 1, 0 ); // minimum 0
- SScanf( WriteFieldStat( f1, 4, 15, 0, 0 ) , "%u", parentof(fval).speedA );
- SScanf( WriteFieldStat( f2, 8, 1, 0, 0 ) , "%u", parentof(fval).speedB );
- }
- string GetSize( ubyte &fval ) {
- local string s;
- local float f1;
- local uint value = parentof(fval).sizeA;
- value = (value << 8) + parentof(fval).sizeB;
- SScanf( ReadFieldStat( value, 12, 16, 0, 0 ) , "%f", f1 );
- SPrintf(s, "%f", f1 + 1 );
- return s;
- }
- void SetSize( ubyte &fval, string s ) {
- local float f1, f2;
- local double value;
- SScanf( s, "%lf", value );
- value = Abs( value );
- f1 = Max( Floor(value) - 1, 0 ); // minimum 0
- f2 = Max( value - f1 - 1, 0 ); // minimum 0
- SScanf( WriteFieldStat( f1, 4, 15, 0, 0 ) , "%u", parentof(fval).sizeA );
- SScanf( WriteFieldStat( f2, 8, 1, 0, 0 ) , "%u", parentof(fval).sizeB );
- }
- string GetQuality( ubyte &fval ) {
- local string s;
- local float f1;
- local uint value = parentof(fval).qualityA;
- value = (value << 8) + parentof(fval).qualityB;
- SScanf( ReadFieldStat( value, 12, 16, 0, 0 ) , "%f", f1 );
- SPrintf(s, "%f", f1 + 1 );
- return s;
- }
- void SetQuality( ubyte &fval, string s ) {
- local float f1, f2;
- local double value;
- SScanf( s, "%lf", value );
- value = Abs( value );
- f1 = Max( Floor(value) - 1, 0 ); // minimum 0
- f2 = Max( value - f1 - 1, 0 ); // minimum 0
- SScanf( WriteFieldStat( f1, 4, 15, 0, 0 ) , "%u", parentof(fval).qualityA );
- SScanf( WriteFieldStat( f2, 8, 1, 0, 0 ) , "%u", parentof(fval).qualityB );
- }
- string GetNumber( ubyte &fval ) {
- local string s;
- local float f1;
- local uint value = parentof(fval).numberA;
- value = (value << 8) + parentof(fval).numberB;
- SScanf( ReadFieldStat( value, 12, 16, 0, 0 ) , "%f", f1 );
- SPrintf(s, "%f", f1 + 1 );
- return s;
- }
- void SetNumber( ubyte &fval, string s ) {
- local float f1, f2;
- local double value;
- SScanf( s, "%lf", value );
- value = Abs( value );
- f1 = Max( Floor(value) - 1, 0 ); // minimum 0
- f2 = Max( value - f1 - 1, 0 ); // minimum 0
- SScanf( WriteFieldStat( f1, 4, 15, 0, 0 ) , "%u", parentof(fval).numberA );
- SScanf( WriteFieldStat( f2, 8, 1, 0, 0 ) , "%u", parentof(fval).numberB );
- }
- //-----------------------------------
- // Define file itself
- BitfieldDisablePadding();
- HEADER header;
- BTLSTATS battleStats;
- SKILLS skills <comment="Level ( Exp )">;
- ITEMS items;
- MAPB mapBits;
- UNKNWN UnknownStruct <size=1331, comment="Visited rooms / locations?">;
- FARMS farms;
- UNKNWN UnknownStruct2 <size=1024, comment="Overworld items? location(?) + CropID in pairs">;
- UNKNWN UnknownStruct3 <size=220, comment="Some kind of flag field?">;
- OSTATS otherStats;
- UNKNWN UnknownStruct4 <size=1576>;
- if ( FileSize() > 0x22400 ) // RF4S
- struct { char name[25]; } names_Unknown[10];
- else // RF4
- struct { char name[25]; } names_Unknown[5];
- SHIPL maxLevelsShipped <size=80, comment="Highest level shipped for seeds/produce">;
- if ( FileSize() == 0x22400 ) // RF4
- ubyte UnknownPadding <hidden=true>;
- WOBJ worldObjects <comment="Unknown amount">;
- UNKNWN UnknownStruct6 <size=650, comment="Hellstruct with reverse bit order values">;
- RECIP unlockedRecipes;
- NPCEQ npcInventories;
- uint seedRNG <comment="Seed for random things like harvest report">;
- UNKNWN UnknownStruct7 <size=116>;
- if ( FileSize() > 0x22400 ) // RF4S
- MISC misc <size=80>;
- else // RF4
- MISC misc <size=76>;
- SHIPT shippedTotal <comment="Total money earned per item shipped">;
- SHIPF shippedFishSize;
- PICKB hasOwnedItem <comment="Check ItemID; whether player has picked up / owned an item">;
- UNKNWN UnknownStruct8 <size=525>;
- uint Unknowns[2] <hidden=true>;
- SHIPB shippedFlags <comment="Whether played has ever shipped this item">;
- // Extremely jank birthday, but at least it's editable
- if ( FileSize() > 0x22400 ) // RF4S
- FSeek(0x1E8DE);
- else // RF4
- FSeek(0x1E862);
- BDAY playerBirthday;
Add Comment
Please, Sign In to add comment