diff options
| author | balloondude2 <55861555+balloondude2@users.noreply.github.com> | 2025-05-18 15:06:47 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-18 16:06:47 -0500 |
| commit | c01e3f42d9a813bfb70f586a538a2f24ca5b9e07 (patch) | |
| tree | 22a2a2887317e00310749a198785f81e5cd6ce4e | |
| parent | 089f845144da87a33fea21d6ba364d42de5fda60 (diff) | |
[Rando] Shuffle Grass v2 (#1155)
* Initial Commit for Grasssanity
* Migrate to Whole Numbers for consistency and fix Linux/macOS crash.
* baguette
* Implemented Romani Ranch grass checks.
* Some Grottos, ABC Enums
* Randomize poisoned + cleared swamp grass.
* Added more Termina Field Grottos
* Fix peahat grass location
* Address Grottos sharing Coors
* Snowhead region (wip)
* Trimmed out regrowing grass and reenumerated.
* Add Snowhead Region
* Add Lone Peak Shrine
* Add Ikana Region
* Finish Ikana grottos
* Revert ActorViewer
* re-add line end
* Add missing grass from Smiffics Strim
* Thrown Grass actors now drop their appropriate RC's
* remove comment
* Revert ActorViewer
* ugh
* Add missing Grass... again
* Logic cleanup
* Update using Archez suggestions
* Fixing grass... finally
* Initial Commit for Grasssanity
* Migrate to Whole Numbers for consistency and fix Linux/macOS crash.
* baguette
* Implemented Romani Ranch grass checks.
* Some Grottos, ABC Enums
* Randomize poisoned + cleared swamp grass.
* Trimmed out regrowing grass and reenumerated.
* Added more Termina Field Grottos
* Fix peahat grass location
* Address Grottos sharing Coors
* Snowhead region (wip)
* Add Snowhead Region
* Add Lone Peak Shrine
* Add Ikana Region
* Finish Ikana grottos
* Revert ActorViewer
* re-add line end
* Add missing grass from Smiffics Strim
* Thrown Grass actors now drop their appropriate RC's
* remove comment
* Revert ActorViewer
* ugh
* Add missing Grass... again
* Logic cleanup
* Update using Archez suggestions
* Fixing grass... finally
* Dev Rebase
* Use Entrance Builder where applicable.
* Clang
* remove unneeded Ternary, thanks Archez
* split regions and build
* prevent rando drops when not shuffled
* clang format
* fix include
---------
Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com>
Co-authored-by: Caladius <clatini88@gmail.com>
21 files changed, 3940 insertions, 266 deletions
diff --git a/mm/2s2h/GameInteractor/GameInteractor.h b/mm/2s2h/GameInteractor/GameInteractor.h index 01e5ca4f7..bcc84f4bc 100644 --- a/mm/2s2h/GameInteractor/GameInteractor.h +++ b/mm/2s2h/GameInteractor/GameInteractor.h @@ -219,6 +219,7 @@ typedef enum { VB_GIBDO_TRADE_SEQUENCE_TAKE_MORE_THAN_ONE_ITEM, VB_GIBDO_TRADE_SEQUENCE_DO_TRADE, VB_GET_ITEM_ACTION_FROM_MASK, + VB_GRASS_DROP_COLLECTIBLE, VB_GRANT_MAGIC_UPON_REQUEST, VB_SCOPENUTS_CONSIDER_FIRST_CYCLE, VB_JS_OVERRIDE_MASK_CHECK, diff --git a/mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp b/mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp index 03145c5ef..3797f6f22 100644 --- a/mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp +++ b/mm/2s2h/Rando/ActorBehavior/ActorBehavior.cpp @@ -132,6 +132,7 @@ void Rando::ActorBehavior::OnFileLoad() { Rando::ActorBehavior::InitItemBHeartBehavior(); Rando::ActorBehavior::InitItemGetBehavior(); Rando::ActorBehavior::InitObjKibakoBehavior(); + Rando::ActorBehavior::InitObjGrassBehavior(); Rando::ActorBehavior::InitObjMoonStoneBehavior(); Rando::ActorBehavior::InitObjSnowballBehavior(); Rando::ActorBehavior::InitObjTaruBehavior(); diff --git a/mm/2s2h/Rando/ActorBehavior/ActorBehavior.h b/mm/2s2h/Rando/ActorBehavior/ActorBehavior.h index d38dec113..59683149e 100644 --- a/mm/2s2h/Rando/ActorBehavior/ActorBehavior.h +++ b/mm/2s2h/Rando/ActorBehavior/ActorBehavior.h @@ -88,6 +88,7 @@ void InitEnZowBehavior(); void InitItemBHeartBehavior(); void InitItemGetBehavior(); void InitObjKibakoBehavior(); +void InitObjGrassBehavior(); void InitObjMoonStoneBehavior(); void InitObjSnowballBehavior(); void InitObjTaruBehavior(); diff --git a/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp b/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp new file mode 100644 index 000000000..613754d1a --- /dev/null +++ b/mm/2s2h/Rando/ActorBehavior/ObjGrass.cpp @@ -0,0 +1,1068 @@ +#include "ActorBehavior.h" +#include "public/bridge/consolevariablebridge.h" + +#include "2s2h/CustomItem/CustomItem.h" +#include "2s2h/Rando/Rando.h" +#include "2s2h/ShipInit.hpp" +#include "assets/2s2h_assets.h" + +extern "C" { +#include "variables.h" +#include "overlays/actors/ovl_Obj_Grass/z_obj_grass.h" +#include "overlays/actors/ovl_En_Kusa/z_en_kusa.h" +#include "overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.h" + +void ObjGrass_Draw(Actor* actor, PlayState* play); +} + +// clang-format off +std::map<int16_t, std::map<std::pair<float, float>, RandoCheckId>> overworldGrassMap = { + // Termina Field // + { SCENE_00KEIKOKU, + { + { { -3932.00f, 2092.00f }, RC_TERMINA_FIELD_GRASS_01 }, + { { -3954.00f, 2122.00f }, RC_TERMINA_FIELD_GRASS_02 }, + { { -3996.00f, 2118.00f }, RC_TERMINA_FIELD_GRASS_03 }, + { { -4012.00f, 2080.00f }, RC_TERMINA_FIELD_GRASS_04 }, + { { -3972.00f, 2066.00f }, RC_TERMINA_FIELD_GRASS_05 }, + { { -3901.00f, 2122.00f }, RC_TERMINA_FIELD_GRASS_06 }, + { { -3972.00f, 2166.00f }, RC_TERMINA_FIELD_GRASS_07 }, + { { -4043.00f, 2122.00f }, RC_TERMINA_FIELD_GRASS_08 }, + { { -4043.00f, 2050.00f }, RC_TERMINA_FIELD_GRASS_09 }, + { { -4008.00f, 2015.00f }, RC_TERMINA_FIELD_GRASS_10 }, + { { -3960.00f, 2007.00f }, RC_TERMINA_FIELD_GRASS_11 }, + { { -3930.00f, 2044.00f }, RC_TERMINA_FIELD_GRASS_12 }, + { { -3036.00f, 2613.00f }, RC_TERMINA_FIELD_GRASS_13 }, + { { -3058.00f, 2643.00f }, RC_TERMINA_FIELD_GRASS_14 }, + { { -3100.00f, 2639.00f }, RC_TERMINA_FIELD_GRASS_15 }, + { { -3116.00f, 2601.00f }, RC_TERMINA_FIELD_GRASS_16 }, + { { -3076.00f, 2587.00f }, RC_TERMINA_FIELD_GRASS_17 }, + { { -3005.00f, 2643.00f }, RC_TERMINA_FIELD_GRASS_18 }, + { { -3076.00f, 2687.00f }, RC_TERMINA_FIELD_GRASS_19 }, + { { -3147.00f, 2643.00f }, RC_TERMINA_FIELD_GRASS_20 }, + { { -3147.00f, 2571.00f }, RC_TERMINA_FIELD_GRASS_21 }, + { { -3112.00f, 2536.00f }, RC_TERMINA_FIELD_GRASS_22 }, + { { -3064.00f, 2528.00f }, RC_TERMINA_FIELD_GRASS_23 }, + { { -3034.00f, 2565.00f }, RC_TERMINA_FIELD_GRASS_24 }, + { { -2852.00f, 1585.00f }, RC_TERMINA_FIELD_GRASS_25 }, + { { -2874.00f, 1615.00f }, RC_TERMINA_FIELD_GRASS_26 }, + { { -2916.00f, 1611.00f }, RC_TERMINA_FIELD_GRASS_27 }, + { { -2932.00f, 1573.00f }, RC_TERMINA_FIELD_GRASS_28 }, + { { -2892.00f, 1559.00f }, RC_TERMINA_FIELD_GRASS_29 }, + { { -2821.00f, 1615.00f }, RC_TERMINA_FIELD_GRASS_30 }, + { { -2892.00f, 1659.00f }, RC_TERMINA_FIELD_GRASS_31 }, + { { -2963.00f, 1615.00f }, RC_TERMINA_FIELD_GRASS_32 }, + { { -2963.00f, 1543.00f }, RC_TERMINA_FIELD_GRASS_33 }, + { { -2928.00f, 1508.00f }, RC_TERMINA_FIELD_GRASS_34 }, + { { -2880.00f, 1500.00f }, RC_TERMINA_FIELD_GRASS_35 }, + { { -2850.00f, 1537.00f }, RC_TERMINA_FIELD_GRASS_36 }, + { { -2676.00f, -1137.00f }, RC_TERMINA_FIELD_GRASS_37 }, + { { -2698.00f, -1107.00f }, RC_TERMINA_FIELD_GRASS_38 }, + { { -2740.00f, -1111.00f }, RC_TERMINA_FIELD_GRASS_39 }, + { { -2756.00f, -1149.00f }, RC_TERMINA_FIELD_GRASS_40 }, + { { -2716.00f, -1163.00f }, RC_TERMINA_FIELD_GRASS_41 }, + { { -2645.00f, -1107.00f }, RC_TERMINA_FIELD_GRASS_42 }, + { { -2716.00f, -1063.00f }, RC_TERMINA_FIELD_GRASS_43 }, + { { -2787.00f, -1107.00f }, RC_TERMINA_FIELD_GRASS_44 }, + { { -2787.00f, -1179.00f }, RC_TERMINA_FIELD_GRASS_45 }, + { { -2752.00f, -1214.00f }, RC_TERMINA_FIELD_GRASS_46 }, + { { -2704.00f, -1222.00f }, RC_TERMINA_FIELD_GRASS_47 }, + { { -2674.00f, -1185.00f }, RC_TERMINA_FIELD_GRASS_48 }, + { { -2645.00f, 4303.00f }, RC_TERMINA_FIELD_GRASS_49 }, + { { -2667.00f, 4333.00f }, RC_TERMINA_FIELD_GRASS_50 }, + { { -2709.00f, 4329.00f }, RC_TERMINA_FIELD_GRASS_51 }, + { { -2725.00f, 4291.00f }, RC_TERMINA_FIELD_GRASS_52 }, + { { -2685.00f, 4277.00f }, RC_TERMINA_FIELD_GRASS_53 }, + { { -2614.00f, 4333.00f }, RC_TERMINA_FIELD_GRASS_54 }, + { { -2685.00f, 4377.00f }, RC_TERMINA_FIELD_GRASS_55 }, + { { -2756.00f, 4333.00f }, RC_TERMINA_FIELD_GRASS_56 }, + { { -2756.00f, 4261.00f }, RC_TERMINA_FIELD_GRASS_57 }, + { { -2721.00f, 4226.00f }, RC_TERMINA_FIELD_GRASS_58 }, + { { -2673.00f, 4218.00f }, RC_TERMINA_FIELD_GRASS_59 }, + { { -2643.00f, 4255.00f }, RC_TERMINA_FIELD_GRASS_60 }, + { { -1418.00f, -2600.00f }, RC_TERMINA_FIELD_GRASS_61 }, + { { -1440.00f, -2570.00f }, RC_TERMINA_FIELD_GRASS_62 }, + { { -1482.00f, -2574.00f }, RC_TERMINA_FIELD_GRASS_63 }, + { { -1498.00f, -2612.00f }, RC_TERMINA_FIELD_GRASS_64 }, + { { -1458.00f, -2626.00f }, RC_TERMINA_FIELD_GRASS_65 }, + { { -1387.00f, -2570.00f }, RC_TERMINA_FIELD_GRASS_66 }, + { { -1458.00f, -2526.00f }, RC_TERMINA_FIELD_GRASS_67 }, + { { -1529.00f, -2570.00f }, RC_TERMINA_FIELD_GRASS_68 }, + { { -1529.00f, -2642.00f }, RC_TERMINA_FIELD_GRASS_69 }, + { { -1494.00f, -2677.00f }, RC_TERMINA_FIELD_GRASS_70 }, + { { -1446.00f, -2685.00f }, RC_TERMINA_FIELD_GRASS_71 }, + { { -1416.00f, -2648.00f }, RC_TERMINA_FIELD_GRASS_72 }, + { { -1383.00f, 3960.00f }, RC_TERMINA_FIELD_GRASS_73 }, + { { -1405.00f, 3990.00f }, RC_TERMINA_FIELD_GRASS_74 }, + { { -1447.00f, 3986.00f }, RC_TERMINA_FIELD_GRASS_75 }, + { { -1463.00f, 3948.00f }, RC_TERMINA_FIELD_GRASS_76 }, + { { -1423.00f, 3934.00f }, RC_TERMINA_FIELD_GRASS_77 }, + { { -1352.00f, 3990.00f }, RC_TERMINA_FIELD_GRASS_78 }, + { { -1423.00f, 4034.00f }, RC_TERMINA_FIELD_GRASS_79 }, + { { -1494.00f, 3990.00f }, RC_TERMINA_FIELD_GRASS_80 }, + { { -1494.00f, 3918.00f }, RC_TERMINA_FIELD_GRASS_81 }, + { { -1459.00f, 3883.00f }, RC_TERMINA_FIELD_GRASS_82 }, + { { -1411.00f, 3875.00f }, RC_TERMINA_FIELD_GRASS_83 }, + { { -1381.00f, 3912.00f }, RC_TERMINA_FIELD_GRASS_84 }, + { { -271.00f, 3243.00f }, RC_TERMINA_FIELD_GRASS_85 }, + { { -293.00f, 3273.00f }, RC_TERMINA_FIELD_GRASS_86 }, + { { -335.00f, 3269.00f }, RC_TERMINA_FIELD_GRASS_87 }, + { { -351.00f, 3231.00f }, RC_TERMINA_FIELD_GRASS_88 }, + { { -311.00f, 3217.00f }, RC_TERMINA_FIELD_GRASS_89 }, + { { -240.00f, 3273.00f }, RC_TERMINA_FIELD_GRASS_90 }, + { { -311.00f, 3317.00f }, RC_TERMINA_FIELD_GRASS_91 }, + { { -382.00f, 3273.00f }, RC_TERMINA_FIELD_GRASS_92 }, + { { -382.00f, 3201.00f }, RC_TERMINA_FIELD_GRASS_93 }, + { { -347.00f, 3166.00f }, RC_TERMINA_FIELD_GRASS_94 }, + { { -299.00f, 3158.00f }, RC_TERMINA_FIELD_GRASS_95 }, + { { -269.00f, 3195.00f }, RC_TERMINA_FIELD_GRASS_96 }, + { { 954.00f, -2549.00f }, RC_TERMINA_FIELD_GRASS_97 }, + { { 932.00f, -2519.00f }, RC_TERMINA_FIELD_GRASS_98 }, + { { 890.00f, -2523.00f }, RC_TERMINA_FIELD_GRASS_99 }, + { { 874.00f, -2561.00f }, RC_TERMINA_FIELD_GRASS_100 }, + { { 914.00f, -2575.00f }, RC_TERMINA_FIELD_GRASS_101 }, + { { 985.00f, -2519.00f }, RC_TERMINA_FIELD_GRASS_102 }, + { { 914.00f, -2475.00f }, RC_TERMINA_FIELD_GRASS_103 }, + { { 843.00f, -2519.00f }, RC_TERMINA_FIELD_GRASS_104 }, + { { 843.00f, -2591.00f }, RC_TERMINA_FIELD_GRASS_105 }, + { { 878.00f, -2626.00f }, RC_TERMINA_FIELD_GRASS_106 }, + { { 926.00f, -2634.00f }, RC_TERMINA_FIELD_GRASS_107 }, + { { 956.00f, -2597.00f }, RC_TERMINA_FIELD_GRASS_108 }, + { { 1286.00f, 3183.00f }, RC_TERMINA_FIELD_GRASS_109 }, + { { 1264.00f, 3213.00f }, RC_TERMINA_FIELD_GRASS_110 }, + { { 1222.00f, 3209.00f }, RC_TERMINA_FIELD_GRASS_111 }, + { { 1206.00f, 3171.00f }, RC_TERMINA_FIELD_GRASS_112 }, + { { 1246.00f, 3157.00f }, RC_TERMINA_FIELD_GRASS_113 }, + { { 1317.00f, 3213.00f }, RC_TERMINA_FIELD_GRASS_114 }, + { { 1246.00f, 3257.00f }, RC_TERMINA_FIELD_GRASS_115 }, + { { 1175.00f, 3213.00f }, RC_TERMINA_FIELD_GRASS_116 }, + { { 1175.00f, 3141.00f }, RC_TERMINA_FIELD_GRASS_117 }, + { { 1210.00f, 3106.00f }, RC_TERMINA_FIELD_GRASS_118 }, + { { 1258.00f, 3098.00f }, RC_TERMINA_FIELD_GRASS_119 }, + { { 1288.00f, 3135.00f }, RC_TERMINA_FIELD_GRASS_120 }, + { { 1554.00f, 2053.00f }, RC_TERMINA_FIELD_GRASS_121 }, + { { 1532.00f, 2083.00f }, RC_TERMINA_FIELD_GRASS_122 }, + { { 1490.00f, 2079.00f }, RC_TERMINA_FIELD_GRASS_123 }, + { { 1474.00f, 2041.00f }, RC_TERMINA_FIELD_GRASS_124 }, + { { 1514.00f, 2027.00f }, RC_TERMINA_FIELD_GRASS_125 }, + { { 1585.00f, 2083.00f }, RC_TERMINA_FIELD_GRASS_126 }, + { { 1514.00f, 2127.00f }, RC_TERMINA_FIELD_GRASS_127 }, + { { 1443.00f, 2083.00f }, RC_TERMINA_FIELD_GRASS_128 }, + { { 1443.00f, 2011.00f }, RC_TERMINA_FIELD_GRASS_129 }, + { { 1478.00f, 1976.00f }, RC_TERMINA_FIELD_GRASS_130 }, + { { 1526.00f, 1968.00f }, RC_TERMINA_FIELD_GRASS_131 }, + { { 1556.00f, 2005.00f }, RC_TERMINA_FIELD_GRASS_132 }, + { { 1770.00f, 2736.00f }, RC_TERMINA_FIELD_GRASS_133 }, + { { 1748.00f, 2766.00f }, RC_TERMINA_FIELD_GRASS_134 }, + { { 1706.00f, 2762.00f }, RC_TERMINA_FIELD_GRASS_135 }, + { { 1690.00f, 2724.00f }, RC_TERMINA_FIELD_GRASS_136 }, + { { 1730.00f, 2710.00f }, RC_TERMINA_FIELD_GRASS_137 }, + { { 1801.00f, 2766.00f }, RC_TERMINA_FIELD_GRASS_138 }, + { { 1730.00f, 2810.00f }, RC_TERMINA_FIELD_GRASS_139 }, + { { 1659.00f, 2766.00f }, RC_TERMINA_FIELD_GRASS_140 }, + { { 1659.00f, 2694.00f }, RC_TERMINA_FIELD_GRASS_141 }, + { { 1694.00f, 2659.00f }, RC_TERMINA_FIELD_GRASS_142 }, + { { 1742.00f, 2651.00f }, RC_TERMINA_FIELD_GRASS_143 }, + { { 1772.00f, 2688.00f }, RC_TERMINA_FIELD_GRASS_144 }, + { { 2007.00f, -1295.00f }, RC_TERMINA_FIELD_GRASS_145 }, + { { 1985.00f, -1265.00f }, RC_TERMINA_FIELD_GRASS_146 }, + { { 1943.00f, -1269.00f }, RC_TERMINA_FIELD_GRASS_147 }, + { { 1927.00f, -1307.00f }, RC_TERMINA_FIELD_GRASS_148 }, + { { 1967.00f, -1321.00f }, RC_TERMINA_FIELD_GRASS_149 }, + { { 2038.00f, -1265.00f }, RC_TERMINA_FIELD_GRASS_150 }, + { { 1967.00f, -1221.00f }, RC_TERMINA_FIELD_GRASS_151 }, + { { 1896.00f, -1265.00f }, RC_TERMINA_FIELD_GRASS_152 }, + { { 1896.00f, -1337.00f }, RC_TERMINA_FIELD_GRASS_153 }, + { { 1931.00f, -1372.00f }, RC_TERMINA_FIELD_GRASS_154 }, + { { 1979.00f, -1380.00f }, RC_TERMINA_FIELD_GRASS_155 }, + { { 2009.00f, -1343.00f }, RC_TERMINA_FIELD_GRASS_156 }, + { { 2637.00f, 565.00f }, RC_TERMINA_FIELD_GRASS_157 }, + { { 2615.00f, 595.00f }, RC_TERMINA_FIELD_GRASS_158 }, + { { 2573.00f, 591.00f }, RC_TERMINA_FIELD_GRASS_159 }, + { { 2557.00f, 553.00f }, RC_TERMINA_FIELD_GRASS_160 }, + { { 2597.00f, 539.00f }, RC_TERMINA_FIELD_GRASS_161 }, + { { 2668.00f, 595.00f }, RC_TERMINA_FIELD_GRASS_162 }, + { { 2597.00f, 639.00f }, RC_TERMINA_FIELD_GRASS_163 }, + { { 2526.00f, 595.00f }, RC_TERMINA_FIELD_GRASS_164 }, + { { 2526.00f, 523.00f }, RC_TERMINA_FIELD_GRASS_165 }, + { { 2561.00f, 488.00f }, RC_TERMINA_FIELD_GRASS_166 }, + { { 2609.00f, 480.00f }, RC_TERMINA_FIELD_GRASS_167 }, + { { 2639.00f, 517.00f }, RC_TERMINA_FIELD_GRASS_168 }, + { { 2718.00f, 2414.00f }, RC_TERMINA_FIELD_GRASS_169 }, + { { 2696.00f, 2444.00f }, RC_TERMINA_FIELD_GRASS_170 }, + { { 2654.00f, 2440.00f }, RC_TERMINA_FIELD_GRASS_171 }, + { { 2638.00f, 2402.00f }, RC_TERMINA_FIELD_GRASS_172 }, + { { 2678.00f, 2388.00f }, RC_TERMINA_FIELD_GRASS_173 }, + { { 2749.00f, 2444.00f }, RC_TERMINA_FIELD_GRASS_174 }, + { { 2678.00f, 2488.00f }, RC_TERMINA_FIELD_GRASS_175 }, + { { 2607.00f, 2444.00f }, RC_TERMINA_FIELD_GRASS_176 }, + { { 2607.00f, 2372.00f }, RC_TERMINA_FIELD_GRASS_177 }, + { { 2642.00f, 2337.00f }, RC_TERMINA_FIELD_GRASS_178 }, + { { 2690.00f, 2329.00f }, RC_TERMINA_FIELD_GRASS_179 }, + { { 2720.00f, 2366.00f }, RC_TERMINA_FIELD_GRASS_180 }, + { { 2933.00f, 1832.00f }, RC_TERMINA_FIELD_GRASS_181 }, + { { 2911.00f, 1862.00f }, RC_TERMINA_FIELD_GRASS_182 }, + { { 2869.00f, 1858.00f }, RC_TERMINA_FIELD_GRASS_183 }, + { { 2853.00f, 1820.00f }, RC_TERMINA_FIELD_GRASS_184 }, + { { 2893.00f, 1806.00f }, RC_TERMINA_FIELD_GRASS_185 }, + { { 2964.00f, 1862.00f }, RC_TERMINA_FIELD_GRASS_186 }, + { { 2893.00f, 1906.00f }, RC_TERMINA_FIELD_GRASS_187 }, + { { 2822.00f, 1862.00f }, RC_TERMINA_FIELD_GRASS_188 }, + { { 2822.00f, 1790.00f }, RC_TERMINA_FIELD_GRASS_189 }, + { { 2857.00f, 1755.00f }, RC_TERMINA_FIELD_GRASS_190 }, + { { 2905.00f, 1747.00f }, RC_TERMINA_FIELD_GRASS_191 }, + { { 2935.00f, 1784.00f }, RC_TERMINA_FIELD_GRASS_192 }, + { { 3847.00f, 742.00f }, RC_TERMINA_FIELD_GRASS_193 }, + { { 3825.00f, 772.00f }, RC_TERMINA_FIELD_GRASS_194 }, + { { 3783.00f, 768.00f }, RC_TERMINA_FIELD_GRASS_195 }, + { { 3767.00f, 730.00f }, RC_TERMINA_FIELD_GRASS_196 }, + { { 3807.00f, 716.00f }, RC_TERMINA_FIELD_GRASS_197 }, + { { 3878.00f, 772.00f }, RC_TERMINA_FIELD_GRASS_198 }, + { { 3807.00f, 816.00f }, RC_TERMINA_FIELD_GRASS_199 }, + { { 3736.00f, 772.00f }, RC_TERMINA_FIELD_GRASS_200 }, + { { 3736.00f, 700.00f }, RC_TERMINA_FIELD_GRASS_201 }, + { { 3771.00f, 665.00f }, RC_TERMINA_FIELD_GRASS_202 }, + { { 3819.00f, 657.00f }, RC_TERMINA_FIELD_GRASS_203 }, + { { 3849.00f, 694.00f }, RC_TERMINA_FIELD_GRASS_204 }, + { { 4455.00f, 418.00f }, RC_TERMINA_FIELD_GRASS_205 }, + { { 4433.00f, 448.00f }, RC_TERMINA_FIELD_GRASS_206 }, + { { 4391.00f, 444.00f }, RC_TERMINA_FIELD_GRASS_207 }, + { { 4375.00f, 406.00f }, RC_TERMINA_FIELD_GRASS_208 }, + { { 4415.00f, 392.00f }, RC_TERMINA_FIELD_GRASS_209 }, + { { 4486.00f, 448.00f }, RC_TERMINA_FIELD_GRASS_210 }, + { { 4415.00f, 492.00f }, RC_TERMINA_FIELD_GRASS_211 }, + { { 4344.00f, 448.00f }, RC_TERMINA_FIELD_GRASS_212 }, + { { 4344.00f, 376.00f }, RC_TERMINA_FIELD_GRASS_213 }, + { { 4379.00f, 341.00f }, RC_TERMINA_FIELD_GRASS_214 }, + { { 4427.00f, 333.00f }, RC_TERMINA_FIELD_GRASS_215 }, + { { 4457.00f, 370.00f }, RC_TERMINA_FIELD_GRASS_216 }, + } }, + // Great Bay Coast + { SCENE_30GYOSON, + { + { { 863.00f, 4646.00f }, RC_GREAT_BAY_COAST_GRASS_01 }, + { { 769.00f, 4647.00f }, RC_GREAT_BAY_COAST_GRASS_02 }, + { { 885.00f, 4881.00f }, RC_GREAT_BAY_COAST_GRASS_03 }, + { { 793.00f, 4880.00f }, RC_GREAT_BAY_COAST_GRASS_04 }, + { { 782.00f, 4766.00f }, RC_GREAT_BAY_COAST_GRASS_05 }, + } }, + // Clock Town + { SCENE_ALLEY, + { + { { -1900.00f, 316.00f }, RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_01 }, + { { -1921.00f, 228.00f }, RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_02 }, + { { -1864.00f, 216.00f }, RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_03 }, + } }, + // Romani Ranch + { SCENE_F01, + { + { { -135.00f, 1834.00f }, RC_ROMANI_RANCH_GRASS_01 }, + { { -157.00f, 1864.00f }, RC_ROMANI_RANCH_GRASS_02 }, + { { -199.00f, 1860.00f }, RC_ROMANI_RANCH_GRASS_03 }, + { { -215.00f, 1822.00f }, RC_ROMANI_RANCH_GRASS_04 }, + { { -175.00f, 1808.00f }, RC_ROMANI_RANCH_GRASS_05 }, + { { -104.00f, 1864.00f }, RC_ROMANI_RANCH_GRASS_06 }, + { { -175.00f, 1908.00f }, RC_ROMANI_RANCH_GRASS_07 }, + { { -246.00f, 1864.00f }, RC_ROMANI_RANCH_GRASS_08 }, + { { -246.00f, 1792.00f }, RC_ROMANI_RANCH_GRASS_09 }, + { { -211.00f, 1757.00f }, RC_ROMANI_RANCH_GRASS_10 }, + { { -163.00f, 1749.00f }, RC_ROMANI_RANCH_GRASS_11 }, + { { -133.00f, 1786.00f }, RC_ROMANI_RANCH_GRASS_12 }, + { { -1529.00f, 1630.00f }, RC_ROMANI_RANCH_GRASS_13 }, + { { -1551.00f, 1660.00f }, RC_ROMANI_RANCH_GRASS_14 }, + { { -1593.00f, 1656.00f }, RC_ROMANI_RANCH_GRASS_15 }, + { { -1609.00f, 1618.00f }, RC_ROMANI_RANCH_GRASS_16 }, + { { -1569.00f, 1604.00f }, RC_ROMANI_RANCH_GRASS_17 }, + { { -1498.00f, 1660.00f }, RC_ROMANI_RANCH_GRASS_18 }, + { { -1569.00f, 1704.00f }, RC_ROMANI_RANCH_GRASS_19 }, + { { -1640.00f, 1660.00f }, RC_ROMANI_RANCH_GRASS_20 }, + { { -1640.00f, 1588.00f }, RC_ROMANI_RANCH_GRASS_21 }, + { { -1605.00f, 1553.00f }, RC_ROMANI_RANCH_GRASS_22 }, + { { -1557.00f, 1545.00f }, RC_ROMANI_RANCH_GRASS_23 }, + { { -1527.00f, 1582.00f }, RC_ROMANI_RANCH_GRASS_24 }, + { { 1874.00f, 1167.00f }, RC_ROMANI_RANCH_GRASS_25 }, + { { 1852.00f, 1197.00f }, RC_ROMANI_RANCH_GRASS_26 }, + { { 1810.00f, 1193.00f }, RC_ROMANI_RANCH_GRASS_27 }, + { { 1794.00f, 1155.00f }, RC_ROMANI_RANCH_GRASS_28 }, + { { 1834.00f, 1141.00f }, RC_ROMANI_RANCH_GRASS_29 }, + { { 1905.00f, 1197.00f }, RC_ROMANI_RANCH_GRASS_30 }, + { { 1834.00f, 1241.00f }, RC_ROMANI_RANCH_GRASS_31 }, + { { 1763.00f, 1197.00f }, RC_ROMANI_RANCH_GRASS_32 }, + { { 1763.00f, 1125.00f }, RC_ROMANI_RANCH_GRASS_33 }, + { { 1798.00f, 1090.00f }, RC_ROMANI_RANCH_GRASS_34 }, + { { 1846.00f, 1082.00f }, RC_ROMANI_RANCH_GRASS_35 }, + { { 1876.00f, 1119.00f }, RC_ROMANI_RANCH_GRASS_36 }, + { { 1203.00f, -1379.00f }, RC_ROMANI_RANCH_GRASS_37 }, + { { 1181.00f, -1349.00f }, RC_ROMANI_RANCH_GRASS_38 }, + { { 1139.00f, -1353.00f }, RC_ROMANI_RANCH_GRASS_39 }, + { { 1123.00f, -1391.00f }, RC_ROMANI_RANCH_GRASS_40 }, + { { 1163.00f, -1405.00f }, RC_ROMANI_RANCH_GRASS_41 }, + { { 1234.00f, -1349.00f }, RC_ROMANI_RANCH_GRASS_42 }, + { { 1163.00f, -1305.00f }, RC_ROMANI_RANCH_GRASS_43 }, + { { 1092.00f, -1349.00f }, RC_ROMANI_RANCH_GRASS_44 }, + { { 1092.00f, -1421.00f }, RC_ROMANI_RANCH_GRASS_45 }, + { { 1127.00f, -1456.00f }, RC_ROMANI_RANCH_GRASS_46 }, + { { 1175.00f, -1464.00f }, RC_ROMANI_RANCH_GRASS_47 }, + { { 1205.00f, -1427.00f }, RC_ROMANI_RANCH_GRASS_48 }, + { { -223.00f, -2271.00f }, RC_ROMANI_RANCH_GRASS_49 }, + { { -143.00f, -2271.00f }, RC_ROMANI_RANCH_GRASS_50 }, + { { -166.00f, -2214.00f }, RC_ROMANI_RANCH_GRASS_51 }, + { { -223.00f, -2191.00f }, RC_ROMANI_RANCH_GRASS_52 }, + { { -280.00f, -2214.00f }, RC_ROMANI_RANCH_GRASS_53 }, + { { -303.00f, -2271.00f }, RC_ROMANI_RANCH_GRASS_54 }, + { { -280.00f, -2328.00f }, RC_ROMANI_RANCH_GRASS_55 }, + { { -223.00f, -2351.00f }, RC_ROMANI_RANCH_GRASS_56 }, + { { -166.00f, -2328.00f }, RC_ROMANI_RANCH_GRASS_57 }, + } }, + // Southern Swamp(Cleaned) + { SCENE_20SICHITAI2, + { + { { 115.00f, -977.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_01 }, + { { 93.00f, -947.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_02 }, + { { 51.00f, -951.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_03 }, + { { 35.00f, -989.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_04 }, + { { 75.00f, -1003.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_05 }, + { { 146.00f, -947.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_06 }, + { { 75.00f, -903.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_07 }, + { { 4.00f, -947.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_08 }, + { { 4.00f, -1019.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_09 }, + { { 39.00f, -1054.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_10 }, + { { 87.00f, -1062.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_11 }, + { { 117.00f, -1025.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_12 }, + { { 3013.00f, -896.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_13 }, + { { 3093.00f, -896.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_14 }, + { { 3070.00f, -839.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_15 }, + { { 3013.00f, -816.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_16 }, + { { 2956.00f, -839.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_17 }, + { { 2933.00f, -896.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_18 }, + { { 2956.00f, -953.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_19 }, + { { 3013.00f, -976.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_20 }, + { { 3070.00f, -953.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_21 }, + { { 2982.00f, -1255.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_22 }, + { { 3062.00f, -1255.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_23 }, + { { 3039.00f, -1198.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_24 }, + { { 2982.00f, -1175.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_25 }, + { { 2925.00f, -1198.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_26 }, + { { 2902.00f, -1255.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_27 }, + { { 2925.00f, -1312.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_28 }, + { { 2982.00f, -1335.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_29 }, + { { 3039.00f, -1312.00f }, RC_SOUTHERN_SWAMP_CLEARED_GRASS_30 }, + } }, + // Southern Swamp(Poisoned) + { SCENE_20SICHITAI, + { + { { 115.00f, -977.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_01 }, + { { 93.00f, -947.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_02 }, + { { 51.00f, -951.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_03 }, + { { 35.00f, -989.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_04 }, + { { 75.00f, -1003.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_05 }, + { { 146.00f, -947.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_06 }, + { { 75.00f, -903.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_07 }, + { { 4.00f, -947.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_08 }, + { { 4.00f, -1019.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_09 }, + { { 39.00f, -1054.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_10 }, + { { 87.00f, -1062.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_11 }, + { { 117.00f, -1025.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_12 }, + { { 3013.00f, -896.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_13 }, + { { 3093.00f, -896.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_14 }, + { { 3070.00f, -839.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_15 }, + { { 3013.00f, -816.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_16 }, + { { 2956.00f, -839.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_17 }, + { { 2933.00f, -896.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_18 }, + { { 2956.00f, -953.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_19 }, + { { 3013.00f, -976.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_20 }, + { { 3070.00f, -953.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_21 }, + { { 2982.00f, -1255.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_22 }, + { { 3062.00f, -1255.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_23 }, + { { 3039.00f, -1198.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_24 }, + { { 2982.00f, -1175.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_25 }, + { { 2925.00f, -1198.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_26 }, + { { 2902.00f, -1255.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_27 }, + { { 2925.00f, -1312.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_28 }, + { { 2982.00f, -1335.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_29 }, + { { 3039.00f, -1312.00f }, RC_SOUTHERN_SWAMP_POISON_GRASS_30 }, + } }, + // Road to Southern Swamp + { SCENE_24KEMONOMITI, + { + { { 2734.00f, 3399.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_01 }, + { { 2757.00f, 3443.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_02 }, + { { 127.00f, 1839.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_03 }, + { { 47.00f, 1839.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_04 }, + { { 70.00f, 1782.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_05 }, + { { 127.00f, 1759.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_06 }, + { { 184.00f, 1782.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_07 }, + { { 207.00f, 1839.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_08 }, + { { 184.00f, 1896.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_09 }, + { { 127.00f, 1919.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_10 }, + { { 70.00f, 1896.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_11 }, + { { 321.00f, 1647.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_12 }, + { { 241.00f, 1647.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_13 }, + { { 264.00f, 1590.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_14 }, + { { 321.00f, 1567.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_15 }, + { { 378.00f, 1590.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_16 }, + { { 401.00f, 1647.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_17 }, + { { 378.00f, 1704.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_18 }, + { { 321.00f, 1727.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_19 }, + { { 264.00f, 1704.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_20 }, + } }, + { SCENE_10YUKIYAMANOMURA2, + { + { { -279.00f, 1379.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_01 }, + { { -203.00f, 1155.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_02 }, + { { -545.00f, 1069.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_03 }, + { { 267.00f, 402.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_04 }, + { { 267.00f, 482.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_05 }, + { { 324.00f, 459.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_06 }, + { { 347.00f, 402.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_07 }, + { { 324.00f, 345.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_08 }, + { { 267.00f, 322.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_09 }, + { { 210.00f, 345.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_10 }, + { { 187.00f, 402.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_11 }, + { { 210.00f, 459.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_12 }, + { { 86.00f, 145.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_13 }, + { { 86.00f, 225.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_14 }, + { { 143.00f, 202.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_15 }, + { { 166.00f, 145.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_16 }, + { { 143.00f, 88.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_17 }, + { { 86.00f, 65.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_18 }, + { { 29.00f, 88.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_19 }, + { { 6.00f, 145.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_20 }, + { { 29.00f, 202.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_21 }, + { { 365.00f, 165.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_22 }, + { { 365.00f, 245.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_23 }, + { { 422.00f, 222.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_24 }, + { { 445.00f, 165.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_25 }, + { { 422.00f, 108.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_26 }, + { { 365.00f, 85.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_27 }, + { { 308.00f, 108.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_28 }, + { { 285.00f, 165.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_29 }, + { { 308.00f, 222.00f }, RC_MOUNTAIN_VILLAGE_SPRING_GRASS_30 }, + } }, + { SCENE_17SETUGEN2, + { + { { -1383.00f, 1049.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_01 }, + { { -1405.00f, 1079.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_02 }, + { { -1447.00f, 1075.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_03 }, + { { -1463.00f, 1037.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_04 }, + { { -1423.00f, 1023.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_05 }, + { { -1352.00f, 1079.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_06 }, + { { -1423.00f, 1123.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_07 }, + { { -1494.00f, 1079.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_08 }, + { { -1494.00f, 1007.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_09 }, + { { -1459.00f, 972.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_10 }, + { { -1411.00f, 964.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_11 }, + { { -1381.00f, 1001.00f }, RC_TWIN_ISLANDS_SPRING_GRASS_12 }, + } }, + { SCENE_BOTI, + { + { { -597.00f, -1943.00f }, RC_IKANA_GRAVEYARD_GRASS_01 }, + { { -597.00f, -1863.00f }, RC_IKANA_GRAVEYARD_GRASS_02 }, + { { -540.00f, -1886.00f }, RC_IKANA_GRAVEYARD_GRASS_03 }, + { { -517.00f, -1943.00f }, RC_IKANA_GRAVEYARD_GRASS_04 }, + { { -540.00f, -2000.00f }, RC_IKANA_GRAVEYARD_GRASS_05 }, + { { -597.00f, -2023.00f }, RC_IKANA_GRAVEYARD_GRASS_06 }, + { { -654.00f, -2000.00f }, RC_IKANA_GRAVEYARD_GRASS_07 }, + { { -677.00f, -1943.00f }, RC_IKANA_GRAVEYARD_GRASS_08 }, + { { -654.00f, -1886.00f }, RC_IKANA_GRAVEYARD_GRASS_09 }, + } }, + { SCENE_KOEPONARACE, + { + { { 2810.00f, 446.00f }, RC_GORMAN_TRACK_GRASS_01 }, + { { 2788.00f, 476.00f }, RC_GORMAN_TRACK_GRASS_02 }, + { { 2746.00f, 472.00f }, RC_GORMAN_TRACK_GRASS_03 }, + { { 2730.00f, 434.00f }, RC_GORMAN_TRACK_GRASS_04 }, + { { 2770.00f, 420.00f }, RC_GORMAN_TRACK_GRASS_05 }, + { { 2841.00f, 476.00f }, RC_GORMAN_TRACK_GRASS_06 }, + { { 2770.00f, 520.00f }, RC_GORMAN_TRACK_GRASS_07 }, + { { 2699.00f, 476.00f }, RC_GORMAN_TRACK_GRASS_08 }, + { { 2699.00f, 404.00f }, RC_GORMAN_TRACK_GRASS_09 }, + { { 2734.00f, 369.00f }, RC_GORMAN_TRACK_GRASS_10 }, + { { 2782.00f, 361.00f }, RC_GORMAN_TRACK_GRASS_11 }, + { { 2812.00f, 398.00f }, RC_GORMAN_TRACK_GRASS_12 }, + { { 2502.00f, -353.00f }, RC_GORMAN_TRACK_GRASS_13 }, + { { 2480.00f, -323.00f }, RC_GORMAN_TRACK_GRASS_14 }, + { { 2438.00f, -327.00f }, RC_GORMAN_TRACK_GRASS_15 }, + { { 2422.00f, -365.00f }, RC_GORMAN_TRACK_GRASS_16 }, + { { 2462.00f, -379.00f }, RC_GORMAN_TRACK_GRASS_17 }, + { { 2533.00f, -323.00f }, RC_GORMAN_TRACK_GRASS_18 }, + { { 2462.00f, -279.00f }, RC_GORMAN_TRACK_GRASS_19 }, + { { 2391.00f, -323.00f }, RC_GORMAN_TRACK_GRASS_20 }, + { { 2391.00f, -395.00f }, RC_GORMAN_TRACK_GRASS_21 }, + { { 2426.00f, -430.00f }, RC_GORMAN_TRACK_GRASS_22 }, + { { 2474.00f, -438.00f }, RC_GORMAN_TRACK_GRASS_23 }, + { { 2504.00f, -401.00f }, RC_GORMAN_TRACK_GRASS_24 }, + } }, + { SCENE_26SARUNOMORI, + { + { { 81.00f, 85.00f }, RC_WOODS_OF_MYSTERY_GRASS_01 }, + { { 44.00f, 125.00f }, RC_WOODS_OF_MYSTERY_GRASS_02 }, + { { 91.00f, 137.00f }, RC_WOODS_OF_MYSTERY_GRASS_03 }, + { { -77.00f, 779.00f }, RC_WOODS_OF_MYSTERY_GRASS_04 }, + { { 6.00f, 988.00f }, RC_WOODS_OF_MYSTERY_GRASS_05 }, + { { -796.00f, 793.00f }, RC_WOODS_OF_MYSTERY_GRASS_06 }, + { { -946.00f, 1054.00f }, RC_WOODS_OF_MYSTERY_GRASS_07 }, + { { -798.00f, 56.00f }, RC_WOODS_OF_MYSTERY_GRASS_08 }, + { { -872.00f, -3.00f }, RC_WOODS_OF_MYSTERY_GRASS_09 }, + { { -952.00f, 77.00f }, RC_WOODS_OF_MYSTERY_GRASS_10 }, + { { -915.00f, -74.00f }, RC_WOODS_OF_MYSTERY_GRASS_11 }, + { { -958.00f, -755.00f }, RC_WOODS_OF_MYSTERY_GRASS_12 }, + { { -906.00f, -1034.00f }, RC_WOODS_OF_MYSTERY_GRASS_13 }, + { { -1894.00f, -874.00f }, RC_WOODS_OF_MYSTERY_GRASS_14 }, + { { -1876.00f, -821.00f }, RC_WOODS_OF_MYSTERY_GRASS_15 }, + { { -1696.00f, -892.00f }, RC_WOODS_OF_MYSTERY_GRASS_16 }, + { { -1690.00f, -1023.00f }, RC_WOODS_OF_MYSTERY_GRASS_17 }, + { { -1631.00f, -727.00f }, RC_WOODS_OF_MYSTERY_GRASS_18 }, + { { -1942.00f, 42.00f }, RC_WOODS_OF_MYSTERY_GRASS_19 }, + { { -1702.00f, -24.00f }, RC_WOODS_OF_MYSTERY_GRASS_20 }, + { { 100.00f, -970.00f }, RC_WOODS_OF_MYSTERY_GRASS_21 }, + } }, + { SCENE_21MITURINMAE, + { + { { -135.00f, -1401.00f }, RC_WOODFALL_GRASS_01 }, + { { -200.00f, -1447.00f }, RC_WOODFALL_GRASS_02 }, + { { -186.00f, -1379.00f }, RC_WOODFALL_GRASS_03 }, + { { 70.00f, -1409.00f }, RC_WOODFALL_GRASS_04 }, + { { 126.00f, -1455.00f }, RC_WOODFALL_GRASS_05 }, + { { 114.00f, -1377.00f }, RC_WOODFALL_GRASS_06 }, + } }, +}; + +std::map<int16_t, std::map<std::pair<float, float>, RandoCheckId>> grottoGrassMap = { + { -1, + { + { { 2285.00f, 883.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_01 }, + { { 2263.00f, 913.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_02 }, + { { 2221.00f, 909.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_03 }, + { { 2205.00f, 871.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_04 }, + { { 2245.00f, 857.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_05 }, + { { 2316.00f, 913.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_06 }, + { { 2245.00f, 957.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_07 }, + { { 2174.00f, 913.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_08 }, + { { 2174.00f, 841.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_09 }, + { { 2209.00f, 806.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_10 }, + { { 2257.00f, 798.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_11 }, + { { 2287.00f, 835.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_12 }, + { { 2324.00f, 1073.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_13 }, + { { 2302.00f, 1103.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_14 }, + { { 2260.00f, 1099.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_15 }, + { { 2244.00f, 1061.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_16 }, + { { 2284.00f, 1047.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_17 }, + { { 2355.00f, 1103.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_18 }, + { { 2284.00f, 1147.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_19 }, + { { 2213.00f, 1103.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_20 }, + { { 2213.00f, 1031.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_21 }, + { { 2248.00f, 996.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_22 }, + { { 2296.00f, 988.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_23 }, + { { 2326.00f, 1025.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_24 }, + { { 2438.00f, 993.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_25 }, + { { 2416.00f, 1023.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_26 }, + { { 2374.00f, 1019.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_27 }, + { { 2358.00f, 981.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_28 }, + { { 2398.00f, 967.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_29 }, + { { 2469.00f, 1023.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_30 }, + { { 2398.00f, 1067.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_31 }, + { { 2327.00f, 1023.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_32 }, + { { 2327.00f, 951.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_33 }, + { { 2362.00f, 916.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_34 }, + { { 2410.00f, 908.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_35 }, + { { 2440.00f, 945.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_36 }, + { { 2466.00f, 747.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_37 }, + { { 2444.00f, 777.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_38 }, + { { 2402.00f, 773.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_39 }, + { { 2386.00f, 735.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_40 }, + { { 2426.00f, 721.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_41 }, + { { 2497.00f, 777.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_42 }, + { { 2426.00f, 821.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_43 }, + { { 2355.00f, 777.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_44 }, + { { 2355.00f, 705.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_45 }, + { { 2390.00f, 670.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_46 }, + { { 2438.00f, 662.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_47 }, + { { 2468.00f, 699.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_48 }, + { { 2576.00f, 842.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_49 }, + { { 2554.00f, 872.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_50 }, + { { 2512.00f, 868.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_51 }, + { { 2496.00f, 830.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_52 }, + { { 2536.00f, 816.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_53 }, + { { 2607.00f, 872.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_54 }, + { { 2536.00f, 916.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_55 }, + { { 2465.00f, 872.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_56 }, + { { 2465.00f, 800.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_57 }, + { { 2500.00f, 765.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_58 }, + { { 2548.00f, 757.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_59 }, + { { 2578.00f, 794.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_60 }, + { { 2593.00f, 1073.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_61 }, + { { 2571.00f, 1103.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_62 }, + { { 2529.00f, 1099.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_63 }, + { { 2513.00f, 1061.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_64 }, + { { 2553.00f, 1047.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_65 }, + { { 2624.00f, 1103.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_66 }, + { { 2553.00f, 1147.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_67 }, + { { 2482.00f, 1103.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_68 }, + { { 2482.00f, 1031.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_69 }, + { { 2517.00f, 996.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_70 }, + { { 2565.00f, 988.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_71 }, + { { 2595.00f, 1025.00f }, RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_72 }, + } }, + { ENTRANCE(GROTTOS, 16), + { + { { 4323.00f, -466.00f }, RC_LONE_PEAK_SHRINE_GRASS_01 }, + { { 4301.00f, -436.00f }, RC_LONE_PEAK_SHRINE_GRASS_02 }, + { { 4259.00f, -440.00f }, RC_LONE_PEAK_SHRINE_GRASS_03 }, + { { 4243.00f, -478.00f }, RC_LONE_PEAK_SHRINE_GRASS_04 }, + { { 4283.00f, -492.00f }, RC_LONE_PEAK_SHRINE_GRASS_05 }, + { { 4354.00f, -436.00f }, RC_LONE_PEAK_SHRINE_GRASS_06 }, + { { 4283.00f, -392.00f }, RC_LONE_PEAK_SHRINE_GRASS_07 }, + { { 4212.00f, -436.00f }, RC_LONE_PEAK_SHRINE_GRASS_08 }, + { { 4212.00f, -508.00f }, RC_LONE_PEAK_SHRINE_GRASS_09 }, + { { 4247.00f, -543.00f }, RC_LONE_PEAK_SHRINE_GRASS_10 }, + { { 4295.00f, -551.00f }, RC_LONE_PEAK_SHRINE_GRASS_11 }, + { { 4325.00f, -514.00f }, RC_LONE_PEAK_SHRINE_GRASS_12 }, + { { 4592.00f, -613.00f }, RC_LONE_PEAK_SHRINE_GRASS_13 }, + { { 4570.00f, -583.00f }, RC_LONE_PEAK_SHRINE_GRASS_14 }, + { { 4528.00f, -587.00f }, RC_LONE_PEAK_SHRINE_GRASS_15 }, + { { 4512.00f, -625.00f }, RC_LONE_PEAK_SHRINE_GRASS_16 }, + { { 4552.00f, -639.00f }, RC_LONE_PEAK_SHRINE_GRASS_17 }, + { { 4623.00f, -583.00f }, RC_LONE_PEAK_SHRINE_GRASS_18 }, + { { 4552.00f, -539.00f }, RC_LONE_PEAK_SHRINE_GRASS_19 }, + { { 4481.00f, -583.00f }, RC_LONE_PEAK_SHRINE_GRASS_20 }, + { { 4481.00f, -655.00f }, RC_LONE_PEAK_SHRINE_GRASS_21 }, + { { 4516.00f, -690.00f }, RC_LONE_PEAK_SHRINE_GRASS_22 }, + { { 4564.00f, -698.00f }, RC_LONE_PEAK_SHRINE_GRASS_23 }, + { { 4594.00f, -661.00f }, RC_LONE_PEAK_SHRINE_GRASS_24 }, + } }, + { ENTRANCE(GROTTOS, 12), + { + { { 4137.00f, 1073.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_01 }, + { { 4115.00f, 1103.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_02 }, + { { 4073.00f, 1099.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_03 }, + { { 4057.00f, 1061.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_04 }, + { { 4097.00f, 1047.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_05 }, + { { 4168.00f, 1103.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_06 }, + { { 4097.00f, 1147.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_07 }, + { { 4026.00f, 1103.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_08 }, + { { 4026.00f, 1031.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_09 }, + { { 4061.00f, 996.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_10 }, + { { 4109.00f, 988.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_11 }, + { { 4139.00f, 1025.00f }, RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_12 }, + } }, + { 31, + { + { { 2285.00f, 883.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_01 }, + { { 2263.00f, 913.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_02 }, + { { 2221.00f, 909.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_03 }, + { { 2205.00f, 871.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_04 }, + { { 2245.00f, 857.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_05 }, + { { 2316.00f, 913.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_06 }, + { { 2245.00f, 957.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_07 }, + { { 2174.00f, 913.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_08 }, + { { 2174.00f, 841.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_09 }, + { { 2209.00f, 806.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_10 }, + { { 2257.00f, 798.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_11 }, + { { 2287.00f, 835.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_12 }, + { { 2324.00f, 1073.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_13 }, + { { 2302.00f, 1103.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_14 }, + { { 2260.00f, 1099.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_15 }, + { { 2244.00f, 1061.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_16 }, + { { 2284.00f, 1047.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_17 }, + { { 2355.00f, 1103.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_18 }, + { { 2284.00f, 1147.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_19 }, + { { 2213.00f, 1103.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_20 }, + { { 2213.00f, 1031.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_21 }, + { { 2248.00f, 996.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_22 }, + { { 2296.00f, 988.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_23 }, + { { 2326.00f, 1025.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_24 }, + { { 2438.00f, 993.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_25 }, + { { 2416.00f, 1023.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_26 }, + { { 2374.00f, 1019.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_27 }, + { { 2358.00f, 981.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_28 }, + { { 2398.00f, 967.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_29 }, + { { 2469.00f, 1023.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_30 }, + { { 2398.00f, 1067.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_31 }, + { { 2327.00f, 1023.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_32 }, + { { 2327.00f, 951.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_33 }, + { { 2362.00f, 916.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_34 }, + { { 2410.00f, 908.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_35 }, + { { 2440.00f, 945.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_36 }, + { { 2466.00f, 747.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_37 }, + { { 2444.00f, 777.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_38 }, + { { 2402.00f, 773.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_39 }, + { { 2386.00f, 735.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_40 }, + { { 2426.00f, 721.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_41 }, + { { 2497.00f, 777.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_42 }, + { { 2426.00f, 821.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_43 }, + { { 2355.00f, 777.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_44 }, + { { 2355.00f, 705.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_45 }, + { { 2390.00f, 670.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_46 }, + { { 2438.00f, 662.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_47 }, + { { 2468.00f, 699.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_48 }, + { { 2576.00f, 842.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_49 }, + { { 2554.00f, 872.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_50 }, + { { 2512.00f, 868.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_51 }, + { { 2496.00f, 830.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_52 }, + { { 2536.00f, 816.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_53 }, + { { 2607.00f, 872.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_54 }, + { { 2536.00f, 916.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_55 }, + { { 2465.00f, 872.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_56 }, + { { 2465.00f, 800.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_57 }, + { { 2500.00f, 765.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_58 }, + { { 2548.00f, 757.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_59 }, + { { 2578.00f, 794.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_60 }, + { { 2593.00f, 1073.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_61 }, + { { 2571.00f, 1103.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_62 }, + { { 2529.00f, 1099.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_63 }, + { { 2513.00f, 1061.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_64 }, + { { 2553.00f, 1047.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_65 }, + { { 2624.00f, 1103.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_66 }, + { { 2553.00f, 1147.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_67 }, + { { 2482.00f, 1103.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_68 }, + { { 2482.00f, 1031.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_69 }, + { { 2517.00f, 996.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_70 }, + { { 2565.00f, 988.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_71 }, + { { 2595.00f, 1025.00f }, RC_TERMINA_FIELD_COW_GROTTO_GRASS_72 }, + } }, + { ENTRANCE(GROTTOS, 11), + { + { { 2927.00f, 1308.00f }, RC_TERMINA_FIELD_BIO_BABA_GROTTO_GRASS_01 }, + { { 2966.00f, 1409.00f }, RC_TERMINA_FIELD_BIO_BABA_GROTTO_GRASS_02 }, + } }, + { ENTRANCE(GROTTOS, 13), + { + { { 5415.00f, 454.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_01 }, + { { 5393.00f, 484.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_02 }, + { { 5351.00f, 480.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_03 }, + { { 5335.00f, 442.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_04 }, + { { 5375.00f, 428.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_05 }, + { { 5446.00f, 484.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_06 }, + { { 5375.00f, 528.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_07 }, + { { 5304.00f, 484.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_08 }, + { { 5304.00f, 412.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_09 }, + { { 5339.00f, 377.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_10 }, + { { 5387.00f, 369.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_11 }, + { { 5417.00f, 406.00f }, RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_12 }, + } }, + { ENTRANCE(GROTTOS, 2), + { + { { 1153.00f, 218.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_01 }, + { { 1199.00f, -365.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_02 }, + { { 1252.00f, -372.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_03 }, + { { 1295.00f, 27.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_04 }, + { { 1321.00f, 113.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_05 }, + } }, + { ENTRANCE(GROTTOS, 0), + { + { { -42.00f, -3.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_01 }, + { { 87.00f, -26.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_02 }, + { { 103.00f, -112.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_03 }, + { { 113.00f, 43.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_04 }, + { { 137.00f, 93.00f }, RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_05 }, + } }, + { 51, + { + { { 2339.00f, 129.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_14 }, + } }, + { 55, + { + { { 2339.00f, 129.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_14 }, + } }, + { 59, + { + { { 2339.00f, 129.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_14 }, + } }, + { 61, + { + { { 2339.00f, 129.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_SOUTHERN_SWAMP_GROTTO_GRASS_14 }, + } }, + { 62, + { + { { 2339.00f, 129.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_14 }, + } }, + { 63, + { + { { 2339.00f, 129.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_14 }, + } }, + { -72, + { + { { 2339.00f, 129.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_IKANA_GRAVEYARD_GROTTO_GRASS_14 }, + } }, + { -76, + { + { { 2339.00f, 129.00f }, RC_IKANA_CANYON_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_IKANA_CANYON_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_IKANA_CANYON_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_IKANA_CANYON_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_IKANA_CANYON_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_IKANA_CANYON_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_IKANA_CANYON_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_IKANA_CANYON_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_IKANA_CANYON_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_IKANA_CANYON_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_IKANA_CANYON_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_IKANA_CANYON_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_IKANA_CANYON_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_IKANA_CANYON_GROTTO_GRASS_14 }, + } }, + { 92, + { + { { 2339.00f, 129.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_WOODS_OF_MYSTERY_GROTTO_GRASS_14 }, + } }, + { -102, + { + { { 2339.00f, 129.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_14 }, + } }, + { -103, + { + { { 2339.00f, 129.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_14 }, + } }, + { -106, + { + { { 2339.00f, 129.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_ROAD_TO_IKANA_GROTTO_GRASS_14 }, + } }, + { -107, + { + { { 2339.00f, 129.00f }, RC_ZORA_CAPE_GROTTO_GRASS_01 }, + { { 2345.00f, -174.00f }, RC_ZORA_CAPE_GROTTO_GRASS_02 }, + { { 2355.00f, -310.00f }, RC_ZORA_CAPE_GROTTO_GRASS_03 }, + { { 2355.00f, -225.00f }, RC_ZORA_CAPE_GROTTO_GRASS_04 }, + { { 2391.00f, -313.00f }, RC_ZORA_CAPE_GROTTO_GRASS_05 }, + { { 2403.00f, -360.00f }, RC_ZORA_CAPE_GROTTO_GRASS_06 }, + { { 2460.00f, 215.00f }, RC_ZORA_CAPE_GROTTO_GRASS_07 }, + { { 2484.00f, -213.00f }, RC_ZORA_CAPE_GROTTO_GRASS_08 }, + { { 2500.00f, 26.00f }, RC_ZORA_CAPE_GROTTO_GRASS_09 }, + { { 2508.00f, 152.00f }, RC_ZORA_CAPE_GROTTO_GRASS_10 }, + { { 2520.00f, -463.00f }, RC_ZORA_CAPE_GROTTO_GRASS_11 }, + { { 2522.00f, -243.00f }, RC_ZORA_CAPE_GROTTO_GRASS_12 }, + { { 2524.00f, 58.00f }, RC_ZORA_CAPE_GROTTO_GRASS_13 }, + { { 2534.00f, -190.00f }, RC_ZORA_CAPE_GROTTO_GRASS_14 }, + } }, +}; +// clang-format on + +float roundToWholeNumber(float value) { + int rounded = std::round(value); + float fnum = static_cast<float>(rounded); + + return fnum; +} + +RandoCheckId IdentifyGrass(Vec3f pos) { + RandoCheckId randoCheckId = RC_UNKNOWN; + pos.x = roundToWholeNumber(pos.x); + pos.z = roundToWholeNumber(pos.z); + + const auto& grassMap = (gPlayState->sceneId != SCENE_KAKUSIANA) ? overworldGrassMap : grottoGrassMap; + uint32_t key = + (gPlayState->sceneId != SCENE_KAKUSIANA) ? static_cast<uint16_t>(gPlayState->sceneId) + : (gSaveContext.save.entrance == ENTRANCE(GROTTOS, 4) || gSaveContext.save.entrance == ENTRANCE(GROTTOS, 10)) + ? gSaveContext.respawn[RESPAWN_MODE_UNK_3].data + : gSaveContext.save.entrance; + + auto it = grassMap.find(key); + if (it == grassMap.end()) { + return randoCheckId; + } + + auto innerIt = it->second.find({ pos.x, pos.z }); + if (innerIt == it->second.end()) { + return randoCheckId; + } + + randoCheckId = innerIt->second; + if (!RANDO_SAVE_CHECKS[randoCheckId].shuffled || RANDO_SAVE_CHECKS[randoCheckId].cycleObtained) { + return RC_UNKNOWN; + } + + return randoCheckId; +} + +void SpawnGrassDrop(Vec3f pos, RandoCheckId randoCheckId) { + CustomItem::Spawn( + pos.x, pos.y, pos.z, 0, CustomItem::KILL_ON_TOUCH | CustomItem::TOSS_ON_SPAWN | CustomItem::ABLE_TO_ZORA_RANG, + randoCheckId, + [](Actor* actor, PlayState* play) { + RandoSaveCheck& randoSaveCheck = RANDO_SAVE_CHECKS[CUSTOM_ITEM_PARAM]; + randoSaveCheck.eligible = true; + }, + [](Actor* actor, PlayState* play) { + auto& randoSaveCheck = RANDO_SAVE_CHECKS[CUSTOM_ITEM_PARAM]; + RandoItemId randoItemId = Rando::ConvertItem(randoSaveCheck.randoItemId); + Matrix_Scale(30.0f, 30.0f, 30.0f, MTXMODE_APPLY); + Rando::DrawItem(Rando::ConvertItem(randoSaveCheck.randoItemId, (RandoCheckId)CUSTOM_ITEM_PARAM), actor); + }); +} + +void Rando::ActorBehavior::InitObjGrassBehavior() { + COND_VB_SHOULD(VB_GRASS_DROP_COLLECTIBLE, IS_RANDO, { + auto actorId = static_cast<ActorId>(va_arg(args, int32_t)); + ObjGrassElement* grassElemActor; + EnKusa* kusaActor; + ObjGrassCarry* grassCarryActor; + Vec3f grassIdPos = gZeroVec3f; + Vec3f collectiblePos = gZeroVec3f; + + if (actorId == ACTOR_OBJ_GRASS) { + grassElemActor = va_arg(args, ObjGrassElement*); + grassIdPos = grassElemActor->pos; + collectiblePos = grassIdPos; + } else if (actorId == ACTOR_EN_KUSA) { + kusaActor = va_arg(args, EnKusa*); + grassIdPos = kusaActor->actor.home.pos; + collectiblePos = kusaActor->actor.world.pos; + } else if (actorId == ACTOR_OBJ_GRASS_CARRY) { + grassCarryActor = va_arg(args, ObjGrassCarry*); + grassIdPos = grassCarryActor->grassElem->pos; + collectiblePos = grassCarryActor->actor.world.pos; + } + + RandoCheckId randoCheckId = IdentifyGrass(grassIdPos); + if (randoCheckId == RC_UNKNOWN) { + return; + } + + SpawnGrassDrop(collectiblePos, randoCheckId); + *should = false; + }); +} diff --git a/mm/2s2h/Rando/CheckTracker/CheckTracker.cpp b/mm/2s2h/Rando/CheckTracker/CheckTracker.cpp index d1f33e607..6a6b43e54 100644 --- a/mm/2s2h/Rando/CheckTracker/CheckTracker.cpp +++ b/mm/2s2h/Rando/CheckTracker/CheckTracker.cpp @@ -14,6 +14,7 @@ #include "assets/archives/icon_item_24_static/icon_item_24_static_yar.h" #include "assets/archives/schedule_dma_static/schedule_dma_static_yar.h" #include "assets/interface/icon_item_field_static/icon_item_field_static.h" +#include "assets/objects/gameplay_keep/gameplay_keep.h" extern "C" { s16 Play_GetOriginalSceneId(s16 sceneId); @@ -69,6 +70,7 @@ std::vector<const char*> checkTypeIconList = { /*RCTYPE_COW*/ gItemIconRomaniMaskTex, /*RCTYPE_CRATE*/ gCrateTrackerIcon, /*RCTYPE_FREESTANDING*/ gRupeeCounterIconTex, + /*RCTYPE_GRASS*/ gameplay_keep_Tex_053140, /*RCTYPE_HEART*/ gQuestIconPieceOfHeartTex, /*RCTYPE_MINIGAME*/ gArcheryScoreIconTex, /*RCTYPE_NPC*/ gItemIconBombersNotebookTex, diff --git a/mm/2s2h/Rando/Logic/Regions/Central.cpp b/mm/2s2h/Rando/Logic/Regions/Central.cpp index 650d62f91..bed629d15 100644 --- a/mm/2s2h/Rando/Logic/Regions/Central.cpp +++ b/mm/2s2h/Rando/Logic/Regions/Central.cpp @@ -125,6 +125,9 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_CLOCK_TOWN_LAUNDRY_FREESTANDING_RUPEE_03, true), CHECK(RC_CLOCK_TOWN_LAUNDRY_GURU_GURU, true), CHECK(RC_CLOCK_TOWN_LAUNDRY_SMALL_CRATE, true), + CHECK(RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_01, true), + CHECK(RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_02, true), + CHECK(RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_03, true), }, .exits = { // TO FROM EXIT(ENTRANCE(SOUTH_CLOCK_TOWN, 6), ENTRANCE(LAUNDRY_POOL, 0), true), @@ -308,171 +311,6 @@ static RegisterShipInitFunc initFunc([]() { EXIT(ENTRANCE(WEST_CLOCK_TOWN, 3), ENTRANCE(SWORDMANS_SCHOOL, 0), true), }, }; - Regions[RR_TERMINA_FIELD_BEFORE_GREAT_BAY_COAST] = RandoRegion{ .name = "Before Great Bay Coast", .sceneId = SCENE_00KEIKOKU, - .exits = { // TO FROM - EXIT(ENTRANCE(GREAT_BAY_COAST, 0), ENTRANCE(TERMINA_FIELD, 2), true), - }, - .connections = { - CONNECTION(RR_TERMINA_FIELD, CAN_PLAY_SONG(EPONA)), - }, - }; - Regions[RR_TERMINA_FIELD_BEFORE_PATH_TO_MOUNTAIN_VILLAGE] = RandoRegion{ .sceneId = SCENE_00KEIKOKU, - .exits = { // TO FROM - EXIT(ENTRANCE(PATH_TO_MOUNTAIN_VILLAGE, 0), ENTRANCE(TERMINA_FIELD, 3), true), - }, - .connections = { - CONNECTION(RR_TERMINA_FIELD, HAS_ITEM(ITEM_BOW)), - }, - }; - Regions[RR_TERMINA_FIELD_BIO_BABA_GROTTO] = RandoRegion{ .name = "Termina Field Bio Baba", .sceneId = SCENE_KAKUSIANA, - .checks = { - CHECK(RC_TERMINA_FIELD_BIO_BABA_GROTTO, CAN_BE_ZORA), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 11), true), // TODO: Grotto mapping - }, - }; - Regions[RR_TERMINA_FIELD_COW_GROTTO] = RandoRegion{ .name = "Termina Field Cow", .sceneId = SCENE_KAKUSIANA, - .checks = { - CHECK(RC_TERMINA_FIELD_COW_BACK, CAN_PLAY_SONG(EPONA)), - CHECK(RC_TERMINA_FIELD_COW_FRONT, CAN_PLAY_SONG(EPONA)), - }, - .connections = { - CONNECTION(RR_TERMINA_FIELD, true), // TODO: Grotto mapping - }, - }; - Regions[RR_TERMINA_FIELD_DODONGO_GROTTO] = RandoRegion{ .name = "Termina Field Dodongo", .sceneId = SCENE_KAKUSIANA, - .checks = { - CHECK(RC_TERMINA_FIELD_DODONGO_GROTTO_CHEST, CAN_USE_SWORD || CAN_BE_ZORA || CAN_BE_GORON), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 7), true), // TODO: Grotto mapping - }, - }; - Regions[RR_TERMINA_FIELD_GOSSIP_STONE_GROTTO_1] = RandoRegion{ .name = "Termina Field Gossip Stone #1", .sceneId = SCENE_KAKUSIANA, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 1), true), // TODO: Grotto mapping - }, - .events = { - // TODO: gSaveContext.save.saveInfo.unk_EA0 for gossip stone check - }, - }; - Regions[RR_TERMINA_FIELD_GOSSIP_STONE_GROTTO_2] = RandoRegion{ .name = "Termina Field Gossip Stone #2", .sceneId = SCENE_KAKUSIANA, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 3), true), // TODO: Grotto mapping - }, - .events = { - // TODO: gSaveContext.save.saveInfo.unk_EA0 for gossip stone check - }, - }; - Regions[RR_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3] = RandoRegion{ .name = "Termina Field Gossip Stone #3", .sceneId = SCENE_KAKUSIANA, - .checks = { - CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO, (CAN_BE_DEKU && CAN_PLAY_SONG(SONATA)) || (CAN_BE_GORON && CAN_PLAY_SONG(LULLABY)) || (CAN_BE_ZORA && CAN_PLAY_SONG(BOSSA_NOVA))), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 0), true), // TODO: Grotto mapping - }, - .events = { - // TODO: gSaveContext.save.saveInfo.unk_EA0 for gossip stone check - }, - }; - Regions[RR_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4] = RandoRegion{ .name = "Termina Field Gossip Stone #4", .sceneId = SCENE_KAKUSIANA, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 2), true), // TODO: Grotto mapping - }, - .events = { - // TODO: gSaveContext.save.saveInfo.unk_EA0 for gossip stone check - }, - }; - Regions[RR_TERMINA_FIELD_PEAHAT_GROTTO] = RandoRegion{ .name = "Termina Field Peahat", .sceneId = SCENE_KAKUSIANA, - .checks = { - CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_CHEST, CAN_USE_SWORD || CAN_BE_ZORA || CAN_BE_GORON), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 13), true), // TODO: Grotto mapping - }, - }; - Regions[RR_TERMINA_FIELD_PILLAR_GROTTO] = RandoRegion{ .name = "Termina Field Pillar", .sceneId = SCENE_KAKUSIANA, - .checks = { - CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_CHEST, true), - }, - .connections = { - CONNECTION(RR_TERMINA_FIELD, true), // TODO: Grotto mapping - }, - }; - Regions[RR_TERMINA_FIELD_SCRUB_GROTTO] = RandoRegion{ .name = "Termina Field Scrub", .sceneId = SCENE_KAKUSIANA, - .checks = { - CHECK(RC_TERMINA_FIELD_GROTTO_SCRUB, CUR_UPG_VALUE(UPG_WALLET) >= 1 && RANDO_EVENTS[RE_TERMINA_FIELD_SCRUB_ENTERED_GROTTO]), - CHECK(RC_TERMINA_FIELD_SCRUB_LARGE_CRATE, true), - CHECK(RC_TERMINA_FIELD_SCRUB_POT, true), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 9), true), // TODO: Grotto mapping - }, - }; - Regions[RR_TERMINA_FIELD_TALL_GRASS_GROTTO] = RandoRegion{ .name = "Termina Field Tall Grass", .sceneId = SCENE_KAKUSIANA, - .checks = { - CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_CHEST, true), - }, - .connections = { - CONNECTION(RR_TERMINA_FIELD, true), // TODO: Grotto mapping - }, - }; - Regions[RR_TERMINA_FIELD] = RandoRegion{ .sceneId = SCENE_00KEIKOKU, - .checks = { - CHECK(RC_TERMINA_FIELD_KAMARO_MASK, CAN_PLAY_SONG(HEALING)), - CHECK(RC_TERMINA_FIELD_POT, CAN_GROW_BEAN_PLANT), - CHECK(RC_TERMINA_FIELD_TALL_GRASS_CHEST, true), - CHECK(RC_TERMINA_FIELD_TREE_STUMP_CHEST, CAN_GROW_BEAN_PLANT || HAS_ITEM(ITEM_HOOKSHOT)), - CHECK(RC_TERMINA_FIELD_WATER_CHEST, CAN_BE_ZORA), - CHECK(RC_TERMINA_FIELD_FREESTANDING_RUPEE_01, true), // TODO: Fix duplicate item get... - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_01, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_02, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_03, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_04, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_05, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_06, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_07, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_08, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_09, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_10, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_11, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_12, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_13, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_14, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_15, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_16, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_17, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_18, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_19, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_20, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(GROTTOS, 0), ENTRANCE(TERMINA_FIELD, 0), CAN_USE_EXPLOSIVE || CAN_BE_GORON), // TODO: Grotto mapping Gossip Stone #3 - EXIT(ENTRANCE(GROTTOS, 1), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Gossip Stone #1 - EXIT(ENTRANCE(GROTTOS, 2), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Gossip Stone #4 - EXIT(ENTRANCE(GROTTOS, 3), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Gossip Stone #2 - EXIT(ENTRANCE(GROTTOS, 7), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Dodongo - EXIT(ENTRANCE(GROTTOS, 9), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Scrub - EXIT(ENTRANCE(GROTTOS, 11), ENTRANCE(TERMINA_FIELD, 0), CAN_USE_EXPLOSIVE || CAN_BE_GORON), // TODO: Grotto mapping bio baba grotto - EXIT(ENTRANCE(GROTTOS, 13), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping peahat grotto - EXIT(ENTRANCE(WEST_CLOCK_TOWN, 0), ENTRANCE(TERMINA_FIELD, 0), true), - EXIT(ENTRANCE(ROAD_TO_SOUTHERN_SWAMP, 0), ENTRANCE(TERMINA_FIELD, 1), true), - EXIT(ENTRANCE(ROAD_TO_IKANA, 0), ENTRANCE(TERMINA_FIELD, 4), true), - EXIT(ENTRANCE(MILK_ROAD, 0), ENTRANCE(TERMINA_FIELD, 5), true), - EXIT(ENTRANCE(SOUTH_CLOCK_TOWN, 1), ENTRANCE(TERMINA_FIELD, 6), true), - EXIT(ENTRANCE(EAST_CLOCK_TOWN, 0), ENTRANCE(TERMINA_FIELD, 7), true), - EXIT(ENTRANCE(NORTH_CLOCK_TOWN, 0), ENTRANCE(TERMINA_FIELD, 8), true), - }, - .connections = { - CONNECTION(RR_TERMINA_FIELD_BEFORE_PATH_TO_MOUNTAIN_VILLAGE, HAS_ITEM(ITEM_BOW)), - CONNECTION(RR_TERMINA_FIELD_BEFORE_GREAT_BAY_COAST, CAN_PLAY_SONG(EPONA)), - CONNECTION(RR_ASTRAL_OBSERVATORY_OUTSIDE, CAN_BE_DEKU), - CONNECTION(RR_TERMINA_FIELD_COW_GROTTO, CAN_USE_EXPLOSIVE), // TODO: Grotto mapping - CONNECTION(RR_TERMINA_FIELD_PILLAR_GROTTO, true), // TODO: Grotto mapping - CONNECTION(RR_TERMINA_FIELD_TALL_GRASS_GROTTO, true), // TODO: Grotto mapping - }, - }; Regions[RR_TOWN_DEKU_PLAYGROUND] = RandoRegion{ .sceneId = SCENE_DEKUTES, .checks = { CHECK(RC_DEKU_PLAYGROUND_ALL_DAYS, CAN_BE_DEKU), diff --git a/mm/2s2h/Rando/Logic/Regions/East.cpp b/mm/2s2h/Rando/Logic/Regions/East.cpp index 829f0f039..00cab380b 100644 --- a/mm/2s2h/Rando/Logic/Regions/East.cpp +++ b/mm/2s2h/Rando/Logic/Regions/East.cpp @@ -113,6 +113,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_IKANA_CANYON_GROTTO] = RandoRegion{ .name = "Ikana Canyon Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_IKANA_CANYON_GROTTO_CHEST, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_01, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_02, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_03, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_04, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_05, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_06, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_07, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_08, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_09, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_10, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_11, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_12, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_13, true), + CHECK(RC_IKANA_CANYON_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_IKANA_CANYON_LOWER, true), // TODO: Grotto mapping @@ -173,12 +187,37 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_IKANA_GRAVEYARD_GROTTO] = RandoRegion{ .name = "Ikana Graveyard Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_IKANA_GRAVEYARD_GROTTO, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_01, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_02, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_03, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_04, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_05, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_06, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_07, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_08, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_09, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_10, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_11, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_12, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_13, true), + CHECK(RC_IKANA_GRAVEYARD_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_IKANA_GRAVEYARD_LOWER, true), // TODO: Grotto mapping }, }; Regions[RR_IKANA_GRAVEYARD_LOWER] = RandoRegion{ .name = "Lower", .sceneId = SCENE_BOTI, + .checks = { + CHECK(RC_IKANA_GRAVEYARD_GRASS_01, true), + CHECK(RC_IKANA_GRAVEYARD_GRASS_02, true), + CHECK(RC_IKANA_GRAVEYARD_GRASS_03, true), + CHECK(RC_IKANA_GRAVEYARD_GRASS_04, true), + CHECK(RC_IKANA_GRAVEYARD_GRASS_05, true), + CHECK(RC_IKANA_GRAVEYARD_GRASS_06, true), + CHECK(RC_IKANA_GRAVEYARD_GRASS_07, true), + CHECK(RC_IKANA_GRAVEYARD_GRASS_08, true), + CHECK(RC_IKANA_GRAVEYARD_GRASS_09, true), + }, .exits = { // TO FROM EXIT(ENTRANCE(ROAD_TO_IKANA, 2), ENTRANCE(IKANA_GRAVEYARD, 0), true), EXIT(ENTRANCE(DAMPES_HOUSE, 0), ONE_WAY_EXIT, HAS_ITEM(ITEM_MASK_CAPTAIN)), // Day 3 hole @@ -253,6 +292,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_ROAD_TO_IKANA_GROTTO] = RandoRegion{ .name = "Road to Ikana Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_ROAD_TO_IKANA_GROTTO_CHEST, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_01, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_02, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_03, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_04, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_05, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_06, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_07, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_08, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_09, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_10, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_11, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_12, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_13, true), + CHECK(RC_ROAD_TO_IKANA_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_ROAD_TO_IKANA_FIELD_SIDE, true), // TODO: Grotto mapping diff --git a/mm/2s2h/Rando/Logic/Regions/MilkRoad.cpp b/mm/2s2h/Rando/Logic/Regions/MilkRoad.cpp new file mode 100644 index 000000000..420be8e31 --- /dev/null +++ b/mm/2s2h/Rando/Logic/Regions/MilkRoad.cpp @@ -0,0 +1,186 @@ +#include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/ShipInit.hpp" + +#include "2s2h/Rando/Logic/Logic.h" + +using namespace Rando::Logic; + +// clang-format off +static RegisterShipInitFunc initFunc([]() { + Regions[RR_CUCCO_SHACK] = RandoRegion{ .sceneId = SCENE_F01C, + .checks = { + CHECK(RC_ROMANI_RANCH_GROG, HAS_ITEM(ITEM_MASK_BREMEN)), + CHECK(RC_CUCCO_SHACK_LARGE_CRATE_01, true), + CHECK(RC_CUCCO_SHACK_LARGE_CRATE_02, true), + CHECK(RC_CUCCO_SHACK_LARGE_CRATE_03, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(ROMANI_RANCH, 4), ENTRANCE(CUCCO_SHACK, 0), true), + }, + }; + Regions[RR_DOGGY_RACETRACK] = RandoRegion{ .sceneId = SCENE_F01_B, + .checks = { + // TODO: Trick: Jumpslash to clip through (similar to Clock Town Straw). + // Zora can just climb up, adding it to logic for now but if someone wants to make it a trick later feel free. + CHECK(RC_DOGGY_RACETRACK_CHEST, HAS_ITEM(ITEM_HOOKSHOT) || CAN_GROW_BEAN_PLANT || CAN_BE_ZORA), + CHECK(RC_DOGGY_RACETRACK_PIECE_OF_HEART, HAS_ITEM(ITEM_MASK_TRUTH)), + CHECK(RC_DOGGY_RACETRACK_POT_01, true), + CHECK(RC_DOGGY_RACETRACK_POT_02, true), + CHECK(RC_DOGGY_RACETRACK_POT_03, true), + CHECK(RC_DOGGY_RACETRACK_POT_04, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(ROMANI_RANCH, 5), ENTRANCE(DOGGY_RACETRACK, 0), true), + }, + }; + Regions[RR_GORMAN_TRACK] = RandoRegion{ .sceneId = SCENE_KOEPONARACE, + .checks = { + CHECK(RC_GORMAN_MILK_PURCHASE, CAN_AFFORD(RC_GORMAN_MILK_PURCHASE)), + // TODO : Also apparently can be obtained using a trick with Goron mask and Bombs. Add trick later here + CHECK(RC_GORMAN_TRACK_LARGE_CRATE, RANDO_EVENTS[RE_COWS_FROM_ALIENS]), // Night 2 only, after defending cows from aliens. + CHECK(RC_GORMAN_TRACK_GARO_MASK, CAN_PLAY_SONG(EPONA)), + CHECK(RC_GORMAN_TRACK_GRASS_01, true), + CHECK(RC_GORMAN_TRACK_GRASS_02, true), + CHECK(RC_GORMAN_TRACK_GRASS_03, true), + CHECK(RC_GORMAN_TRACK_GRASS_04, true), + CHECK(RC_GORMAN_TRACK_GRASS_05, true), + CHECK(RC_GORMAN_TRACK_GRASS_06, true), + CHECK(RC_GORMAN_TRACK_GRASS_07, true), + CHECK(RC_GORMAN_TRACK_GRASS_08, true), + CHECK(RC_GORMAN_TRACK_GRASS_09, true), + CHECK(RC_GORMAN_TRACK_GRASS_10, true), + CHECK(RC_GORMAN_TRACK_GRASS_11, true), + CHECK(RC_GORMAN_TRACK_GRASS_12, true), + CHECK(RC_GORMAN_TRACK_GRASS_13, true), + CHECK(RC_GORMAN_TRACK_GRASS_14, true), + CHECK(RC_GORMAN_TRACK_GRASS_15, true), + CHECK(RC_GORMAN_TRACK_GRASS_16, true), + CHECK(RC_GORMAN_TRACK_GRASS_17, true), + CHECK(RC_GORMAN_TRACK_GRASS_18, true), + CHECK(RC_GORMAN_TRACK_GRASS_19, true), + CHECK(RC_GORMAN_TRACK_GRASS_20, true), + CHECK(RC_GORMAN_TRACK_GRASS_21, true), + CHECK(RC_GORMAN_TRACK_GRASS_22, true), + CHECK(RC_GORMAN_TRACK_GRASS_23, true), + CHECK(RC_GORMAN_TRACK_GRASS_24, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(MILK_ROAD, 2), ENTRANCE(GORMAN_TRACK, 3), CAN_PLAY_SONG(EPONA)), + EXIT(ENTRANCE(MILK_ROAD, 3), ENTRANCE(GORMAN_TRACK, 0), true), + }, + }; + Regions[RR_MILK_ROAD] = RandoRegion{ .sceneId = SCENE_ROMANYMAE, + .checks = { + CHECK(RC_KEATON_QUIZ, HAS_ITEM(ITEM_MASK_KEATON)), + CHECK(RC_MILK_ROAD_OWL_STATUE, CAN_USE_SWORD), + CHECK(RC_MILK_ROAD_TINGLE_MAP_01, CAN_USE_PROJECTILE && CAN_AFFORD(RC_MILK_ROAD_TINGLE_MAP_01)), + CHECK(RC_MILK_ROAD_TINGLE_MAP_02, CAN_USE_PROJECTILE && CAN_AFFORD(RC_MILK_ROAD_TINGLE_MAP_02)), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 5), ENTRANCE(MILK_ROAD, 0), true), + EXIT(ENTRANCE(ROMANI_RANCH, 0), ENTRANCE(MILK_ROAD, 1), true), + EXIT(ENTRANCE(GORMAN_TRACK, 3), ENTRANCE(MILK_ROAD, 2), CAN_PLAY_SONG(EPONA)), + EXIT(ENTRANCE(GORMAN_TRACK, 0), ENTRANCE(MILK_ROAD, 3), true), + }, + .events = { + EVENT(RE_ACCESS_PICTOGRAPH_TINGLE, HAS_ITEM(ITEM_PICTOGRAPH_BOX)), + }, + .oneWayEntrances = { + ENTRANCE(MILK_ROAD, 4), // From Song of Soaring + } + }; + Regions[RR_RANCH_BARN] = RandoRegion{ .sceneId = SCENE_OMOYA, + .checks = { + CHECK(RC_ROMANI_RANCH_BARN_COW_LEFT, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), + CHECK(RC_ROMANI_RANCH_BARN_COW_MIDDLE, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), + CHECK(RC_ROMANI_RANCH_BARN_COW_RIGHT, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)) + }, + .exits = { // TO FROM + EXIT(ENTRANCE(ROMANI_RANCH, 2), ENTRANCE(RANCH_HOUSE, 0), true), + }, + }; + Regions[RR_RANCH_HOUSE] = RandoRegion{ .sceneId = SCENE_OMOYA, + .exits = { // TO FROM + EXIT(ENTRANCE(ROMANI_RANCH, 3), ENTRANCE(RANCH_HOUSE, 1), true), + }, + }; + Regions[RR_ROMANI_RANCH] = RandoRegion{ .sceneId = SCENE_F01, + .checks = { + CHECK(RC_ROMANI_RANCH_ALIENS, HAS_ITEM(ITEM_BOW) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), + CHECK(RC_ROMANI_RANCH_EPONAS_SONG, CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), + CHECK(RC_ROMANI_RANCH_FIELD_COW_ENTRANCE, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), + CHECK(RC_ROMANI_RANCH_FIELD_COW_NEAR_HOUSE_BACK, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), + CHECK(RC_ROMANI_RANCH_FIELD_COW_NEAR_HOUSE_FRONT, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), + CHECK(RC_ROMANI_RANCH_FIELD_LARGE_CRATE, true), + CHECK(RC_CREMIA_ESCORT, HAS_ITEM(ITEM_BOW) && RANDO_EVENTS[RE_COWS_FROM_ALIENS]), + CHECK(RC_ROMANI_RANCH_GRASS_01, true), + CHECK(RC_ROMANI_RANCH_GRASS_02, true), + CHECK(RC_ROMANI_RANCH_GRASS_03, true), + CHECK(RC_ROMANI_RANCH_GRASS_04, true), + CHECK(RC_ROMANI_RANCH_GRASS_05, true), + CHECK(RC_ROMANI_RANCH_GRASS_06, true), + CHECK(RC_ROMANI_RANCH_GRASS_07, true), + CHECK(RC_ROMANI_RANCH_GRASS_08, true), + CHECK(RC_ROMANI_RANCH_GRASS_09, true), + CHECK(RC_ROMANI_RANCH_GRASS_10, true), + CHECK(RC_ROMANI_RANCH_GRASS_11, true), + CHECK(RC_ROMANI_RANCH_GRASS_12, true), + CHECK(RC_ROMANI_RANCH_GRASS_13, true), + CHECK(RC_ROMANI_RANCH_GRASS_14, true), + CHECK(RC_ROMANI_RANCH_GRASS_15, true), + CHECK(RC_ROMANI_RANCH_GRASS_16, true), + CHECK(RC_ROMANI_RANCH_GRASS_17, true), + CHECK(RC_ROMANI_RANCH_GRASS_18, true), + CHECK(RC_ROMANI_RANCH_GRASS_19, true), + CHECK(RC_ROMANI_RANCH_GRASS_20, true), + CHECK(RC_ROMANI_RANCH_GRASS_21, true), + CHECK(RC_ROMANI_RANCH_GRASS_22, true), + CHECK(RC_ROMANI_RANCH_GRASS_23, true), + CHECK(RC_ROMANI_RANCH_GRASS_24, true), + CHECK(RC_ROMANI_RANCH_GRASS_25, true), + CHECK(RC_ROMANI_RANCH_GRASS_26, true), + CHECK(RC_ROMANI_RANCH_GRASS_27, true), + CHECK(RC_ROMANI_RANCH_GRASS_28, true), + CHECK(RC_ROMANI_RANCH_GRASS_29, true), + CHECK(RC_ROMANI_RANCH_GRASS_30, true), + CHECK(RC_ROMANI_RANCH_GRASS_31, true), + CHECK(RC_ROMANI_RANCH_GRASS_32, true), + CHECK(RC_ROMANI_RANCH_GRASS_33, true), + CHECK(RC_ROMANI_RANCH_GRASS_34, true), + CHECK(RC_ROMANI_RANCH_GRASS_35, true), + CHECK(RC_ROMANI_RANCH_GRASS_36, true), + CHECK(RC_ROMANI_RANCH_GRASS_37, true), + CHECK(RC_ROMANI_RANCH_GRASS_38, true), + CHECK(RC_ROMANI_RANCH_GRASS_39, true), + CHECK(RC_ROMANI_RANCH_GRASS_40, true), + CHECK(RC_ROMANI_RANCH_GRASS_41, true), + CHECK(RC_ROMANI_RANCH_GRASS_42, true), + CHECK(RC_ROMANI_RANCH_GRASS_43, true), + CHECK(RC_ROMANI_RANCH_GRASS_44, true), + CHECK(RC_ROMANI_RANCH_GRASS_45, true), + CHECK(RC_ROMANI_RANCH_GRASS_46, true), + CHECK(RC_ROMANI_RANCH_GRASS_47, true), + CHECK(RC_ROMANI_RANCH_GRASS_48, true), + CHECK(RC_ROMANI_RANCH_GRASS_49, true), + CHECK(RC_ROMANI_RANCH_GRASS_50, true), + CHECK(RC_ROMANI_RANCH_GRASS_51, true), + CHECK(RC_ROMANI_RANCH_GRASS_52, true), + CHECK(RC_ROMANI_RANCH_GRASS_53, true), + CHECK(RC_ROMANI_RANCH_GRASS_54, true), + CHECK(RC_ROMANI_RANCH_GRASS_55, true), + CHECK(RC_ROMANI_RANCH_GRASS_56, true), + CHECK(RC_ROMANI_RANCH_GRASS_57, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(MILK_ROAD, 1), ENTRANCE(ROMANI_RANCH, 0), true), + EXIT(ENTRANCE(RANCH_HOUSE, 0), ENTRANCE(ROMANI_RANCH, 2), true), // Barn + EXIT(ENTRANCE(RANCH_HOUSE, 1), ENTRANCE(ROMANI_RANCH, 3), true), // House + EXIT(ENTRANCE(CUCCO_SHACK, 0), ENTRANCE(ROMANI_RANCH, 4), true), + EXIT(ENTRANCE(DOGGY_RACETRACK, 0), ENTRANCE(ROMANI_RANCH, 5), true), + }, + .events = { + EVENT(RE_COWS_FROM_ALIENS, CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG) && HAS_ITEM(ITEM_BOW)), + }, + }; +}, {}); +// clang-format on diff --git a/mm/2s2h/Rando/Logic/Regions/North.cpp b/mm/2s2h/Rando/Logic/Regions/North.cpp index 57d8d1bc9..70849ea0b 100644 --- a/mm/2s2h/Rando/Logic/Regions/North.cpp +++ b/mm/2s2h/Rando/Logic/Regions/North.cpp @@ -146,7 +146,31 @@ static RegisterShipInitFunc initFunc([]() { .checks = { CHECK(RC_LONE_PEAK_SHRINE_BOULDER_CHEST, CAN_USE_EXPLOSIVE), CHECK(RC_LONE_PEAK_SHRINE_INVISIBLE_CHEST, HAS_ITEM(ITEM_LENS_OF_TRUTH) && HAS_MAGIC), - CHECK(RC_LONE_PEAK_SHRINE_LENS_CHEST, true) + CHECK(RC_LONE_PEAK_SHRINE_LENS_CHEST, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_01, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_02, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_03, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_04, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_05, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_06, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_07, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_08, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_09, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_10, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_11, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_12, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_13, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_14, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_15, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_16, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_17, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_18, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_19, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_20, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_21, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_22, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_23, true), + CHECK(RC_LONE_PEAK_SHRINE_GRASS_24, true), }, .exits = { // TO FROM EXIT(ENTRANCE(GORON_VILLAGE_WINTER, 3), ENTRANCE(GROTTOS, 16), true) @@ -164,6 +188,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MOUNTAIN_VILLAGE_TUNNEL_GROTTO] = RandoRegion{ .name = "Mountain Village Tunnel Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_CHEST, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_01, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_02, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_03, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_04, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_05, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_06, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_07, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_08, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_09, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_10, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_11, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_12, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_13, true), + CHECK(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_MOUNTAIN_VILLAGE, true), // TODO: Grotto mapping @@ -179,6 +217,36 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_MOUNTAIN_VILLAGE_WINTER_POT, CAN_HOOK_SCARECROW), CHECK(RC_MOUNTAIN_VILLAGE_SPRING_POT, CAN_HOOK_SCARECROW && RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), CHECK(RC_MOUNTAIN_VILLAGE_SPRING_FREESTANDING_RUPEE_01, CAN_BE_GORON && RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_01, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_02, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_03, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_04, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_05, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_06, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_07, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_08, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_09, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_10, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_11, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_12, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_13, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_14, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_15, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_16, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_17, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_18, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_19, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_20, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_21, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_22, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_23, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_24, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_25, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_26, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_27, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_28, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_29, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_30, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), CHECK(RC_MOUNTAIN_VILLAGE_LARGE_SNOWBALL_01, CanKillEnemy(ACTOR_OBJ_SNOWBALL)), CHECK(RC_MOUNTAIN_VILLAGE_LARGE_SNOWBALL_02, CanKillEnemy(ACTOR_OBJ_SNOWBALL)), CHECK(RC_MOUNTAIN_VILLAGE_LARGE_SNOWBALL_03, CanKillEnemy(ACTOR_OBJ_SNOWBALL)), @@ -225,6 +293,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_PATH_TO_GORON_VILLAGE_RAMP_GROTTO] = RandoRegion{ .name = "Path to Goron Village Ramp Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_CHEST, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_01, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_02, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_03, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_04, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_05, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_06, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_07, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_08, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_09, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_10, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_11, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_12, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_13, true), + CHECK(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_PATH_TO_GORON_VILLAGE, true), // TODO: Grotto mapping @@ -242,6 +324,18 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_TWIN_ISLANDS_FREESTANDING_RUPEE_02, CAN_BE_ZORA && RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), CHECK(RC_TWIN_ISLANDS_FREESTANDING_RUPEE_03, CAN_BE_ZORA && RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), CHECK(RC_TWIN_ISLANDS_FREESTANDING_RUPEE_04, CAN_BE_ZORA && RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_01, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_02, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_03, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_04, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_05, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_06, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_07, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_08, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_09, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_10, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_11, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), + CHECK(RC_TWIN_ISLANDS_SPRING_GRASS_12, RANDO_EVENTS[RE_CLEARED_SNOWHEAD_TEMPLE]), CHECK(RC_TWIN_ISLANDS_LARGE_SNOWBALL_01, CanKillEnemy(ACTOR_OBJ_SNOWBALL)), CHECK(RC_TWIN_ISLANDS_LARGE_SNOWBALL_02, CanKillEnemy(ACTOR_OBJ_SNOWBALL)), CHECK(RC_TWIN_ISLANDS_LARGE_SNOWBALL_03, CanKillEnemy(ACTOR_OBJ_SNOWBALL)), @@ -315,6 +409,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_PATH_TO_SNOWHEAD_GROTTO] = RandoRegion{ .name = "Path To Snowhead Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_CHEST, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_01, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_02, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_03, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_04, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_05, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_06, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_07, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_08, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_09, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_10, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_11, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_12, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_13, true), + CHECK(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_PATH_TO_SNOWHEAD_UPPER, true), // TODO: Grotto mapping diff --git a/mm/2s2h/Rando/Logic/Regions/South.cpp b/mm/2s2h/Rando/Logic/Regions/South.cpp index be476a814..e78b5ee16 100644 --- a/mm/2s2h/Rando/Logic/Regions/South.cpp +++ b/mm/2s2h/Rando/Logic/Regions/South.cpp @@ -7,17 +7,6 @@ using namespace Rando::Logic; // clang-format off static RegisterShipInitFunc initFunc([]() { - Regions[RR_CUCCO_SHACK] = RandoRegion{ .sceneId = SCENE_F01C, - .checks = { - CHECK(RC_ROMANI_RANCH_GROG, HAS_ITEM(ITEM_MASK_BREMEN)), - CHECK(RC_CUCCO_SHACK_LARGE_CRATE_01, true), - CHECK(RC_CUCCO_SHACK_LARGE_CRATE_02, true), - CHECK(RC_CUCCO_SHACK_LARGE_CRATE_03, true), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(ROMANI_RANCH, 4), ENTRANCE(CUCCO_SHACK, 0), true), - }, - }; Regions[RR_DEKU_KINGS_CHAMBER_HOLDING_CELL] = RandoRegion{ .name = "Holding Cell", .sceneId = SCENE_DEKU_KING, .checks = { CHECK(RC_DEKU_KINGS_CHAMBER_MONKEY, CAN_BE_DEKU && HAS_ITEM(ITEM_OCARINA_OF_TIME)), @@ -38,6 +27,18 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_DEKU_PALACE_BEAN_SALESMAN_GROTTO] = RandoRegion{ .name = "Deku Palace Bean Salesman Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_DEKU_PALACE_GROTTO_CHEST, CAN_GROW_BEAN_PLANT || HAS_ITEM(ITEM_HOOKSHOT)), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_01, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_02, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_03, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_04, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_05, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_06, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_07, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_08, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_09, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_10, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_11, true), + CHECK(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_12, true), // TODO: Bean salesman check }, .exits = { // TO FROM @@ -141,33 +142,6 @@ static RegisterShipInitFunc initFunc([]() { CONNECTION(RR_DEKU_SHRINE_ENTRANCE, RANDO_EVENTS[RE_RETURN_DEKU_PRINCESS]), }, }; - Regions[RR_DOGGY_RACETRACK] = RandoRegion{ .sceneId = SCENE_F01_B, - .checks = { - // TODO: Trick: Jumpslash to clip through (similar to Clock Town Straw). - // Zora can just climb up, adding it to logic for now but if someone wants to make it a trick later feel free. - CHECK(RC_DOGGY_RACETRACK_CHEST, HAS_ITEM(ITEM_HOOKSHOT) || CAN_GROW_BEAN_PLANT || CAN_BE_ZORA), - CHECK(RC_DOGGY_RACETRACK_PIECE_OF_HEART, HAS_ITEM(ITEM_MASK_TRUTH)), - CHECK(RC_DOGGY_RACETRACK_POT_01, true), - CHECK(RC_DOGGY_RACETRACK_POT_02, true), - CHECK(RC_DOGGY_RACETRACK_POT_03, true), - CHECK(RC_DOGGY_RACETRACK_POT_04, true), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(ROMANI_RANCH, 5), ENTRANCE(DOGGY_RACETRACK, 0), true), - }, - }; - Regions[RR_GORMAN_TRACK] = RandoRegion{ .sceneId = SCENE_KOEPONARACE, - .checks = { - CHECK(RC_GORMAN_MILK_PURCHASE, CAN_AFFORD(RC_GORMAN_MILK_PURCHASE)), - // TODO : Also apparently can be obtained using a trick with Goron mask and Bombs. Add trick later here - CHECK(RC_GORMAN_TRACK_LARGE_CRATE, RANDO_EVENTS[RE_COWS_FROM_ALIENS]), // Night 2 only, after defending cows from aliens. - CHECK(RC_GORMAN_TRACK_GARO_MASK, CAN_PLAY_SONG(EPONA)), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(MILK_ROAD, 2), ENTRANCE(GORMAN_TRACK, 3), CAN_PLAY_SONG(EPONA)), - EXIT(ENTRANCE(MILK_ROAD, 3), ENTRANCE(GORMAN_TRACK, 0), true), - }, - }; Regions[RR_MAGIC_HAGS_POTION_SHOP] = RandoRegion{ .sceneId = SCENE_WITCH_SHOP, .checks = { CHECK(RC_HAGS_POTION_SHOP_FREESTANDING_RUPEE, true), @@ -184,44 +158,23 @@ static RegisterShipInitFunc initFunc([]() { EVENT(RE_ACCESS_RED_POTION_REFILL, true), }, }; - Regions[RR_MILK_ROAD] = RandoRegion{ .sceneId = SCENE_ROMANYMAE, - .checks = { - CHECK(RC_KEATON_QUIZ, HAS_ITEM(ITEM_MASK_KEATON)), - CHECK(RC_MILK_ROAD_OWL_STATUE, CAN_USE_SWORD), - CHECK(RC_MILK_ROAD_TINGLE_MAP_01, CAN_USE_PROJECTILE && CAN_AFFORD(RC_MILK_ROAD_TINGLE_MAP_01)), - CHECK(RC_MILK_ROAD_TINGLE_MAP_02, CAN_USE_PROJECTILE && CAN_AFFORD(RC_MILK_ROAD_TINGLE_MAP_02)), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(TERMINA_FIELD, 5), ENTRANCE(MILK_ROAD, 0), true), - EXIT(ENTRANCE(ROMANI_RANCH, 0), ENTRANCE(MILK_ROAD, 1), true), - EXIT(ENTRANCE(GORMAN_TRACK, 3), ENTRANCE(MILK_ROAD, 2), CAN_PLAY_SONG(EPONA)), - EXIT(ENTRANCE(GORMAN_TRACK, 0), ENTRANCE(MILK_ROAD, 3), true), - }, - .events = { - EVENT(RE_ACCESS_PICTOGRAPH_TINGLE, HAS_ITEM(ITEM_PICTOGRAPH_BOX)), - }, - .oneWayEntrances = { - ENTRANCE(MILK_ROAD, 4), // From Song of Soaring - } - }; - Regions[RR_RANCH_BARN] = RandoRegion{ .sceneId = SCENE_OMOYA, - .checks = { - CHECK(RC_ROMANI_RANCH_BARN_COW_LEFT, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), - CHECK(RC_ROMANI_RANCH_BARN_COW_MIDDLE, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), - CHECK(RC_ROMANI_RANCH_BARN_COW_RIGHT, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)) - }, - .exits = { // TO FROM - EXIT(ENTRANCE(ROMANI_RANCH, 2), ENTRANCE(RANCH_HOUSE, 0), true), - }, - }; - Regions[RR_RANCH_HOUSE] = RandoRegion{ .sceneId = SCENE_OMOYA, - .exits = { // TO FROM - EXIT(ENTRANCE(ROMANI_RANCH, 3), ENTRANCE(RANCH_HOUSE, 1), true), - }, - }; Regions[RR_ROAD_TO_SOUTHERN_SWAMP_GROTTO] = RandoRegion{ .name = "Road to Southern Swamp Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_CHEST, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_01, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_02, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_03, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_04, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_05, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_06, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_07, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_08, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_09, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_10, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_11, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_12, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_13, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_ROAD_TO_SOUTHERN_SWAMP, true), // TODO: Grotto mapping @@ -232,6 +185,26 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_PIECE_OF_HEART, CAN_USE_PROJECTILE || HAS_ITEM(ITEM_BOMBCHU)), CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_TINGLE_MAP_01, CAN_USE_PROJECTILE && CAN_AFFORD(RC_ROAD_TO_SOUTHERN_SWAMP_TINGLE_MAP_01)), CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_TINGLE_MAP_02, CAN_USE_PROJECTILE && CAN_AFFORD(RC_ROAD_TO_SOUTHERN_SWAMP_TINGLE_MAP_02)), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_01, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_02, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_03, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_04, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_05, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_06, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_07, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_08, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_09, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_10, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_11, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_12, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_13, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_14, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_15, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_16, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_17, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_18, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_19, true), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_20, true), }, .exits = { // TO FROM EXIT(ENTRANCE(TERMINA_FIELD, 1), ENTRANCE(ROAD_TO_SOUTHERN_SWAMP, 0), true), @@ -246,30 +219,23 @@ static RegisterShipInitFunc initFunc([]() { EVENT(RE_ACCESS_SPRING_WATER, true), }, }; - Regions[RR_ROMANI_RANCH] = RandoRegion{ .sceneId = SCENE_F01, - .checks = { - CHECK(RC_ROMANI_RANCH_ALIENS, HAS_ITEM(ITEM_BOW) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), - CHECK(RC_ROMANI_RANCH_EPONAS_SONG, CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), - CHECK(RC_ROMANI_RANCH_FIELD_COW_ENTRANCE, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), - CHECK(RC_ROMANI_RANCH_FIELD_COW_NEAR_HOUSE_BACK, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), - CHECK(RC_ROMANI_RANCH_FIELD_COW_NEAR_HOUSE_FRONT, CAN_PLAY_SONG(EPONA) && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), - CHECK(RC_ROMANI_RANCH_FIELD_LARGE_CRATE, true), - CHECK(RC_CREMIA_ESCORT, HAS_ITEM(ITEM_BOW) && RANDO_EVENTS[RE_COWS_FROM_ALIENS]), - }, - .exits = { // TO FROM - EXIT(ENTRANCE(MILK_ROAD, 1), ENTRANCE(ROMANI_RANCH, 0), true), - EXIT(ENTRANCE(RANCH_HOUSE, 0), ENTRANCE(ROMANI_RANCH, 2), true), // Barn - EXIT(ENTRANCE(RANCH_HOUSE, 1), ENTRANCE(ROMANI_RANCH, 3), true), // House - EXIT(ENTRANCE(CUCCO_SHACK, 0), ENTRANCE(ROMANI_RANCH, 4), true), - EXIT(ENTRANCE(DOGGY_RACETRACK, 0), ENTRANCE(ROMANI_RANCH, 5), true), - }, - .events = { - EVENT(RE_COWS_FROM_ALIENS, CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG) && HAS_ITEM(ITEM_BOW)), - }, - }; Regions[RR_SOUTHERN_SWAMP_GROTTO] = RandoRegion{ .name = "Southern Swamp Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_SOUTHERN_SWAMP_GROTTO_CHEST, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_01, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_02, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_03, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_04, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_05, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_06, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_07, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_08, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_09, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_10, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_11, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_12, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_13, true), + CHECK(RC_SOUTHERN_SWAMP_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_SOUTHERN_SWAMP_SOUTH, true), // TODO: Grotto mapping @@ -289,6 +255,66 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_SOUTHERN_SWAMP_CLEAR_POT_03, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), CHECK(RC_SOUTHERN_SWAMP_FREESTANDING_RUPEE_01, CAN_BE_DEKU || CAN_BE_ZORA), CHECK(RC_SOUTHERN_SWAMP_FREESTANDING_RUPEE_02, CAN_BE_DEKU || CAN_BE_ZORA), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_01, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_02, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_03, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_04, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_05, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_06, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_07, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_08, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_09, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_10, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_11, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_12, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_13, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_14, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_15, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_16, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_17, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_18, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_19, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_20, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_21, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_22, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_23, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_24, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_25, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_26, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_27, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_28, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_29, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_CLEARED_GRASS_30, RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE]), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_01, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_02, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_03, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_04, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_05, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_06, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_07, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_08, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_09, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_10, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_11, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_12, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_13, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_14, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_15, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_16, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_17, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_18, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_19, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_20, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_21, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_22, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_23, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_24, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_25, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_26, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_27, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_28, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_29, true), + CHECK(RC_SOUTHERN_SWAMP_POISON_GRASS_30, true), }, .exits = { // TO FROM EXIT(ENTRANCE(ROAD_TO_SOUTHERN_SWAMP, 1), ENTRANCE(SOUTHERN_SWAMP_POISONED, 0), true), @@ -370,6 +396,12 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_WOODFALL_POT_02, CAN_BE_DEKU || CAN_OWL_WARP(OWL_WARP_WOODFALL)), CHECK(RC_WOODFALL_POT_03, CAN_BE_DEKU || CAN_OWL_WARP(OWL_WARP_WOODFALL)), CHECK(RC_WOODFALL_FREESTANDING_RUPEE, CAN_BE_DEKU), + CHECK(RC_WOODFALL_GRASS_01, true), + CHECK(RC_WOODFALL_GRASS_02, true), + CHECK(RC_WOODFALL_GRASS_03, true), + CHECK(RC_WOODFALL_GRASS_04, true), + CHECK(RC_WOODFALL_GRASS_05, true), + CHECK(RC_WOODFALL_GRASS_06, true), }, .exits = { // TO FROM EXIT(ENTRANCE(SOUTHERN_SWAMP_POISONED, 2), ENTRANCE(WOODFALL, 0), true), @@ -381,12 +413,49 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_WOODS_OF_MYSTERY_GROTTO] = RandoRegion{ .name = "Woods of Mystery Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_WOODS_OF_MYSTERY_GROTTO_CHEST, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_01, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_02, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_03, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_04, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_05, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_06, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_07, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_08, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_09, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_10, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_11, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_12, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_13, true), + CHECK(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_WOODS_OF_MYSTERY, true), // TODO: Grotto mapping }, }; Regions[RR_WOODS_OF_MYSTERY] = RandoRegion{ .sceneId = SCENE_26SARUNOMORI, + .checks = { + CHECK(RC_WOODS_OF_MYSTERY_GRASS_01, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_02, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_03, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_04, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_05, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_06, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_07, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_08, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_09, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_10, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_11, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_12, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_13, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_14, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_15, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_16, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_17, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_18, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_19, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_20, true), + CHECK(RC_WOODS_OF_MYSTERY_GRASS_21, true), + }, .exits = { // TO FROM EXIT(ENTRANCE(SOUTHERN_SWAMP_POISONED, 7), ENTRANCE(WOODS_OF_MYSTERY, 0), true), }, diff --git a/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp b/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp new file mode 100644 index 000000000..bb1b83a35 --- /dev/null +++ b/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp @@ -0,0 +1,519 @@ +#include "2s2h/GameInteractor/GameInteractor.h" +#include "2s2h/ShipInit.hpp" + +#include "2s2h/Rando/Logic/Logic.h" + +using namespace Rando::Logic; + +// clang-format off +static RegisterShipInitFunc initFunc([]() { + Regions[RR_TERMINA_FIELD_BEFORE_GREAT_BAY_COAST] = RandoRegion{ .name = "Before Great Bay Coast", .sceneId = SCENE_00KEIKOKU, + .exits = { // TO FROM + EXIT(ENTRANCE(GREAT_BAY_COAST, 0), ENTRANCE(TERMINA_FIELD, 2), true), + }, + .connections = { + CONNECTION(RR_TERMINA_FIELD, CAN_PLAY_SONG(EPONA)), + }, + }; + Regions[RR_TERMINA_FIELD_BEFORE_PATH_TO_MOUNTAIN_VILLAGE] = RandoRegion{ .sceneId = SCENE_00KEIKOKU, + .exits = { // TO FROM + EXIT(ENTRANCE(PATH_TO_MOUNTAIN_VILLAGE, 0), ENTRANCE(TERMINA_FIELD, 3), true), + }, + .connections = { + CONNECTION(RR_TERMINA_FIELD, HAS_ITEM(ITEM_BOW)), + }, + }; + Regions[RR_TERMINA_FIELD_BIO_BABA_GROTTO] = RandoRegion{ .name = "Termina Field Bio Baba", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_BIO_BABA_GROTTO, CAN_BE_ZORA), + CHECK(RC_TERMINA_FIELD_BIO_BABA_GROTTO_GRASS_01, true), + CHECK(RC_TERMINA_FIELD_BIO_BABA_GROTTO_GRASS_02, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 11), true), // TODO: Grotto mapping + }, + }; + Regions[RR_TERMINA_FIELD_COW_GROTTO] = RandoRegion{ .name = "Termina Field Cow", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_COW_BACK, CAN_PLAY_SONG(EPONA)), + CHECK(RC_TERMINA_FIELD_COW_FRONT, CAN_PLAY_SONG(EPONA)), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_01, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_02, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_03, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_04, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_05, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_06, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_07, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_08, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_09, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_10, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_11, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_12, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_13, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_14, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_15, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_16, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_17, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_18, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_19, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_20, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_21, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_22, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_23, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_24, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_25, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_26, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_27, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_28, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_29, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_30, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_31, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_32, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_33, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_34, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_35, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_36, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_37, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_38, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_39, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_40, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_41, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_42, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_43, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_44, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_45, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_46, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_47, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_48, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_49, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_50, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_51, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_52, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_53, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_54, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_55, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_56, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_57, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_58, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_59, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_60, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_61, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_62, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_63, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_64, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_65, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_66, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_67, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_68, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_69, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_70, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_71, true), + CHECK(RC_TERMINA_FIELD_COW_GROTTO_GRASS_72, true), + }, + .connections = { + CONNECTION(RR_TERMINA_FIELD, true), // TODO: Grotto mapping + }, + }; + Regions[RR_TERMINA_FIELD_DODONGO_GROTTO] = RandoRegion{ .name = "Termina Field Dodongo", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_DODONGO_GROTTO_CHEST, CAN_USE_SWORD || CAN_BE_ZORA || CAN_BE_GORON), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 7), true), // TODO: Grotto mapping + }, + }; + Regions[RR_TERMINA_FIELD_GOSSIP_STONE_GROTTO_1] = RandoRegion{ .name = "Termina Field Gossip Stone #1", .sceneId = SCENE_KAKUSIANA, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 1), true), // TODO: Grotto mapping + }, + .events = { + // TODO: gSaveContext.save.saveInfo.unk_EA0 for gossip stone check + }, + }; + Regions[RR_TERMINA_FIELD_GOSSIP_STONE_GROTTO_2] = RandoRegion{ .name = "Termina Field Gossip Stone #2", .sceneId = SCENE_KAKUSIANA, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 3), true), // TODO: Grotto mapping + }, + .events = { + // TODO: gSaveContext.save.saveInfo.unk_EA0 for gossip stone check + }, + }; + Regions[RR_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3] = RandoRegion{ .name = "Termina Field Gossip Stone #3", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO, (CAN_BE_DEKU && CAN_PLAY_SONG(SONATA)) || (CAN_BE_GORON && CAN_PLAY_SONG(LULLABY)) || (CAN_BE_ZORA && CAN_PLAY_SONG(BOSSA_NOVA))), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_01, true), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_02, true), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_03, true), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_04, true), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_05, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 0), true), // TODO: Grotto mapping + }, + .events = { + // TODO: gSaveContext.save.saveInfo.unk_EA0 for gossip stone check + }, + }; + Regions[RR_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4] = RandoRegion{ .name = "Termina Field Gossip Stone #4", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_01, true), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_02, true), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_03, true), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_04, true), + CHECK(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_05, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 2), true), // TODO: Grotto mapping + }, + .events = { + // TODO: gSaveContext.save.saveInfo.unk_EA0 for gossip stone check + }, + }; + Regions[RR_TERMINA_FIELD_PEAHAT_GROTTO] = RandoRegion{ .name = "Termina Field Peahat", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_CHEST, CAN_USE_SWORD || CAN_BE_ZORA || CAN_BE_GORON), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_01, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_02, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_03, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_04, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_05, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_06, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_07, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_08, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_09, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_10, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_11, true), + CHECK(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_12, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 13), true), // TODO: Grotto mapping + }, + }; + Regions[RR_TERMINA_FIELD_PILLAR_GROTTO] = RandoRegion{ .name = "Termina Field Pillar", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_CHEST, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_01, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_02, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_03, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_04, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_05, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_06, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_07, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_08, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_09, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_10, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_11, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_12, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_13, true), + CHECK(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_14, true), + }, + .connections = { + CONNECTION(RR_TERMINA_FIELD, true), // TODO: Grotto mapping + }, + }; + Regions[RR_TERMINA_FIELD_SCRUB_GROTTO] = RandoRegion{ .name = "Termina Field Scrub", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_GROTTO_SCRUB, CUR_UPG_VALUE(UPG_WALLET) >= 1 && RANDO_EVENTS[RE_TERMINA_FIELD_SCRUB_ENTERED_GROTTO]), + CHECK(RC_TERMINA_FIELD_SCRUB_LARGE_CRATE, true), + CHECK(RC_TERMINA_FIELD_SCRUB_POT, true), + }, + .exits = { // TO FROM + EXIT(ENTRANCE(TERMINA_FIELD, 0), ENTRANCE(GROTTOS, 9), true), // TODO: Grotto mapping + }, + }; + Regions[RR_TERMINA_FIELD_TALL_GRASS_GROTTO] = RandoRegion{ .name = "Termina Field Tall Grass", .sceneId = SCENE_KAKUSIANA, + .checks = { + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_CHEST, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_01, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_02, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_03, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_04, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_05, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_06, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_07, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_08, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_09, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_10, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_11, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_12, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_13, true), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_14, true), + }, + .connections = { + CONNECTION(RR_TERMINA_FIELD, true), // TODO: Grotto mapping + }, + }; + Regions[RR_TERMINA_FIELD] = RandoRegion{ .sceneId = SCENE_00KEIKOKU, + .checks = { + CHECK(RC_TERMINA_FIELD_KAMARO_MASK, CAN_PLAY_SONG(HEALING)), + CHECK(RC_TERMINA_FIELD_POT, CAN_GROW_BEAN_PLANT), + CHECK(RC_TERMINA_FIELD_TALL_GRASS_CHEST, true), + CHECK(RC_TERMINA_FIELD_TREE_STUMP_CHEST, CAN_GROW_BEAN_PLANT || HAS_ITEM(ITEM_HOOKSHOT)), + CHECK(RC_TERMINA_FIELD_WATER_CHEST, CAN_BE_ZORA), + CHECK(RC_TERMINA_FIELD_FREESTANDING_RUPEE_01, true), // TODO: Fix duplicate item get... + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_01, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_02, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_03, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_04, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_05, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_06, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_07, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_08, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_09, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_10, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_11, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_12, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_13, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_14, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_15, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_16, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_17, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_18, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_19, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GUAY_RUPEE_DROP_20, CAN_PLAY_SONG(SONATA) || CAN_PLAY_SONG(LULLABY) || CAN_PLAY_SONG(BOSSA_NOVA)), + CHECK(RC_TERMINA_FIELD_GRASS_01, true), + CHECK(RC_TERMINA_FIELD_GRASS_02, true), + CHECK(RC_TERMINA_FIELD_GRASS_03, true), + CHECK(RC_TERMINA_FIELD_GRASS_04, true), + CHECK(RC_TERMINA_FIELD_GRASS_05, true), + CHECK(RC_TERMINA_FIELD_GRASS_06, true), + CHECK(RC_TERMINA_FIELD_GRASS_07, true), + CHECK(RC_TERMINA_FIELD_GRASS_08, true), + CHECK(RC_TERMINA_FIELD_GRASS_09, true), + CHECK(RC_TERMINA_FIELD_GRASS_10, true), + CHECK(RC_TERMINA_FIELD_GRASS_11, true), + CHECK(RC_TERMINA_FIELD_GRASS_12, true), + CHECK(RC_TERMINA_FIELD_GRASS_13, true), + CHECK(RC_TERMINA_FIELD_GRASS_14, true), + CHECK(RC_TERMINA_FIELD_GRASS_15, true), + CHECK(RC_TERMINA_FIELD_GRASS_16, true), + CHECK(RC_TERMINA_FIELD_GRASS_17, true), + CHECK(RC_TERMINA_FIELD_GRASS_18, true), + CHECK(RC_TERMINA_FIELD_GRASS_19, true), + CHECK(RC_TERMINA_FIELD_GRASS_20, true), + CHECK(RC_TERMINA_FIELD_GRASS_21, true), + CHECK(RC_TERMINA_FIELD_GRASS_22, true), + CHECK(RC_TERMINA_FIELD_GRASS_23, true), + CHECK(RC_TERMINA_FIELD_GRASS_24, true), + CHECK(RC_TERMINA_FIELD_GRASS_25, true), + CHECK(RC_TERMINA_FIELD_GRASS_26, true), + CHECK(RC_TERMINA_FIELD_GRASS_27, true), + CHECK(RC_TERMINA_FIELD_GRASS_28, true), + CHECK(RC_TERMINA_FIELD_GRASS_29, true), + CHECK(RC_TERMINA_FIELD_GRASS_30, true), + CHECK(RC_TERMINA_FIELD_GRASS_31, true), + CHECK(RC_TERMINA_FIELD_GRASS_32, true), + CHECK(RC_TERMINA_FIELD_GRASS_33, true), + CHECK(RC_TERMINA_FIELD_GRASS_34, true), + CHECK(RC_TERMINA_FIELD_GRASS_35, true), + CHECK(RC_TERMINA_FIELD_GRASS_36, true), + CHECK(RC_TERMINA_FIELD_GRASS_37, true), + CHECK(RC_TERMINA_FIELD_GRASS_38, true), + CHECK(RC_TERMINA_FIELD_GRASS_39, true), + CHECK(RC_TERMINA_FIELD_GRASS_40, true), + CHECK(RC_TERMINA_FIELD_GRASS_41, true), + CHECK(RC_TERMINA_FIELD_GRASS_42, true), + CHECK(RC_TERMINA_FIELD_GRASS_43, true), + CHECK(RC_TERMINA_FIELD_GRASS_44, true), + CHECK(RC_TERMINA_FIELD_GRASS_45, true), + CHECK(RC_TERMINA_FIELD_GRASS_46, true), + CHECK(RC_TERMINA_FIELD_GRASS_47, true), + CHECK(RC_TERMINA_FIELD_GRASS_48, true), + CHECK(RC_TERMINA_FIELD_GRASS_49, true), + CHECK(RC_TERMINA_FIELD_GRASS_50, true), + CHECK(RC_TERMINA_FIELD_GRASS_51, true), + CHECK(RC_TERMINA_FIELD_GRASS_52, true), + CHECK(RC_TERMINA_FIELD_GRASS_53, true), + CHECK(RC_TERMINA_FIELD_GRASS_54, true), + CHECK(RC_TERMINA_FIELD_GRASS_55, true), + CHECK(RC_TERMINA_FIELD_GRASS_56, true), + CHECK(RC_TERMINA_FIELD_GRASS_57, true), + CHECK(RC_TERMINA_FIELD_GRASS_58, true), + CHECK(RC_TERMINA_FIELD_GRASS_59, true), + CHECK(RC_TERMINA_FIELD_GRASS_60, true), + CHECK(RC_TERMINA_FIELD_GRASS_61, true), + CHECK(RC_TERMINA_FIELD_GRASS_62, true), + CHECK(RC_TERMINA_FIELD_GRASS_63, true), + CHECK(RC_TERMINA_FIELD_GRASS_64, true), + CHECK(RC_TERMINA_FIELD_GRASS_65, true), + CHECK(RC_TERMINA_FIELD_GRASS_66, true), + CHECK(RC_TERMINA_FIELD_GRASS_67, true), + CHECK(RC_TERMINA_FIELD_GRASS_68, true), + CHECK(RC_TERMINA_FIELD_GRASS_69, true), + CHECK(RC_TERMINA_FIELD_GRASS_70, true), + CHECK(RC_TERMINA_FIELD_GRASS_71, true), + CHECK(RC_TERMINA_FIELD_GRASS_72, true), + CHECK(RC_TERMINA_FIELD_GRASS_73, true), + CHECK(RC_TERMINA_FIELD_GRASS_74, true), + CHECK(RC_TERMINA_FIELD_GRASS_75, true), + CHECK(RC_TERMINA_FIELD_GRASS_76, true), + CHECK(RC_TERMINA_FIELD_GRASS_77, true), + CHECK(RC_TERMINA_FIELD_GRASS_78, true), + CHECK(RC_TERMINA_FIELD_GRASS_79, true), + CHECK(RC_TERMINA_FIELD_GRASS_80, true), + CHECK(RC_TERMINA_FIELD_GRASS_81, true), + CHECK(RC_TERMINA_FIELD_GRASS_82, true), + CHECK(RC_TERMINA_FIELD_GRASS_83, true), + CHECK(RC_TERMINA_FIELD_GRASS_84, true), + CHECK(RC_TERMINA_FIELD_GRASS_85, true), + CHECK(RC_TERMINA_FIELD_GRASS_86, true), + CHECK(RC_TERMINA_FIELD_GRASS_87, true), + CHECK(RC_TERMINA_FIELD_GRASS_88, true), + CHECK(RC_TERMINA_FIELD_GRASS_89, true), + CHECK(RC_TERMINA_FIELD_GRASS_90, true), + CHECK(RC_TERMINA_FIELD_GRASS_91, true), + CHECK(RC_TERMINA_FIELD_GRASS_92, true), + CHECK(RC_TERMINA_FIELD_GRASS_93, true), + CHECK(RC_TERMINA_FIELD_GRASS_94, true), + CHECK(RC_TERMINA_FIELD_GRASS_95, true), + CHECK(RC_TERMINA_FIELD_GRASS_96, true), + CHECK(RC_TERMINA_FIELD_GRASS_97, true), + CHECK(RC_TERMINA_FIELD_GRASS_98, true), + CHECK(RC_TERMINA_FIELD_GRASS_99, true), + CHECK(RC_TERMINA_FIELD_GRASS_100, true), + CHECK(RC_TERMINA_FIELD_GRASS_101, true), + CHECK(RC_TERMINA_FIELD_GRASS_102, true), + CHECK(RC_TERMINA_FIELD_GRASS_103, true), + CHECK(RC_TERMINA_FIELD_GRASS_104, true), + CHECK(RC_TERMINA_FIELD_GRASS_105, true), + CHECK(RC_TERMINA_FIELD_GRASS_106, true), + CHECK(RC_TERMINA_FIELD_GRASS_107, true), + CHECK(RC_TERMINA_FIELD_GRASS_108, true), + CHECK(RC_TERMINA_FIELD_GRASS_109, true), + CHECK(RC_TERMINA_FIELD_GRASS_110, true), + CHECK(RC_TERMINA_FIELD_GRASS_111, true), + CHECK(RC_TERMINA_FIELD_GRASS_112, true), + CHECK(RC_TERMINA_FIELD_GRASS_113, true), + CHECK(RC_TERMINA_FIELD_GRASS_114, true), + CHECK(RC_TERMINA_FIELD_GRASS_115, true), + CHECK(RC_TERMINA_FIELD_GRASS_116, true), + CHECK(RC_TERMINA_FIELD_GRASS_117, true), + CHECK(RC_TERMINA_FIELD_GRASS_118, true), + CHECK(RC_TERMINA_FIELD_GRASS_119, true), + CHECK(RC_TERMINA_FIELD_GRASS_120, true), + CHECK(RC_TERMINA_FIELD_GRASS_121, true), + CHECK(RC_TERMINA_FIELD_GRASS_122, true), + CHECK(RC_TERMINA_FIELD_GRASS_123, true), + CHECK(RC_TERMINA_FIELD_GRASS_124, true), + CHECK(RC_TERMINA_FIELD_GRASS_125, true), + CHECK(RC_TERMINA_FIELD_GRASS_126, true), + CHECK(RC_TERMINA_FIELD_GRASS_127, true), + CHECK(RC_TERMINA_FIELD_GRASS_128, true), + CHECK(RC_TERMINA_FIELD_GRASS_129, true), + CHECK(RC_TERMINA_FIELD_GRASS_130, true), + CHECK(RC_TERMINA_FIELD_GRASS_131, true), + CHECK(RC_TERMINA_FIELD_GRASS_132, true), + CHECK(RC_TERMINA_FIELD_GRASS_133, true), + CHECK(RC_TERMINA_FIELD_GRASS_134, true), + CHECK(RC_TERMINA_FIELD_GRASS_135, true), + CHECK(RC_TERMINA_FIELD_GRASS_136, true), + CHECK(RC_TERMINA_FIELD_GRASS_137, true), + CHECK(RC_TERMINA_FIELD_GRASS_138, true), + CHECK(RC_TERMINA_FIELD_GRASS_139, true), + CHECK(RC_TERMINA_FIELD_GRASS_140, true), + CHECK(RC_TERMINA_FIELD_GRASS_141, true), + CHECK(RC_TERMINA_FIELD_GRASS_142, true), + CHECK(RC_TERMINA_FIELD_GRASS_143, true), + CHECK(RC_TERMINA_FIELD_GRASS_144, true), + CHECK(RC_TERMINA_FIELD_GRASS_145, true), + CHECK(RC_TERMINA_FIELD_GRASS_146, true), + CHECK(RC_TERMINA_FIELD_GRASS_147, true), + CHECK(RC_TERMINA_FIELD_GRASS_148, true), + CHECK(RC_TERMINA_FIELD_GRASS_149, true), + CHECK(RC_TERMINA_FIELD_GRASS_150, true), + CHECK(RC_TERMINA_FIELD_GRASS_151, true), + CHECK(RC_TERMINA_FIELD_GRASS_152, true), + CHECK(RC_TERMINA_FIELD_GRASS_153, true), + CHECK(RC_TERMINA_FIELD_GRASS_154, true), + CHECK(RC_TERMINA_FIELD_GRASS_155, true), + CHECK(RC_TERMINA_FIELD_GRASS_156, true), + CHECK(RC_TERMINA_FIELD_GRASS_157, true), + CHECK(RC_TERMINA_FIELD_GRASS_158, true), + CHECK(RC_TERMINA_FIELD_GRASS_159, true), + CHECK(RC_TERMINA_FIELD_GRASS_160, true), + CHECK(RC_TERMINA_FIELD_GRASS_161, true), + CHECK(RC_TERMINA_FIELD_GRASS_162, true), + CHECK(RC_TERMINA_FIELD_GRASS_163, true), + CHECK(RC_TERMINA_FIELD_GRASS_164, true), + CHECK(RC_TERMINA_FIELD_GRASS_165, true), + CHECK(RC_TERMINA_FIELD_GRASS_166, true), + CHECK(RC_TERMINA_FIELD_GRASS_167, true), + CHECK(RC_TERMINA_FIELD_GRASS_168, true), + CHECK(RC_TERMINA_FIELD_GRASS_169, true), + CHECK(RC_TERMINA_FIELD_GRASS_170, true), + CHECK(RC_TERMINA_FIELD_GRASS_171, true), + CHECK(RC_TERMINA_FIELD_GRASS_172, true), + CHECK(RC_TERMINA_FIELD_GRASS_173, true), + CHECK(RC_TERMINA_FIELD_GRASS_174, true), + CHECK(RC_TERMINA_FIELD_GRASS_175, true), + CHECK(RC_TERMINA_FIELD_GRASS_176, true), + CHECK(RC_TERMINA_FIELD_GRASS_177, true), + CHECK(RC_TERMINA_FIELD_GRASS_178, true), + CHECK(RC_TERMINA_FIELD_GRASS_179, true), + CHECK(RC_TERMINA_FIELD_GRASS_180, true), + CHECK(RC_TERMINA_FIELD_GRASS_181, true), + CHECK(RC_TERMINA_FIELD_GRASS_182, true), + CHECK(RC_TERMINA_FIELD_GRASS_183, true), + CHECK(RC_TERMINA_FIELD_GRASS_184, true), + CHECK(RC_TERMINA_FIELD_GRASS_185, true), + CHECK(RC_TERMINA_FIELD_GRASS_186, true), + CHECK(RC_TERMINA_FIELD_GRASS_187, true), + CHECK(RC_TERMINA_FIELD_GRASS_188, true), + CHECK(RC_TERMINA_FIELD_GRASS_189, true), + CHECK(RC_TERMINA_FIELD_GRASS_190, true), + CHECK(RC_TERMINA_FIELD_GRASS_191, true), + CHECK(RC_TERMINA_FIELD_GRASS_192, true), + CHECK(RC_TERMINA_FIELD_GRASS_193, true), + CHECK(RC_TERMINA_FIELD_GRASS_194, true), + CHECK(RC_TERMINA_FIELD_GRASS_195, true), + CHECK(RC_TERMINA_FIELD_GRASS_196, true), + CHECK(RC_TERMINA_FIELD_GRASS_197, true), + CHECK(RC_TERMINA_FIELD_GRASS_198, true), + CHECK(RC_TERMINA_FIELD_GRASS_199, true), + CHECK(RC_TERMINA_FIELD_GRASS_200, true), + CHECK(RC_TERMINA_FIELD_GRASS_201, true), + CHECK(RC_TERMINA_FIELD_GRASS_202, true), + CHECK(RC_TERMINA_FIELD_GRASS_203, true), + CHECK(RC_TERMINA_FIELD_GRASS_204, true), + CHECK(RC_TERMINA_FIELD_GRASS_205, true), + CHECK(RC_TERMINA_FIELD_GRASS_206, true), + CHECK(RC_TERMINA_FIELD_GRASS_207, true), + CHECK(RC_TERMINA_FIELD_GRASS_208, true), + CHECK(RC_TERMINA_FIELD_GRASS_209, true), + CHECK(RC_TERMINA_FIELD_GRASS_210, true), + CHECK(RC_TERMINA_FIELD_GRASS_211, true), + CHECK(RC_TERMINA_FIELD_GRASS_212, true), + CHECK(RC_TERMINA_FIELD_GRASS_213, true), + CHECK(RC_TERMINA_FIELD_GRASS_214, true), + CHECK(RC_TERMINA_FIELD_GRASS_215, true), + CHECK(RC_TERMINA_FIELD_GRASS_216, true), + + }, + .exits = { // TO FROM + EXIT(ENTRANCE(GROTTOS, 0), ENTRANCE(TERMINA_FIELD, 0), CAN_USE_EXPLOSIVE || CAN_BE_GORON), // TODO: Grotto mapping Gossip Stone #3 + EXIT(ENTRANCE(GROTTOS, 1), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Gossip Stone #1 + EXIT(ENTRANCE(GROTTOS, 2), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Gossip Stone #4 + EXIT(ENTRANCE(GROTTOS, 3), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Gossip Stone #2 + EXIT(ENTRANCE(GROTTOS, 7), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Dodongo + EXIT(ENTRANCE(GROTTOS, 9), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping Scrub + EXIT(ENTRANCE(GROTTOS, 11), ENTRANCE(TERMINA_FIELD, 0), CAN_USE_EXPLOSIVE || CAN_BE_GORON), // TODO: Grotto mapping bio baba grotto + EXIT(ENTRANCE(GROTTOS, 13), ENTRANCE(TERMINA_FIELD, 0), true), // TODO: Grotto mapping peahat grotto + EXIT(ENTRANCE(WEST_CLOCK_TOWN, 0), ENTRANCE(TERMINA_FIELD, 0), true), + EXIT(ENTRANCE(ROAD_TO_SOUTHERN_SWAMP, 0), ENTRANCE(TERMINA_FIELD, 1), true), + EXIT(ENTRANCE(ROAD_TO_IKANA, 0), ENTRANCE(TERMINA_FIELD, 4), true), + EXIT(ENTRANCE(MILK_ROAD, 0), ENTRANCE(TERMINA_FIELD, 5), true), + EXIT(ENTRANCE(SOUTH_CLOCK_TOWN, 1), ENTRANCE(TERMINA_FIELD, 6), true), + EXIT(ENTRANCE(EAST_CLOCK_TOWN, 0), ENTRANCE(TERMINA_FIELD, 7), true), + EXIT(ENTRANCE(NORTH_CLOCK_TOWN, 0), ENTRANCE(TERMINA_FIELD, 8), true), + }, + .connections = { + CONNECTION(RR_TERMINA_FIELD_BEFORE_PATH_TO_MOUNTAIN_VILLAGE, HAS_ITEM(ITEM_BOW)), + CONNECTION(RR_TERMINA_FIELD_BEFORE_GREAT_BAY_COAST, CAN_PLAY_SONG(EPONA)), + CONNECTION(RR_ASTRAL_OBSERVATORY_OUTSIDE, CAN_BE_DEKU), + CONNECTION(RR_TERMINA_FIELD_COW_GROTTO, CAN_USE_EXPLOSIVE), // TODO: Grotto mapping + CONNECTION(RR_TERMINA_FIELD_PILLAR_GROTTO, true), // TODO: Grotto mapping + CONNECTION(RR_TERMINA_FIELD_TALL_GRASS_GROTTO, true), // TODO: Grotto mapping + }, + }; +}, {}); +// clang-format on diff --git a/mm/2s2h/Rando/Logic/Regions/West.cpp b/mm/2s2h/Rando/Logic/Regions/West.cpp index 51decb2f8..98aff33fc 100644 --- a/mm/2s2h/Rando/Logic/Regions/West.cpp +++ b/mm/2s2h/Rando/Logic/Regions/West.cpp @@ -20,6 +20,78 @@ static RegisterShipInitFunc initFunc([]() { .checks = { CHECK(RC_GREAT_BAY_COAST_COW_BACK, CAN_PLAY_SONG(EPONA)), CHECK(RC_GREAT_BAY_COAST_COW_FRONT, CAN_PLAY_SONG(EPONA)), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_01, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_02, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_03, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_04, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_05, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_06, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_07, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_08, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_09, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_10, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_11, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_12, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_13, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_14, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_15, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_16, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_17, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_18, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_19, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_20, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_21, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_22, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_23, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_24, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_25, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_26, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_27, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_28, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_29, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_30, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_31, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_32, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_33, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_34, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_35, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_36, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_37, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_38, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_39, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_40, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_41, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_42, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_43, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_44, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_45, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_46, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_47, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_48, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_49, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_50, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_51, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_52, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_53, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_54, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_55, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_56, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_57, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_58, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_59, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_60, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_61, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_62, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_63, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_64, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_65, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_66, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_67, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_68, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_69, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_70, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_71, true), + CHECK(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_72, true), }, .connections = { CONNECTION(RR_GREAT_BAY_COAST, true), // TODO: Grotto mapping @@ -28,6 +100,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GREAT_BAY_COAST_FISHERMAN_GROTTO] = RandoRegion{ .name = "Great Bay Coast Fisherman Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_CHEST, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_01, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_02, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_03, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_04, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_05, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_06, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_07, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_08, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_09, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_10, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_11, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_12, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_13, true), + CHECK(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_GREAT_BAY_COAST, true), // TODO: Grotto mapping @@ -56,6 +142,11 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_GREAT_BAY_COAST_LEDGE_POT_03, HAS_ITEM(ITEM_HOOKSHOT)), CHECK(RC_GREAT_BAY_COAST_TINGLE_MAP_01, (HAS_ITEM(ITEM_BOW) || HAS_ITEM(ITEM_HOOKSHOT)) && CAN_AFFORD(RC_GREAT_BAY_COAST_TINGLE_MAP_01)), CHECK(RC_GREAT_BAY_COAST_TINGLE_MAP_02, (HAS_ITEM(ITEM_BOW) || HAS_ITEM(ITEM_HOOKSHOT)) && CAN_AFFORD(RC_GREAT_BAY_COAST_TINGLE_MAP_02)), + CHECK(RC_GREAT_BAY_COAST_GRASS_01, true), + CHECK(RC_GREAT_BAY_COAST_GRASS_02, true), + CHECK(RC_GREAT_BAY_COAST_GRASS_03, true), + CHECK(RC_GREAT_BAY_COAST_GRASS_04, true), + CHECK(RC_GREAT_BAY_COAST_GRASS_05, true), }, .exits = { // TO FROM EXIT(ENTRANCE(TERMINA_FIELD, 2), ENTRANCE(GREAT_BAY_COAST, 0), true), @@ -161,6 +252,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_ZORA_CAPE_GROTTO] = RandoRegion{ .name = "Zora Cape Grotto", .sceneId = SCENE_KAKUSIANA, .checks = { CHECK(RC_ZORA_CAPE_GROTTO_CHEST, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_01, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_02, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_03, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_04, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_05, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_06, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_07, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_08, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_09, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_10, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_11, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_12, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_13, true), + CHECK(RC_ZORA_CAPE_GROTTO_GRASS_14, true), }, .connections = { CONNECTION(RR_ZORA_CAPE, true), // TODO: Grotto mapping diff --git a/mm/2s2h/Rando/Menu.cpp b/mm/2s2h/Rando/Menu.cpp index d336a674c..4548162a4 100644 --- a/mm/2s2h/Rando/Menu.cpp +++ b/mm/2s2h/Rando/Menu.cpp @@ -184,6 +184,7 @@ static void DrawLocationsTab() { CVarCheckbox("Shuffle Crate Drops", Rando::StaticData::Options[RO_SHUFFLE_CRATE_DROPS].cvar); CVarCheckbox("Shuffle Barrel Drops", Rando::StaticData::Options[RO_SHUFFLE_BARREL_DROPS].cvar); CVarCheckbox("Shuffle Snowball Drops", Rando::StaticData::Options[RO_SHUFFLE_SNOWBALL_DROPS].cvar); + CVarCheckbox("Shuffle Grass Drops", Rando::StaticData::Options[RO_SHUFFLE_GRASS_DROPS].cvar); CVarCheckbox("Shuffle Hive Drops", "gPlaceholderBool", CheckboxOptions({ { .disabled = true, .disabledTooltip = "Coming Soon" } })); CVarCheckbox("Shuffle Freestanding Items", Rando::StaticData::Options[RO_SHUFFLE_FREESTANDING_ITEMS].cvar); diff --git a/mm/2s2h/Rando/MiscBehavior/OnFileCreate.cpp b/mm/2s2h/Rando/MiscBehavior/OnFileCreate.cpp index 77c9d5f2c..d67835b54 100644 --- a/mm/2s2h/Rando/MiscBehavior/OnFileCreate.cpp +++ b/mm/2s2h/Rando/MiscBehavior/OnFileCreate.cpp @@ -150,6 +150,11 @@ void Rando::MiscBehavior::OnFileCreate(s16 fileNum) { continue; } + if (randoStaticCheck.randoCheckType == RCTYPE_GRASS && + RANDO_SAVE_OPTIONS[RO_SHUFFLE_GRASS_DROPS] == RO_GENERIC_NO) { + continue; + } + if (randoStaticCheck.randoCheckType == RCTYPE_FREESTANDING && RANDO_SAVE_OPTIONS[RO_SHUFFLE_FREESTANDING_ITEMS] == RO_GENERIC_NO) { continue; diff --git a/mm/2s2h/Rando/StaticData/Checks.cpp b/mm/2s2h/Rando/StaticData/Checks.cpp index 6c5c968f0..ce68b79a6 100644 --- a/mm/2s2h/Rando/StaticData/Checks.cpp +++ b/mm/2s2h/Rando/StaticData/Checks.cpp @@ -1371,6 +1371,858 @@ std::map<RandoCheckId, RandoStaticCheck> Checks = { RC(RC_TWIN_ISLANDS_SMALL_SNOWBALL_05, RCTYPE_SNOWBALL, SCENE_17SETUGEN, FLAG_NONE, 0x0, RI_JUNK), RC(RC_TWIN_ISLANDS_SMALL_SNOWBALL_06, RCTYPE_SNOWBALL, SCENE_17SETUGEN, FLAG_NONE, 0x0, RI_JUNK), + + // Grass // + RC(RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_01, RCTYPE_GRASS, SCENE_ALLEY, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_02, RCTYPE_GRASS, SCENE_ALLEY, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_03, RCTYPE_GRASS, SCENE_ALLEY, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_01, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_02, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_03, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_04, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_05, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_06, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_07, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_08, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_09, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_10, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_11, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_12, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_13, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_14, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_15, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_16, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_17, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_18, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_19, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_20, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_21, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_22, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_23, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GORMAN_TRACK_GRASS_24, RCTYPE_GRASS, SCENE_KOEPONARACE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_15, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_16, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_17, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_18, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_19, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_20, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_21, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_22, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_23, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_24, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_25, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_26, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_27, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_28, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_29, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_30, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_31, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_32, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_33, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_34, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_35, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_36, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_37, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_38, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_39, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_40, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_41, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_42, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_43, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_44, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_45, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_46, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_47, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_48, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_49, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_50, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_51, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_52, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_53, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_54, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_55, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_56, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_57, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_58, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_59, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_60, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_61, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_62, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_63, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_64, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_65, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_66, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_67, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_68, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_69, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_70, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_71, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_72, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_GRASS_01, RCTYPE_GRASS, SCENE_30GYOSON, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_GRASS_02, RCTYPE_GRASS, SCENE_30GYOSON, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_GRASS_03, RCTYPE_GRASS, SCENE_30GYOSON, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_GRASS_04, RCTYPE_GRASS, SCENE_30GYOSON, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_GREAT_BAY_COAST_GRASS_05, RCTYPE_GRASS, SCENE_30GYOSON, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_CANYON_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_01, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_02, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_03, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_04, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_05, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_06, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_07, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_08, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GRASS_09, RCTYPE_GRASS, SCENE_BOTI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_IKANA_GRAVEYARD_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_15, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_16, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_17, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_18, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_19, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_20, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_21, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_22, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_23, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_LONE_PEAK_SHRINE_GRASS_24, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_01, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_02, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_03, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_04, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_05, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_06, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_07, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_08, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_09, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_10, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_11, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_12, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_13, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_14, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_15, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_16, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_17, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_18, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_19, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_20, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_21, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_22, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_23, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_24, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_25, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_26, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_27, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_28, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_29, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_SPRING_GRASS_30, RCTYPE_GRASS, SCENE_10YUKIYAMANOMURA2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_IKANA_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_01, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_02, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_03, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_04, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_05, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_06, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_07, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_08, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_09, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_10, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_11, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_12, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_13, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_14, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_15, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_16, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_17, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_18, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_19, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_20, RCTYPE_GRASS, SCENE_24KEMONOMITI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_01, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_02, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_03, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_04, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_05, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_06, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_07, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_08, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_09, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_10, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_11, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_12, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_13, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_14, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_15, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_16, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_17, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_18, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_19, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_20, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_21, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_22, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_23, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_24, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_25, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_26, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_27, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_28, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_29, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_30, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_31, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_32, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_33, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_34, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_35, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_36, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_37, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_38, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_39, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_40, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_41, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_42, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_43, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_44, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_45, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_46, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_47, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_48, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_49, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_50, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_51, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_52, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_53, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_54, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_55, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_56, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ROMANI_RANCH_GRASS_57, RCTYPE_GRASS, SCENE_F01, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_01, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_02, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_03, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_04, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_05, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_06, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_07, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_08, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_09, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_10, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_11, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_12, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_13, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_14, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_15, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_16, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_17, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_18, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_19, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_20, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_21, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_22, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_23, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_24, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_25, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_26, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_27, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_28, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_29, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_CLEARED_GRASS_30, RCTYPE_GRASS, SCENE_20SICHITAI2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_01, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_02, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_03, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_04, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_05, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_06, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_07, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_08, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_09, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_10, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_11, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_12, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_13, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_14, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_15, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_16, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_17, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_18, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_19, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_20, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_21, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_22, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_23, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_24, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_25, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_26, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_27, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_28, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_29, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_POISON_GRASS_30, RCTYPE_GRASS, SCENE_20SICHITAI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_SOUTHERN_SWAMP_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_BIO_BABA_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_BIO_BABA_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_15, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_16, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_17, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_18, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_19, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_20, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_21, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_22, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_23, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_24, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_25, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_26, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_27, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_28, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_29, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_30, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_31, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_32, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_33, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_34, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_35, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_36, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_37, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_38, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_39, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_40, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_41, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_42, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_43, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_44, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_45, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_46, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_47, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_48, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_49, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_50, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_51, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_52, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_53, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_54, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_55, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_56, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_57, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_58, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_59, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_60, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_61, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_62, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_63, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_64, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_65, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_66, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_67, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_68, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_69, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_70, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_71, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_COW_GROTTO_GRASS_72, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_01, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_02, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_03, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_04, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_05, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_06, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_07, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_08, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_09, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_10, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_11, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_12, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_13, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_14, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_15, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_16, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_17, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_18, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_19, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_20, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_21, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_22, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_23, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_24, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_25, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_26, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_27, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_28, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_29, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_30, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_31, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_32, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_33, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_34, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_35, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_36, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_37, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_38, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_39, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_40, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_41, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_42, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_43, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_44, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_45, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_46, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_47, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_48, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_49, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_50, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_51, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_52, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_53, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_54, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_55, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_56, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_57, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_58, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_59, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_60, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_61, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_62, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_63, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_64, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_65, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_66, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_67, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_68, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_69, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_70, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_71, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_72, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_73, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_74, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_75, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_76, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_77, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_78, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_79, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_80, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_81, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_82, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_83, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_84, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_85, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_86, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_87, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_88, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_89, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_90, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_91, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_92, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_93, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_94, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_95, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_96, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_97, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_98, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_99, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_100, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_101, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_102, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_103, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_104, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_105, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_106, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_107, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_108, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_109, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_110, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_111, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_112, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_113, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_114, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_115, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_116, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_117, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_118, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_119, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_120, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_121, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_122, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_123, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_124, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_125, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_126, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_127, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_128, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_129, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_130, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_131, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_132, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_133, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_134, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_135, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_136, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_137, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_138, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_139, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_140, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_141, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_142, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_143, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_144, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_145, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_146, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_147, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_148, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_149, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_150, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_151, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_152, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_153, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_154, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_155, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_156, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_157, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_158, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_159, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_160, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_161, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_162, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_163, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_164, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_165, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_166, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_167, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_168, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_169, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_170, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_171, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_172, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_173, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_174, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_175, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_176, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_177, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_178, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_179, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_180, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_181, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_182, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_183, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_184, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_185, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_186, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_187, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_188, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_189, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_190, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_191, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_192, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_193, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_194, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_195, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_196, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_197, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_198, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_199, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_200, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_201, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_202, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_203, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_204, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_205, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_206, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_207, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_208, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_209, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_210, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_211, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_212, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_213, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_214, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_215, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_GRASS_216, RCTYPE_GRASS, SCENE_00KEIKOKU, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_01, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_02, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_03, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_04, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_05, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_06, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_07, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_08, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_09, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_10, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_11, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_TWIN_ISLANDS_SPRING_GRASS_12, RCTYPE_GRASS, SCENE_17SETUGEN2, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_01, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_02, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_03, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_04, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_05, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_06, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_07, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_08, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_09, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_10, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_11, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_12, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_13, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_14, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_15, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_16, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_17, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_18, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_19, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_20, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GRASS_21, RCTYPE_GRASS, SCENE_26SARUNOMORI, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODS_OF_MYSTERY_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODFALL_GRASS_01, RCTYPE_GRASS, SCENE_21MITURINMAE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODFALL_GRASS_02, RCTYPE_GRASS, SCENE_21MITURINMAE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODFALL_GRASS_03, RCTYPE_GRASS, SCENE_21MITURINMAE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODFALL_GRASS_04, RCTYPE_GRASS, SCENE_21MITURINMAE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODFALL_GRASS_05, RCTYPE_GRASS, SCENE_21MITURINMAE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_WOODFALL_GRASS_06, RCTYPE_GRASS, SCENE_21MITURINMAE, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_01, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_02, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_03, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_04, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_05, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_06, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_07, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_08, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_09, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_10, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_11, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_12, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_13, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + RC(RC_ZORA_CAPE_GROTTO_GRASS_14, RCTYPE_GRASS, SCENE_KAKUSIANA, FLAG_NONE, 0x0, RI_JUNK), + }; // clang-format on diff --git a/mm/2s2h/Rando/StaticData/Options.cpp b/mm/2s2h/Rando/StaticData/Options.cpp index 74ec3bb89..3ee08806d 100644 --- a/mm/2s2h/Rando/StaticData/Options.cpp +++ b/mm/2s2h/Rando/StaticData/Options.cpp @@ -32,6 +32,7 @@ std::map<RandoOptionId, RandoStaticOption> Options = { RO(RO_SHUFFLE_CRATE_DROPS, RO_GENERIC_OFF), RO(RO_SHUFFLE_FREESTANDING_ITEMS, RO_GENERIC_OFF), RO(RO_SHUFFLE_GOLD_SKULLTULAS, RO_GENERIC_OFF), + RO(RO_SHUFFLE_GRASS_DROPS, RO_GENERIC_OFF), RO(RO_SHUFFLE_OWL_STATUES, RO_GENERIC_OFF), RO(RO_SHUFFLE_POT_DROPS, RO_GENERIC_OFF), RO(RO_SHUFFLE_SHOPS, RO_GENERIC_OFF), diff --git a/mm/2s2h/Rando/Types.h b/mm/2s2h/Rando/Types.h index a74812da9..ff78407e0 100644 --- a/mm/2s2h/Rando/Types.h +++ b/mm/2s2h/Rando/Types.h @@ -8,6 +8,7 @@ typedef enum { RCTYPE_COW, RCTYPE_CRATE, RCTYPE_FREESTANDING, + RCTYPE_GRASS, RCTYPE_HEART, RCTYPE_MINIGAME, RCTYPE_NPC, @@ -1377,6 +1378,857 @@ typedef enum { RC_TWIN_ISLANDS_SMALL_SNOWBALL_05, RC_TWIN_ISLANDS_SMALL_SNOWBALL_06, + // Grass // + RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_01, + RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_02, + RC_CLOCK_TOWN_LAUNDRY_POOL_GRASS_03, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_01, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_02, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_03, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_04, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_05, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_06, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_07, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_08, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_09, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_10, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_11, + RC_DEKU_PALACE_BEAN_SALESMAN_GROTTO_GRASS_12, + RC_GORMAN_TRACK_GRASS_01, + RC_GORMAN_TRACK_GRASS_02, + RC_GORMAN_TRACK_GRASS_03, + RC_GORMAN_TRACK_GRASS_04, + RC_GORMAN_TRACK_GRASS_05, + RC_GORMAN_TRACK_GRASS_06, + RC_GORMAN_TRACK_GRASS_07, + RC_GORMAN_TRACK_GRASS_08, + RC_GORMAN_TRACK_GRASS_09, + RC_GORMAN_TRACK_GRASS_10, + RC_GORMAN_TRACK_GRASS_11, + RC_GORMAN_TRACK_GRASS_12, + RC_GORMAN_TRACK_GRASS_13, + RC_GORMAN_TRACK_GRASS_14, + RC_GORMAN_TRACK_GRASS_15, + RC_GORMAN_TRACK_GRASS_16, + RC_GORMAN_TRACK_GRASS_17, + RC_GORMAN_TRACK_GRASS_18, + RC_GORMAN_TRACK_GRASS_19, + RC_GORMAN_TRACK_GRASS_20, + RC_GORMAN_TRACK_GRASS_21, + RC_GORMAN_TRACK_GRASS_22, + RC_GORMAN_TRACK_GRASS_23, + RC_GORMAN_TRACK_GRASS_24, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_01, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_02, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_03, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_04, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_05, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_06, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_07, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_08, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_09, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_10, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_11, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_12, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_13, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_14, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_15, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_16, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_17, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_18, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_19, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_20, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_21, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_22, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_23, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_24, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_25, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_26, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_27, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_28, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_29, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_30, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_31, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_32, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_33, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_34, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_35, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_36, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_37, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_38, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_39, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_40, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_41, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_42, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_43, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_44, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_45, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_46, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_47, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_48, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_49, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_50, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_51, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_52, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_53, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_54, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_55, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_56, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_57, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_58, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_59, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_60, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_61, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_62, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_63, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_64, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_65, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_66, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_67, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_68, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_69, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_70, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_71, + RC_GREAT_BAY_COAST_COW_GROTTO_GRASS_72, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_01, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_02, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_03, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_04, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_05, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_06, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_07, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_08, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_09, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_10, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_11, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_12, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_13, + RC_GREAT_BAY_COAST_FISHERMAN_GROTTO_GRASS_14, + RC_GREAT_BAY_COAST_GRASS_01, + RC_GREAT_BAY_COAST_GRASS_02, + RC_GREAT_BAY_COAST_GRASS_03, + RC_GREAT_BAY_COAST_GRASS_04, + RC_GREAT_BAY_COAST_GRASS_05, + RC_IKANA_CANYON_GROTTO_GRASS_01, + RC_IKANA_CANYON_GROTTO_GRASS_02, + RC_IKANA_CANYON_GROTTO_GRASS_03, + RC_IKANA_CANYON_GROTTO_GRASS_04, + RC_IKANA_CANYON_GROTTO_GRASS_05, + RC_IKANA_CANYON_GROTTO_GRASS_06, + RC_IKANA_CANYON_GROTTO_GRASS_07, + RC_IKANA_CANYON_GROTTO_GRASS_08, + RC_IKANA_CANYON_GROTTO_GRASS_09, + RC_IKANA_CANYON_GROTTO_GRASS_10, + RC_IKANA_CANYON_GROTTO_GRASS_11, + RC_IKANA_CANYON_GROTTO_GRASS_12, + RC_IKANA_CANYON_GROTTO_GRASS_13, + RC_IKANA_CANYON_GROTTO_GRASS_14, + RC_IKANA_GRAVEYARD_GRASS_01, + RC_IKANA_GRAVEYARD_GRASS_02, + RC_IKANA_GRAVEYARD_GRASS_03, + RC_IKANA_GRAVEYARD_GRASS_04, + RC_IKANA_GRAVEYARD_GRASS_05, + RC_IKANA_GRAVEYARD_GRASS_06, + RC_IKANA_GRAVEYARD_GRASS_07, + RC_IKANA_GRAVEYARD_GRASS_08, + RC_IKANA_GRAVEYARD_GRASS_09, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_01, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_02, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_03, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_04, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_05, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_06, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_07, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_08, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_09, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_10, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_11, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_12, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_13, + RC_IKANA_GRAVEYARD_GROTTO_GRASS_14, + RC_LONE_PEAK_SHRINE_GRASS_01, + RC_LONE_PEAK_SHRINE_GRASS_02, + RC_LONE_PEAK_SHRINE_GRASS_03, + RC_LONE_PEAK_SHRINE_GRASS_04, + RC_LONE_PEAK_SHRINE_GRASS_05, + RC_LONE_PEAK_SHRINE_GRASS_06, + RC_LONE_PEAK_SHRINE_GRASS_07, + RC_LONE_PEAK_SHRINE_GRASS_08, + RC_LONE_PEAK_SHRINE_GRASS_09, + RC_LONE_PEAK_SHRINE_GRASS_10, + RC_LONE_PEAK_SHRINE_GRASS_11, + RC_LONE_PEAK_SHRINE_GRASS_12, + RC_LONE_PEAK_SHRINE_GRASS_13, + RC_LONE_PEAK_SHRINE_GRASS_14, + RC_LONE_PEAK_SHRINE_GRASS_15, + RC_LONE_PEAK_SHRINE_GRASS_16, + RC_LONE_PEAK_SHRINE_GRASS_17, + RC_LONE_PEAK_SHRINE_GRASS_18, + RC_LONE_PEAK_SHRINE_GRASS_19, + RC_LONE_PEAK_SHRINE_GRASS_20, + RC_LONE_PEAK_SHRINE_GRASS_21, + RC_LONE_PEAK_SHRINE_GRASS_22, + RC_LONE_PEAK_SHRINE_GRASS_23, + RC_LONE_PEAK_SHRINE_GRASS_24, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_01, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_02, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_03, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_04, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_05, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_06, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_07, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_08, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_09, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_10, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_11, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_12, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_13, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_14, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_15, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_16, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_17, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_18, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_19, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_20, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_21, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_22, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_23, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_24, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_25, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_26, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_27, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_28, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_29, + RC_MOUNTAIN_VILLAGE_SPRING_GRASS_30, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_01, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_02, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_03, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_04, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_05, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_06, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_07, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_08, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_09, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_10, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_11, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_12, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_13, + RC_MOUNTAIN_VILLAGE_TUNNEL_GROTTO_GRASS_14, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_01, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_02, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_03, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_04, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_05, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_06, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_07, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_08, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_09, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_10, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_11, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_12, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_13, + RC_PATH_TO_SNOWHEAD_GROTTO_GRASS_14, + RC_ROAD_TO_IKANA_GROTTO_GRASS_01, + RC_ROAD_TO_IKANA_GROTTO_GRASS_02, + RC_ROAD_TO_IKANA_GROTTO_GRASS_03, + RC_ROAD_TO_IKANA_GROTTO_GRASS_04, + RC_ROAD_TO_IKANA_GROTTO_GRASS_05, + RC_ROAD_TO_IKANA_GROTTO_GRASS_06, + RC_ROAD_TO_IKANA_GROTTO_GRASS_07, + RC_ROAD_TO_IKANA_GROTTO_GRASS_08, + RC_ROAD_TO_IKANA_GROTTO_GRASS_09, + RC_ROAD_TO_IKANA_GROTTO_GRASS_10, + RC_ROAD_TO_IKANA_GROTTO_GRASS_11, + RC_ROAD_TO_IKANA_GROTTO_GRASS_12, + RC_ROAD_TO_IKANA_GROTTO_GRASS_13, + RC_ROAD_TO_IKANA_GROTTO_GRASS_14, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_01, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_02, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_03, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_04, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_05, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_06, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_07, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_08, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_09, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_10, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_11, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_12, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_13, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_14, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_15, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_16, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_17, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_18, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_19, + RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_20, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_01, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_02, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_03, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_04, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_05, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_06, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_07, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_08, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_09, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_10, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_11, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_12, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_13, + RC_ROAD_TO_SOUTHERN_SWAMP_GROTTO_GRASS_14, + RC_ROMANI_RANCH_GRASS_01, + RC_ROMANI_RANCH_GRASS_02, + RC_ROMANI_RANCH_GRASS_03, + RC_ROMANI_RANCH_GRASS_04, + RC_ROMANI_RANCH_GRASS_05, + RC_ROMANI_RANCH_GRASS_06, + RC_ROMANI_RANCH_GRASS_07, + RC_ROMANI_RANCH_GRASS_08, + RC_ROMANI_RANCH_GRASS_09, + RC_ROMANI_RANCH_GRASS_10, + RC_ROMANI_RANCH_GRASS_11, + RC_ROMANI_RANCH_GRASS_12, + RC_ROMANI_RANCH_GRASS_13, + RC_ROMANI_RANCH_GRASS_14, + RC_ROMANI_RANCH_GRASS_15, + RC_ROMANI_RANCH_GRASS_16, + RC_ROMANI_RANCH_GRASS_17, + RC_ROMANI_RANCH_GRASS_18, + RC_ROMANI_RANCH_GRASS_19, + RC_ROMANI_RANCH_GRASS_20, + RC_ROMANI_RANCH_GRASS_21, + RC_ROMANI_RANCH_GRASS_22, + RC_ROMANI_RANCH_GRASS_23, + RC_ROMANI_RANCH_GRASS_24, + RC_ROMANI_RANCH_GRASS_25, + RC_ROMANI_RANCH_GRASS_26, + RC_ROMANI_RANCH_GRASS_27, + RC_ROMANI_RANCH_GRASS_28, + RC_ROMANI_RANCH_GRASS_29, + RC_ROMANI_RANCH_GRASS_30, + RC_ROMANI_RANCH_GRASS_31, + RC_ROMANI_RANCH_GRASS_32, + RC_ROMANI_RANCH_GRASS_33, + RC_ROMANI_RANCH_GRASS_34, + RC_ROMANI_RANCH_GRASS_35, + RC_ROMANI_RANCH_GRASS_36, + RC_ROMANI_RANCH_GRASS_37, + RC_ROMANI_RANCH_GRASS_38, + RC_ROMANI_RANCH_GRASS_39, + RC_ROMANI_RANCH_GRASS_40, + RC_ROMANI_RANCH_GRASS_41, + RC_ROMANI_RANCH_GRASS_42, + RC_ROMANI_RANCH_GRASS_43, + RC_ROMANI_RANCH_GRASS_44, + RC_ROMANI_RANCH_GRASS_45, + RC_ROMANI_RANCH_GRASS_46, + RC_ROMANI_RANCH_GRASS_47, + RC_ROMANI_RANCH_GRASS_48, + RC_ROMANI_RANCH_GRASS_49, + RC_ROMANI_RANCH_GRASS_50, + RC_ROMANI_RANCH_GRASS_51, + RC_ROMANI_RANCH_GRASS_52, + RC_ROMANI_RANCH_GRASS_53, + RC_ROMANI_RANCH_GRASS_54, + RC_ROMANI_RANCH_GRASS_55, + RC_ROMANI_RANCH_GRASS_56, + RC_ROMANI_RANCH_GRASS_57, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_01, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_02, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_03, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_04, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_05, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_06, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_07, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_08, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_09, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_10, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_11, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_12, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_13, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_14, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_15, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_16, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_17, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_18, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_19, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_20, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_21, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_22, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_23, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_24, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_25, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_26, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_27, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_28, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_29, + RC_SOUTHERN_SWAMP_CLEARED_GRASS_30, + RC_SOUTHERN_SWAMP_POISON_GRASS_01, + RC_SOUTHERN_SWAMP_POISON_GRASS_02, + RC_SOUTHERN_SWAMP_POISON_GRASS_03, + RC_SOUTHERN_SWAMP_POISON_GRASS_04, + RC_SOUTHERN_SWAMP_POISON_GRASS_05, + RC_SOUTHERN_SWAMP_POISON_GRASS_06, + RC_SOUTHERN_SWAMP_POISON_GRASS_07, + RC_SOUTHERN_SWAMP_POISON_GRASS_08, + RC_SOUTHERN_SWAMP_POISON_GRASS_09, + RC_SOUTHERN_SWAMP_POISON_GRASS_10, + RC_SOUTHERN_SWAMP_POISON_GRASS_11, + RC_SOUTHERN_SWAMP_POISON_GRASS_12, + RC_SOUTHERN_SWAMP_POISON_GRASS_13, + RC_SOUTHERN_SWAMP_POISON_GRASS_14, + RC_SOUTHERN_SWAMP_POISON_GRASS_15, + RC_SOUTHERN_SWAMP_POISON_GRASS_16, + RC_SOUTHERN_SWAMP_POISON_GRASS_17, + RC_SOUTHERN_SWAMP_POISON_GRASS_18, + RC_SOUTHERN_SWAMP_POISON_GRASS_19, + RC_SOUTHERN_SWAMP_POISON_GRASS_20, + RC_SOUTHERN_SWAMP_POISON_GRASS_21, + RC_SOUTHERN_SWAMP_POISON_GRASS_22, + RC_SOUTHERN_SWAMP_POISON_GRASS_23, + RC_SOUTHERN_SWAMP_POISON_GRASS_24, + RC_SOUTHERN_SWAMP_POISON_GRASS_25, + RC_SOUTHERN_SWAMP_POISON_GRASS_26, + RC_SOUTHERN_SWAMP_POISON_GRASS_27, + RC_SOUTHERN_SWAMP_POISON_GRASS_28, + RC_SOUTHERN_SWAMP_POISON_GRASS_29, + RC_SOUTHERN_SWAMP_POISON_GRASS_30, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_01, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_02, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_03, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_04, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_05, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_06, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_07, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_08, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_09, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_10, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_11, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_12, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_13, + RC_SOUTHERN_SWAMP_GROTTO_GRASS_14, + RC_TERMINA_FIELD_BIO_BABA_GROTTO_GRASS_01, + RC_TERMINA_FIELD_BIO_BABA_GROTTO_GRASS_02, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_01, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_02, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_03, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_04, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_05, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_06, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_07, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_08, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_09, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_10, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_11, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_12, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_13, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_14, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_15, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_16, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_17, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_18, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_19, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_20, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_21, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_22, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_23, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_24, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_25, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_26, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_27, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_28, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_29, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_30, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_31, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_32, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_33, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_34, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_35, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_36, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_37, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_38, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_39, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_40, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_41, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_42, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_43, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_44, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_45, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_46, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_47, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_48, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_49, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_50, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_51, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_52, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_53, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_54, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_55, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_56, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_57, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_58, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_59, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_60, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_61, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_62, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_63, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_64, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_65, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_66, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_67, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_68, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_69, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_70, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_71, + RC_TERMINA_FIELD_COW_GROTTO_GRASS_72, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_01, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_02, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_03, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_04, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_3_GRASS_05, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_01, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_02, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_03, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_04, + RC_TERMINA_FIELD_GOSSIP_STONE_GROTTO_4_GRASS_05, + RC_TERMINA_FIELD_GRASS_01, + RC_TERMINA_FIELD_GRASS_02, + RC_TERMINA_FIELD_GRASS_03, + RC_TERMINA_FIELD_GRASS_04, + RC_TERMINA_FIELD_GRASS_05, + RC_TERMINA_FIELD_GRASS_06, + RC_TERMINA_FIELD_GRASS_07, + RC_TERMINA_FIELD_GRASS_08, + RC_TERMINA_FIELD_GRASS_09, + RC_TERMINA_FIELD_GRASS_10, + RC_TERMINA_FIELD_GRASS_11, + RC_TERMINA_FIELD_GRASS_12, + RC_TERMINA_FIELD_GRASS_13, + RC_TERMINA_FIELD_GRASS_14, + RC_TERMINA_FIELD_GRASS_15, + RC_TERMINA_FIELD_GRASS_16, + RC_TERMINA_FIELD_GRASS_17, + RC_TERMINA_FIELD_GRASS_18, + RC_TERMINA_FIELD_GRASS_19, + RC_TERMINA_FIELD_GRASS_20, + RC_TERMINA_FIELD_GRASS_21, + RC_TERMINA_FIELD_GRASS_22, + RC_TERMINA_FIELD_GRASS_23, + RC_TERMINA_FIELD_GRASS_24, + RC_TERMINA_FIELD_GRASS_25, + RC_TERMINA_FIELD_GRASS_26, + RC_TERMINA_FIELD_GRASS_27, + RC_TERMINA_FIELD_GRASS_28, + RC_TERMINA_FIELD_GRASS_29, + RC_TERMINA_FIELD_GRASS_30, + RC_TERMINA_FIELD_GRASS_31, + RC_TERMINA_FIELD_GRASS_32, + RC_TERMINA_FIELD_GRASS_33, + RC_TERMINA_FIELD_GRASS_34, + RC_TERMINA_FIELD_GRASS_35, + RC_TERMINA_FIELD_GRASS_36, + RC_TERMINA_FIELD_GRASS_37, + RC_TERMINA_FIELD_GRASS_38, + RC_TERMINA_FIELD_GRASS_39, + RC_TERMINA_FIELD_GRASS_40, + RC_TERMINA_FIELD_GRASS_41, + RC_TERMINA_FIELD_GRASS_42, + RC_TERMINA_FIELD_GRASS_43, + RC_TERMINA_FIELD_GRASS_44, + RC_TERMINA_FIELD_GRASS_45, + RC_TERMINA_FIELD_GRASS_46, + RC_TERMINA_FIELD_GRASS_47, + RC_TERMINA_FIELD_GRASS_48, + RC_TERMINA_FIELD_GRASS_49, + RC_TERMINA_FIELD_GRASS_50, + RC_TERMINA_FIELD_GRASS_51, + RC_TERMINA_FIELD_GRASS_52, + RC_TERMINA_FIELD_GRASS_53, + RC_TERMINA_FIELD_GRASS_54, + RC_TERMINA_FIELD_GRASS_55, + RC_TERMINA_FIELD_GRASS_56, + RC_TERMINA_FIELD_GRASS_57, + RC_TERMINA_FIELD_GRASS_58, + RC_TERMINA_FIELD_GRASS_59, + RC_TERMINA_FIELD_GRASS_60, + RC_TERMINA_FIELD_GRASS_61, + RC_TERMINA_FIELD_GRASS_62, + RC_TERMINA_FIELD_GRASS_63, + RC_TERMINA_FIELD_GRASS_64, + RC_TERMINA_FIELD_GRASS_65, + RC_TERMINA_FIELD_GRASS_66, + RC_TERMINA_FIELD_GRASS_67, + RC_TERMINA_FIELD_GRASS_68, + RC_TERMINA_FIELD_GRASS_69, + RC_TERMINA_FIELD_GRASS_70, + RC_TERMINA_FIELD_GRASS_71, + RC_TERMINA_FIELD_GRASS_72, + RC_TERMINA_FIELD_GRASS_73, + RC_TERMINA_FIELD_GRASS_74, + RC_TERMINA_FIELD_GRASS_75, + RC_TERMINA_FIELD_GRASS_76, + RC_TERMINA_FIELD_GRASS_77, + RC_TERMINA_FIELD_GRASS_78, + RC_TERMINA_FIELD_GRASS_79, + RC_TERMINA_FIELD_GRASS_80, + RC_TERMINA_FIELD_GRASS_81, + RC_TERMINA_FIELD_GRASS_82, + RC_TERMINA_FIELD_GRASS_83, + RC_TERMINA_FIELD_GRASS_84, + RC_TERMINA_FIELD_GRASS_85, + RC_TERMINA_FIELD_GRASS_86, + RC_TERMINA_FIELD_GRASS_87, + RC_TERMINA_FIELD_GRASS_88, + RC_TERMINA_FIELD_GRASS_89, + RC_TERMINA_FIELD_GRASS_90, + RC_TERMINA_FIELD_GRASS_91, + RC_TERMINA_FIELD_GRASS_92, + RC_TERMINA_FIELD_GRASS_93, + RC_TERMINA_FIELD_GRASS_94, + RC_TERMINA_FIELD_GRASS_95, + RC_TERMINA_FIELD_GRASS_96, + RC_TERMINA_FIELD_GRASS_97, + RC_TERMINA_FIELD_GRASS_98, + RC_TERMINA_FIELD_GRASS_99, + RC_TERMINA_FIELD_GRASS_100, + RC_TERMINA_FIELD_GRASS_101, + RC_TERMINA_FIELD_GRASS_102, + RC_TERMINA_FIELD_GRASS_103, + RC_TERMINA_FIELD_GRASS_104, + RC_TERMINA_FIELD_GRASS_105, + RC_TERMINA_FIELD_GRASS_106, + RC_TERMINA_FIELD_GRASS_107, + RC_TERMINA_FIELD_GRASS_108, + RC_TERMINA_FIELD_GRASS_109, + RC_TERMINA_FIELD_GRASS_110, + RC_TERMINA_FIELD_GRASS_111, + RC_TERMINA_FIELD_GRASS_112, + RC_TERMINA_FIELD_GRASS_113, + RC_TERMINA_FIELD_GRASS_114, + RC_TERMINA_FIELD_GRASS_115, + RC_TERMINA_FIELD_GRASS_116, + RC_TERMINA_FIELD_GRASS_117, + RC_TERMINA_FIELD_GRASS_118, + RC_TERMINA_FIELD_GRASS_119, + RC_TERMINA_FIELD_GRASS_120, + RC_TERMINA_FIELD_GRASS_121, + RC_TERMINA_FIELD_GRASS_122, + RC_TERMINA_FIELD_GRASS_123, + RC_TERMINA_FIELD_GRASS_124, + RC_TERMINA_FIELD_GRASS_125, + RC_TERMINA_FIELD_GRASS_126, + RC_TERMINA_FIELD_GRASS_127, + RC_TERMINA_FIELD_GRASS_128, + RC_TERMINA_FIELD_GRASS_129, + RC_TERMINA_FIELD_GRASS_130, + RC_TERMINA_FIELD_GRASS_131, + RC_TERMINA_FIELD_GRASS_132, + RC_TERMINA_FIELD_GRASS_133, + RC_TERMINA_FIELD_GRASS_134, + RC_TERMINA_FIELD_GRASS_135, + RC_TERMINA_FIELD_GRASS_136, + RC_TERMINA_FIELD_GRASS_137, + RC_TERMINA_FIELD_GRASS_138, + RC_TERMINA_FIELD_GRASS_139, + RC_TERMINA_FIELD_GRASS_140, + RC_TERMINA_FIELD_GRASS_141, + RC_TERMINA_FIELD_GRASS_142, + RC_TERMINA_FIELD_GRASS_143, + RC_TERMINA_FIELD_GRASS_144, + RC_TERMINA_FIELD_GRASS_145, + RC_TERMINA_FIELD_GRASS_146, + RC_TERMINA_FIELD_GRASS_147, + RC_TERMINA_FIELD_GRASS_148, + RC_TERMINA_FIELD_GRASS_149, + RC_TERMINA_FIELD_GRASS_150, + RC_TERMINA_FIELD_GRASS_151, + RC_TERMINA_FIELD_GRASS_152, + RC_TERMINA_FIELD_GRASS_153, + RC_TERMINA_FIELD_GRASS_154, + RC_TERMINA_FIELD_GRASS_155, + RC_TERMINA_FIELD_GRASS_156, + RC_TERMINA_FIELD_GRASS_157, + RC_TERMINA_FIELD_GRASS_158, + RC_TERMINA_FIELD_GRASS_159, + RC_TERMINA_FIELD_GRASS_160, + RC_TERMINA_FIELD_GRASS_161, + RC_TERMINA_FIELD_GRASS_162, + RC_TERMINA_FIELD_GRASS_163, + RC_TERMINA_FIELD_GRASS_164, + RC_TERMINA_FIELD_GRASS_165, + RC_TERMINA_FIELD_GRASS_166, + RC_TERMINA_FIELD_GRASS_167, + RC_TERMINA_FIELD_GRASS_168, + RC_TERMINA_FIELD_GRASS_169, + RC_TERMINA_FIELD_GRASS_170, + RC_TERMINA_FIELD_GRASS_171, + RC_TERMINA_FIELD_GRASS_172, + RC_TERMINA_FIELD_GRASS_173, + RC_TERMINA_FIELD_GRASS_174, + RC_TERMINA_FIELD_GRASS_175, + RC_TERMINA_FIELD_GRASS_176, + RC_TERMINA_FIELD_GRASS_177, + RC_TERMINA_FIELD_GRASS_178, + RC_TERMINA_FIELD_GRASS_179, + RC_TERMINA_FIELD_GRASS_180, + RC_TERMINA_FIELD_GRASS_181, + RC_TERMINA_FIELD_GRASS_182, + RC_TERMINA_FIELD_GRASS_183, + RC_TERMINA_FIELD_GRASS_184, + RC_TERMINA_FIELD_GRASS_185, + RC_TERMINA_FIELD_GRASS_186, + RC_TERMINA_FIELD_GRASS_187, + RC_TERMINA_FIELD_GRASS_188, + RC_TERMINA_FIELD_GRASS_189, + RC_TERMINA_FIELD_GRASS_190, + RC_TERMINA_FIELD_GRASS_191, + RC_TERMINA_FIELD_GRASS_192, + RC_TERMINA_FIELD_GRASS_193, + RC_TERMINA_FIELD_GRASS_194, + RC_TERMINA_FIELD_GRASS_195, + RC_TERMINA_FIELD_GRASS_196, + RC_TERMINA_FIELD_GRASS_197, + RC_TERMINA_FIELD_GRASS_198, + RC_TERMINA_FIELD_GRASS_199, + RC_TERMINA_FIELD_GRASS_200, + RC_TERMINA_FIELD_GRASS_201, + RC_TERMINA_FIELD_GRASS_202, + RC_TERMINA_FIELD_GRASS_203, + RC_TERMINA_FIELD_GRASS_204, + RC_TERMINA_FIELD_GRASS_205, + RC_TERMINA_FIELD_GRASS_206, + RC_TERMINA_FIELD_GRASS_207, + RC_TERMINA_FIELD_GRASS_208, + RC_TERMINA_FIELD_GRASS_209, + RC_TERMINA_FIELD_GRASS_210, + RC_TERMINA_FIELD_GRASS_211, + RC_TERMINA_FIELD_GRASS_212, + RC_TERMINA_FIELD_GRASS_213, + RC_TERMINA_FIELD_GRASS_214, + RC_TERMINA_FIELD_GRASS_215, + RC_TERMINA_FIELD_GRASS_216, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_01, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_02, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_03, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_04, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_05, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_06, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_07, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_08, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_09, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_10, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_11, + RC_TERMINA_FIELD_PEAHAT_GROTTO_GRASS_12, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_01, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_02, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_03, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_04, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_05, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_06, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_07, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_08, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_09, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_10, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_11, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_12, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_13, + RC_TERMINA_FIELD_PILLAR_GROTTO_GRASS_14, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_01, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_02, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_03, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_04, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_05, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_06, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_07, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_08, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_09, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_10, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_11, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_12, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_13, + RC_TERMINA_FIELD_TALL_GRASS_GROTTO_GRASS_14, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_01, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_02, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_03, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_04, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_05, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_06, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_07, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_08, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_09, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_10, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_11, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_12, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_13, + RC_TWIN_ISLANDS_RAMP_GROTTO_GRASS_14, + RC_TWIN_ISLANDS_SPRING_GRASS_01, + RC_TWIN_ISLANDS_SPRING_GRASS_02, + RC_TWIN_ISLANDS_SPRING_GRASS_03, + RC_TWIN_ISLANDS_SPRING_GRASS_04, + RC_TWIN_ISLANDS_SPRING_GRASS_05, + RC_TWIN_ISLANDS_SPRING_GRASS_06, + RC_TWIN_ISLANDS_SPRING_GRASS_07, + RC_TWIN_ISLANDS_SPRING_GRASS_08, + RC_TWIN_ISLANDS_SPRING_GRASS_09, + RC_TWIN_ISLANDS_SPRING_GRASS_10, + RC_TWIN_ISLANDS_SPRING_GRASS_11, + RC_TWIN_ISLANDS_SPRING_GRASS_12, + RC_WOODS_OF_MYSTERY_GRASS_01, + RC_WOODS_OF_MYSTERY_GRASS_02, + RC_WOODS_OF_MYSTERY_GRASS_03, + RC_WOODS_OF_MYSTERY_GRASS_04, + RC_WOODS_OF_MYSTERY_GRASS_05, + RC_WOODS_OF_MYSTERY_GRASS_06, + RC_WOODS_OF_MYSTERY_GRASS_07, + RC_WOODS_OF_MYSTERY_GRASS_08, + RC_WOODS_OF_MYSTERY_GRASS_09, + RC_WOODS_OF_MYSTERY_GRASS_10, + RC_WOODS_OF_MYSTERY_GRASS_11, + RC_WOODS_OF_MYSTERY_GRASS_12, + RC_WOODS_OF_MYSTERY_GRASS_13, + RC_WOODS_OF_MYSTERY_GRASS_14, + RC_WOODS_OF_MYSTERY_GRASS_15, + RC_WOODS_OF_MYSTERY_GRASS_16, + RC_WOODS_OF_MYSTERY_GRASS_17, + RC_WOODS_OF_MYSTERY_GRASS_18, + RC_WOODS_OF_MYSTERY_GRASS_19, + RC_WOODS_OF_MYSTERY_GRASS_20, + RC_WOODS_OF_MYSTERY_GRASS_21, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_01, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_02, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_03, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_04, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_05, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_06, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_07, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_08, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_09, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_10, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_11, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_12, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_13, + RC_WOODS_OF_MYSTERY_GROTTO_GRASS_14, + RC_WOODFALL_GRASS_01, + RC_WOODFALL_GRASS_02, + RC_WOODFALL_GRASS_03, + RC_WOODFALL_GRASS_04, + RC_WOODFALL_GRASS_05, + RC_WOODFALL_GRASS_06, + RC_ZORA_CAPE_GROTTO_GRASS_01, + RC_ZORA_CAPE_GROTTO_GRASS_02, + RC_ZORA_CAPE_GROTTO_GRASS_03, + RC_ZORA_CAPE_GROTTO_GRASS_04, + RC_ZORA_CAPE_GROTTO_GRASS_05, + RC_ZORA_CAPE_GROTTO_GRASS_06, + RC_ZORA_CAPE_GROTTO_GRASS_07, + RC_ZORA_CAPE_GROTTO_GRASS_08, + RC_ZORA_CAPE_GROTTO_GRASS_09, + RC_ZORA_CAPE_GROTTO_GRASS_10, + RC_ZORA_CAPE_GROTTO_GRASS_11, + RC_ZORA_CAPE_GROTTO_GRASS_12, + RC_ZORA_CAPE_GROTTO_GRASS_13, + RC_ZORA_CAPE_GROTTO_GRASS_14, + RC_MAX, } RandoCheckId; @@ -1884,6 +2736,7 @@ typedef enum { RO_SHUFFLE_COWS, RO_SHUFFLE_CRATE_DROPS, RO_SHUFFLE_FREESTANDING_ITEMS, + RO_SHUFFLE_GRASS_DROPS, RO_SHUFFLE_GOLD_SKULLTULAS, RO_SHUFFLE_OWL_STATUES, RO_SHUFFLE_POT_DROPS, diff --git a/mm/2s2h/ShipUtils.cpp b/mm/2s2h/ShipUtils.cpp index 08a0be183..bc26f3790 100644 --- a/mm/2s2h/ShipUtils.cpp +++ b/mm/2s2h/ShipUtils.cpp @@ -15,6 +15,7 @@ #include "assets/archives/icon_item_static/icon_item_static_yar.h" #include "assets/interface/icon_item_dungeon_static/icon_item_dungeon_static.h" #include "assets/interface/icon_item_field_static/icon_item_field_static.h" +#include "assets/objects/gameplay_keep/gameplay_keep.h" extern "C" { #include "z64.h" @@ -44,7 +45,7 @@ std::unordered_map<s16, const char*> sceneNames = { #undef DEFINE_SCENE_UNSET // These textures are not in existing lists that we iterate over. -std::array<const char*, 18> miscellaneousTextures = { +std::array<const char*, 19> miscellaneousTextures = { gArcheryScoreIconTex, gBarrelTrackerIcon, gChestTrackerIcon, @@ -63,6 +64,7 @@ std::array<const char*, 18> miscellaneousTextures = { gStrayFairyWoodfallIconTex, gTimerClockIconTex, gWorldMapOwlFaceTex, + gameplay_keep_Tex_053140, }; std::array<const char*, 11> digitList = { gCounterDigit0Tex, gCounterDigit1Tex, gCounterDigit2Tex, gCounterDigit3Tex, diff --git a/mm/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/mm/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c index 9fcffda65..d94cb284b 100644 --- a/mm/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/mm/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -11,6 +11,7 @@ #include "overlays/actors/ovl_En_Insect/z_en_insect.h" #include "2s2h/ShipUtils.h" +#include "GameInteractor/GameInteractor.h" #define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_800000) @@ -248,8 +249,10 @@ void EnKusa_DropCollectible(EnKusa* this, PlayState* play) { if ((KUSA_GET_TYPE(&this->actor) == ENKUSA_TYPE_GRASS) || (KUSA_GET_TYPE(&this->actor) == ENKUSA_TYPE_BUSH)) { if (!KUSA_GET_PARAM_0C(&this->actor)) { - Item_DropCollectibleRandom(play, NULL, &this->actor.world.pos, - KUSA_GET_RAND_COLLECTIBLE_ID(&this->actor) * 0x10); + if (GameInteractor_Should(VB_GRASS_DROP_COLLECTIBLE, true, ACTOR_EN_KUSA, this)) { + Item_DropCollectibleRandom(play, NULL, &this->actor.world.pos, + KUSA_GET_RAND_COLLECTIBLE_ID(&this->actor) * 0x10); + } } } else if (KUSA_GET_TYPE(&this->actor) == ENKUSA_TYPE_REGROWING_GRASS) { Item_DropCollectible(play, &this->actor.world.pos, 3); diff --git a/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c b/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c index e0a1df6ae..4e28ed917 100644 --- a/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c +++ b/mm/src/overlays/actors/ovl_Obj_Grass/z_obj_grass.c @@ -14,6 +14,7 @@ #include "2s2h/ShipUtils.h" #include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h" #include "public/bridge/consolevariablebridge.h" +#include "GameInteractor/GameInteractor.h" #define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20) @@ -113,8 +114,10 @@ void ObjGrass_OverrideMatrixCurrent(MtxF* matrix) { } void ObjGrass_DropCollectible(ObjGrassElement* grassElem, PlayState* play) { - if (!(grassElem->dropTable & 0x10)) { - Item_DropCollectibleRandom(play, NULL, &grassElem->pos, grassElem->dropTable * 0x10); + if (GameInteractor_Should(VB_GRASS_DROP_COLLECTIBLE, true, ACTOR_OBJ_GRASS, grassElem)) { + if (!(grassElem->dropTable & 0x10)) { + Item_DropCollectibleRandom(play, NULL, &grassElem->pos, grassElem->dropTable * 0x10); + } } } diff --git a/mm/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.c b/mm/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.c index 4c937b2f9..b642d6f40 100644 --- a/mm/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.c +++ b/mm/src/overlays/actors/ovl_Obj_Grass_Carry/z_obj_grass_carry.c @@ -8,6 +8,7 @@ #include "objects/gameplay_field_keep/gameplay_field_keep.h" #include "objects/gameplay_keep/gameplay_keep.h" #include "overlays/actors/ovl_Obj_Grass/z_obj_grass.h" +#include "GameInteractor/GameInteractor.h" #define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_800000) @@ -287,7 +288,9 @@ void ObjGrassCarry_Fall(ObjGrassCarry* this, PlayState* play) { if ((this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH | BGCHECKFLAG_WALL)) || atHit || (this->fallTimer <= 0)) { ObjGrassCarry_SpawnFragments(&this->actor.world.pos, play); - ObjGrassCarry_DropCollectible(&this->actor.world.pos, this->dropTable, play); + if (GameInteractor_Should(VB_GRASS_DROP_COLLECTIBLE, true, ACTOR_OBJ_GRASS_CARRY, this)) { + ObjGrassCarry_DropCollectible(&this->actor.world.pos, this->dropTable, play); + } this->actor.draw = NULL; this->actor.shape.shadowDraw = NULL; |
