mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-01-30 23:10:14 -05:00
Fishsanity - Rando v3 (#3738)
* Update z_fishing documentation from decomp * undo sCameraAt/Eye rename * forgot to include these defines Heehee * adding enums, settings * adding more stuff back in * more work * we're literally typing words into computer * include unordered map maybe this fixes mac build idk * wahoo * hmm * add make sure disabled flag gets popped * poggers in the chat? * doing some refactoring * fixing build * documentation, moving fishsanity instance to rando * move FS back to context, fixing build, mod progress since FS is needed during rando generation & provides perpetual info abt. fishsanity in the seed, seems to make more sense if it lives on the context * moving some stuff around * it's starting to get real in here * ELIMINATE FISHSANITYMETA * IT WROKS * Update trackers, fix pond fish flagging * ZD fish shuffle initial checkpoint * ZD fish "working" aside from the crashing * wrapping up * fix for partial pond shuffle * remove misc. unrelated debugconsole modification * updating GI model * get build working * add a todo for this * removeoopsie * Rework hints a bit * update hint loc * Use visual indicator instead of despawning caught fish --------- Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
This commit is contained in:
parent
eb5f7688f8
commit
4cbf3a5621
Binary file not shown.
Binary file not shown.
@ -0,0 +1,26 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<ClearGeometryMode G_LIGHTING="1" />
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
|
||||||
|
<CullDisplayList Start="0" End="7"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/mat_gFishingPoleGiDL_reel_handle_metal"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_tri_0"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/mat_gFishingPoleGiDL_wood"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_tri_1"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/mat_gFishingPoleGiDL_black"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_tri_2"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/mat_gFishingPoleGiDL_line"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_tri_3"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/mat_gFishingPoleGiDL_reel_metal_001"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_tri_4"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/mat_gFishingPoleGiDL_reel_accent_001"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_tri_5"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/mat_gFishingPoleGiDL_reel_white"/>
|
||||||
|
<CallDisplayList Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_tri_6"/>
|
||||||
|
<PipeSync/>
|
||||||
|
<SetGeometryMode G_LIGHTING="1" />
|
||||||
|
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||||
|
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||||
|
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,80 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="5" V02="4" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="9" V02="8" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="11" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="13" V02="12" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="15" V02="14" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="15" Flag0="0" V10="17" V11="19" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="18" Flag0="0" V10="19" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="20" Flag0="0" V10="21" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="22" V02="23" Flag0="0" V10="24" V11="23" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="24" V02="26" Flag0="0" V10="22" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="27" V02="26" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="29" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="0" V02="4" Flag0="0" V10="5" V11="4" V12="0" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="4" Flag0="0" V10="7" V11="6" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="7" V11="9" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="10" V11="7" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="11" V02="7" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="14" Flag0="0" V10="10" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="15" V02="16" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="15" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="9" V02="17" Flag0="0" V10="8" V11="9" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="19" V02="20" Flag0="0" V10="8" V11="20" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="21" V02="22" Flag0="0" V10="9" V11="16" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="16" Flag0="0" V10="23" V11="24" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="26" V02="24" Flag0="0" V10="27" V11="26" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="26" Flag0="0" V10="29" V11="28" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="27" V02="30" Flag0="0" V10="30" V11="27" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_0" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="0" V02="5" Flag0="0" V10="4" V11="5" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="7" Flag0="0" V10="8" V11="7" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="6" V02="9" Flag0="0" V10="10" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="8" Flag0="0" V10="12" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="10" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="11" V11="7" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="4" V02="7" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="19" V02="17" Flag0="0" V10="20" V11="19" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="19" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="21" Flag0="0" V10="23" V11="22" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="25" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="25" Flag0="0" V10="27" V11="26" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="29" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<Triangle1 V00="30" V01="31" V02="29"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_0" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="3" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="1" V02="4" Flag0="0" V10="6" V11="7" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="9" V02="8" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="10" V11="13" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="14" V02="16" Flag0="0" V10="15" V11="16" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="15" V02="17" Flag0="0" V10="18" V11="17" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="18" V02="19" Flag0="0" V10="20" V11="19" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="18" V02="20" Flag0="0" V10="22" V11="23" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="23" V02="22" Flag0="0" V10="24" V11="11" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="24" V02="25" Flag0="0" V10="11" V11="25" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="9" V02="25" Flag0="0" V10="26" V11="7" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="26" V02="2" Flag0="0" V10="7" V11="2" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="23" Flag0="0" V10="23" V11="12" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="15" V02="18" Flag0="0" V10="27" V11="28" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="30" V02="27" Flag0="0" V10="29" V11="31" V12="30" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_0" VertexBufferIndex="0" VertexOffset="128" Count="17"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="4" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="6" V02="4" Flag0="0" V10="7" V11="6" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="8" Flag0="0" V10="11" V11="10" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="10" Flag0="0" V10="13" V11="12" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="15" V11="14" V12="13" Flag1="0"/>
|
||||||
|
<Triangle1 V00="15" V01="16" V02="14"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,84 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="30"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="18" V11="19" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="20" V02="19" Flag0="0" V10="19" V11="21" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="22" V11="24" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="26" V11="28" V12="29" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_1" VertexBufferIndex="0" VertexOffset="30" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="16" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="27" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_1" VertexBufferIndex="0" VertexOffset="62" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="4" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="4" Flag0="0" V10="8" V11="10" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="2" V01="10" V02="8" Flag0="0" V10="2" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="14" V02="16" Flag0="0" V10="15" V11="16" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="17" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="19" V11="20" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="23" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="24" V11="25" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="27" V02="28" Flag0="0" V10="28" V11="27" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="30" V11="29" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_1" VertexBufferIndex="0" VertexOffset="94" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="5" V11="0" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="0" Flag0="0" V10="7" V11="6" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="12" Flag0="0" V10="10" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="13" V02="10" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="15" V02="14" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="17" V02="16" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="19" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="22" V02="15" Flag0="0" V10="17" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="22" V02="24" Flag0="0" V10="15" V11="24" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="24" V02="25" Flag0="0" V10="13" V11="25" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="26" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="30" V01="29" V02="26" Flag0="0" V10="31" V11="30" V12="26" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_1" VertexBufferIndex="0" VertexOffset="126" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="2" V01="3" V02="4" Flag0="0" V10="5" V11="6" V12="0" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="7" V02="6" Flag0="0" V10="8" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="7" Flag0="0" V10="9" V11="10" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="11" V02="10" Flag0="0" V10="7" V11="10" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="12" V02="6" Flag0="0" V10="6" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="14" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="17" V02="14" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="19" V02="18" Flag0="0" V10="20" V11="21" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="21" Flag0="0" V10="22" V11="21" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="25" V11="27" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="28" V11="29" V12="30" Flag1="0"/>
|
||||||
|
<Triangle1 V00="30" V01="29" V02="31"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_1" VertexBufferIndex="0" VertexOffset="158" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="2" V01="3" V02="4" Flag0="0" V10="5" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="8" V02="6" Flag0="0" V10="9" V11="8" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="8" Flag0="0" V10="11" V11="6" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="13" Flag0="0" V10="14" V11="15" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="10" V02="16" Flag0="0" V10="17" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="20" V02="18" Flag0="0" V10="21" V11="20" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="20" Flag0="0" V10="23" V11="22" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="22" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="24" Flag0="0" V10="27" V11="28" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="29" V02="30" Flag0="0" V10="30" V11="29" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_1" VertexBufferIndex="0" VertexOffset="190" Count="17"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="2" V01="3" V02="4" Flag0="0" V10="4" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="10" V02="8" Flag0="0" V10="11" V11="10" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="10" Flag0="0" V10="13" V11="12" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="15" V11="14" V12="13" Flag1="0"/>
|
||||||
|
<Triangle1 V00="15" V01="16" V02="14"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,53 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="5" V02="4" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="7" V02="6" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="7" Flag0="0" V10="9" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="10" V02="12" Flag0="0" V10="7" V11="12" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="12" V02="13" Flag0="0" V10="5" V11="13" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="13" V02="14" Flag0="0" V10="3" V11="14" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="16" V02="17" Flag0="0" V10="15" V11="18" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="19" V02="16" Flag0="0" V10="18" V11="20" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="19" Flag0="0" V10="20" V11="22" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="25" Flag0="0" V10="23" V11="25" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="29" Flag0="0" V10="27" V11="30" V12="28" Flag1="0"/>
|
||||||
|
<Triangle1 V00="30" V01="31" V02="28"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_2" VertexBufferIndex="0" VertexOffset="32" Count="31"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="10" V02="8" Flag0="0" V10="10" V11="11" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="13" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="15" V02="16" Flag0="0" V10="17" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="19" V02="20" Flag0="0" V10="21" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="24" V02="22" Flag0="0" V10="25" V11="24" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="24" Flag0="0" V10="27" V11="26" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="26" Flag0="0" V10="29" V11="28" V12="27" Flag1="0"/>
|
||||||
|
<Triangle1 V00="29" V01="30" V02="28"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_2" VertexBufferIndex="0" VertexOffset="63" Count="30"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="3" V11="4" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="5" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="12" Flag0="0" V10="10" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="13" V02="10" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="15" V02="14" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="17" V02="16" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="20" V11="23" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="25" V02="24" Flag0="0" V10="26" V11="27" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="27" V02="26" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_2" VertexBufferIndex="0" VertexOffset="93" Count="20"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="3" V11="4" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="5" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="12" Flag0="0" V10="10" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="13" V02="10" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="15" V02="14" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="17" V02="16" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,92 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_3" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="10" Flag0="0" V10="8" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="11" V02="8" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="13" V02="12" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="15" V02="14" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="15" Flag0="0" V10="17" V11="19" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="18" Flag0="0" V10="19" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="20" Flag0="0" V10="21" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="22" Flag0="0" V10="23" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="24" Flag0="0" V10="25" V11="27" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="26" Flag0="0" V10="27" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="30" V02="28" Flag0="0" V10="29" V11="31" V12="30" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_3" VertexBufferIndex="0" VertexOffset="32" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="3" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="4" Flag0="0" V10="5" V11="7" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="7" V11="9" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="8" Flag0="0" V10="9" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="10" Flag0="0" V10="11" V11="13" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="13" V11="15" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="16" V02="14" Flag0="0" V10="15" V11="17" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="16" Flag0="0" V10="17" V11="19" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="18" Flag0="0" V10="19" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="20" Flag0="0" V10="21" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="22" Flag0="0" V10="23" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="24" V02="26" Flag0="0" V10="22" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="27" V11="28" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="29" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_3" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="0" V02="3" Flag0="0" V10="4" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="5" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="6" V02="7" Flag0="0" V10="8" V11="7" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="8" V02="9" Flag0="0" V10="10" V11="9" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="10" V02="11" Flag0="0" V10="12" V11="11" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="12" V02="13" Flag0="0" V10="14" V11="13" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="14" V02="15" Flag0="0" V10="16" V11="15" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="16" V02="17" Flag0="0" V10="18" V11="17" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="18" V02="19" Flag0="0" V10="20" V11="19" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="20" V02="21" Flag0="0" V10="22" V11="21" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="22" V02="23" Flag0="0" V10="24" V11="23" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="24" V02="25" Flag0="0" V10="26" V11="25" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="26" V02="27" Flag0="0" V10="28" V11="27" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="30" V01="28" V02="29" Flag0="0" V10="30" V11="29" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_3" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="0" V02="3" Flag0="0" V10="4" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="5" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="4" V02="6" Flag0="0" V10="8" V11="9" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="9" V02="8" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="9" Flag0="0" V10="11" V11="13" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="13" V11="15" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="16" V02="14" Flag0="0" V10="15" V11="17" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="16" Flag0="0" V10="17" V11="19" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="18" Flag0="0" V10="19" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="20" Flag0="0" V10="21" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="22" Flag0="0" V10="23" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="24" Flag0="0" V10="25" V11="27" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="26" Flag0="0" V10="27" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="30" V02="28" Flag0="0" V10="29" V11="31" V12="30" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_3" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="3" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="4" Flag0="0" V10="5" V11="7" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="7" V11="9" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="8" Flag0="0" V10="9" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="10" Flag0="0" V10="11" V11="13" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="13" V11="15" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="16" Flag0="0" V10="12" V11="16" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="17" Flag0="0" V10="10" V11="17" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="18" Flag0="0" V10="8" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="19" Flag0="0" V10="6" V11="19" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="20" Flag0="0" V10="4" V11="20" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="21" Flag0="0" V10="1" V11="21" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="2" V01="1" V02="22" Flag0="0" V10="2" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="2" V02="23" Flag0="0" V10="24" V11="23" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="24" V02="25" Flag0="0" V10="26" V11="25" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="26" V02="27" Flag0="0" V10="28" V11="27" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="30" V01="28" V02="29" Flag0="0" V10="30" V11="29" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_3" VertexBufferIndex="0" VertexOffset="160" Count="14"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="0" V02="3" Flag0="0" V10="4" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="5" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="6" V02="7" Flag0="0" V10="8" V11="7" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="8" V02="9" Flag0="0" V10="10" V11="9" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="10" V02="11" Flag0="0" V10="12" V11="11" V12="13" Flag1="0"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,341 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="4" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="5" V02="6" Flag0="0" V10="7" V11="6" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="8" V11="7" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="7" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="7" V02="12" Flag0="0" V10="11" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="13" V02="12" Flag0="0" V10="4" V11="14" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="15" V02="13" Flag0="0" V10="14" V11="16" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="17" V02="15" Flag0="0" V10="16" V11="18" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="19" V02="17" Flag0="0" V10="18" V11="20" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="19" Flag0="0" V10="20" V11="22" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="21" Flag0="0" V10="22" V11="24" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="23" Flag0="0" V10="24" V11="26" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="25" Flag0="0" V10="26" V11="28" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="27" Flag0="0" V10="28" V11="30" V12="29" Flag1="0"/>
|
||||||
|
<Triangle1 V00="30" V01="31" V02="29"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="32" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="13" V11="9" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="9" Flag0="0" V10="14" V11="13" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="16" V02="15" Flag0="0" V10="17" V11="15" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="17" V02="16" Flag0="0" V10="18" V11="16" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="18" V02="19" Flag0="0" V10="20" V11="19" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="21" V02="19" Flag0="0" V10="22" V11="23" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="22" V02="24" Flag0="0" V10="23" V11="24" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="23" V02="25" Flag0="0" V10="26" V11="25" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="26" V02="27" Flag0="0" V10="28" V11="27" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="30" V01="28" V02="29" Flag0="0" V10="30" V11="29" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="0" V02="3" Flag0="0" V10="4" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="5" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="6" V02="7" Flag0="0" V10="8" V11="7" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="8" V02="9" Flag0="0" V10="10" V11="9" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="10" V02="11" Flag0="0" V10="12" V11="11" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="12" V02="13" Flag0="0" V10="14" V11="13" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="14" V02="15" Flag0="0" V10="16" V11="15" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="16" V02="17" Flag0="0" V10="18" V11="17" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="18" V02="20" Flag0="0" V10="18" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="20" V02="21" Flag0="0" V10="23" V11="22" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="24" V02="20" Flag0="0" V10="24" V11="25" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="26" V02="25" Flag0="0" V10="26" V11="27" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="28" V02="27" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="30" V02="29" Flag0="0" V10="30" V11="31" V12="29" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="13" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="16" V02="15" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="18" V02="17" Flag0="0" V10="19" V11="15" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="15" Flag0="0" V10="20" V11="13" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="13" Flag0="0" V10="21" V11="11" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="11" Flag0="0" V10="22" V11="9" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="9" Flag0="0" V10="23" V11="7" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="7" Flag0="0" V10="24" V11="5" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="5" Flag0="0" V10="25" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="3" Flag0="0" V10="26" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="2" Flag0="0" V10="27" V11="28" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="29" V02="28" Flag0="0" V10="29" V11="30" V12="28" Flag1="0"/>
|
||||||
|
<Triangle1 V00="29" V01="31" V02="30"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="8" V02="6" Flag0="0" V10="9" V11="8" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="8" Flag0="0" V10="11" V11="10" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="10" Flag0="0" V10="13" V11="12" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="15" V11="14" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="16" V02="14" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="16" Flag0="0" V10="19" V11="18" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="18" Flag0="0" V10="21" V11="20" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="20" Flag0="0" V10="23" V11="22" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="22" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="24" Flag0="0" V10="27" V11="26" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="26" Flag0="0" V10="29" V11="28" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="30" V02="28" Flag0="0" V10="31" V11="30" V12="29" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="4" Flag0="0" V10="7" V11="6" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="6" Flag0="0" V10="10" V11="9" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="12" Flag0="0" V10="13" V11="10" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="12" V02="14" Flag0="0" V10="15" V11="13" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="14" V02="16" Flag0="0" V10="17" V11="15" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="23" V11="21" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="22" V02="24" Flag0="0" V10="25" V11="23" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="192" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="13" V02="14" Flag0="0" V10="7" V11="9" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="14" V02="15" Flag0="0" V10="5" V11="7" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="15" V02="16" Flag0="0" V10="3" V11="5" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="16" V02="17" Flag0="0" V10="0" V11="3" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="0" V01="17" V02="18" Flag0="0" V10="19" V11="0" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="23" V11="21" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="22" V02="24" Flag0="0" V10="25" V11="23" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="224" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="11" V02="12" Flag0="0" V10="9" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="13" Flag0="0" V10="12" V11="15" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="16" V02="15" Flag0="0" V10="12" V11="17" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="18" V02="14" Flag0="0" V10="15" V11="19" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="20" V02="19" Flag0="0" V10="15" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="18" V02="22" Flag0="0" V10="14" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="23" Flag0="0" V10="13" V11="23" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="13" V02="24" Flag0="0" V10="25" V11="24" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="25" V02="26" Flag0="0" V10="27" V11="26" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="27" V02="28" Flag0="0" V10="29" V11="28" V12="30" Flag1="0"/>
|
||||||
|
<Triangle1 V00="31" V01="29" V02="30"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="256" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="5" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="5" Flag0="0" V10="9" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="12" V02="11" Flag0="0" V10="10" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="13" V02="3" Flag0="0" V10="10" V11="14" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="15" V02="14" Flag0="0" V10="13" V11="0" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="16" V02="0" Flag0="0" V10="13" V11="17" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="18" V02="17" Flag0="0" V10="16" V11="19" V12="0" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="20" V02="19" Flag0="0" V10="16" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="22" V02="21" Flag0="0" V10="20" V11="23" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="24" V02="23" Flag0="0" V10="20" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="26" V02="25" Flag0="0" V10="24" V11="27" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="28" V02="27" Flag0="0" V10="24" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="30" V02="29" Flag0="0" V10="28" V11="31" V12="27" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="288" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="0" V01="3" V02="4" Flag0="0" V10="3" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="3" V11="7" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="8" V02="7" Flag0="0" V10="6" V11="9" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="10" V02="9" Flag0="0" V10="6" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="12" V02="11" Flag0="0" V10="5" V11="9" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="13" V02="14" Flag0="0" V10="4" V11="5" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="14" V02="15" Flag0="0" V10="16" V11="4" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="15" V02="17" Flag0="0" V10="0" V11="4" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="18" V02="19" Flag0="0" V10="10" V11="19" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="20" V02="21" Flag0="0" V10="10" V11="21" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="22" V11="23" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="24" V02="25" Flag0="0" V10="20" V11="25" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="26" V02="27" Flag0="0" V10="20" V11="27" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="28" V11="29" V12="23" Flag1="0"/>
|
||||||
|
<Triangle1 V00="26" V01="30" V02="31"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="320" Count="30"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="2" V01="4" V02="3" Flag0="0" V10="2" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="2" V01="6" V02="5" Flag0="0" V10="2" V11="7" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="8" Flag0="0" V10="3" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="3" V02="9" Flag0="0" V10="10" V11="9" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="0" V01="3" V02="10" Flag0="0" V10="12" V11="13" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="15" V02="13" Flag0="0" V10="15" V11="16" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="17" V02="16" Flag0="0" V10="17" V11="18" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="19" V02="18" Flag0="0" V10="19" V11="20" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="21" V02="20" Flag0="0" V10="21" V11="22" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="23" V02="22" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="26" V02="27" Flag0="0" V10="28" V11="24" V12="27" Flag1="0"/>
|
||||||
|
<Triangle1 V00="28" V01="27" V02="29"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="350" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="0" V02="3" Flag0="0" V10="4" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="6" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="7" Flag0="0" V10="9" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="10" Flag0="0" V10="11" V11="13" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="13" V11="15" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="16" V02="14" Flag0="0" V10="15" V11="17" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="19" V02="20" Flag0="0" V10="18" V11="20" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="22" V11="24" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="27" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="30" V02="28" Flag0="0" V10="30" V11="31" V12="28" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="382" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="2" Flag0="0" V10="4" V11="5" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="2" Flag0="0" V10="6" V11="7" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="2" Flag0="0" V10="8" V11="9" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="2" Flag0="0" V10="10" V11="11" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="2" Flag0="0" V10="13" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="15" V02="16" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="16" Flag0="0" V10="18" V11="17" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="20" V02="19" Flag0="0" V10="17" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="17" V02="22" Flag0="0" V10="21" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="23" V02="22" Flag0="0" V10="14" V11="24" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="23" Flag0="0" V10="24" V11="26" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="25" Flag0="0" V10="26" V11="28" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="29" V02="27" Flag0="0" V10="28" V11="30" V12="29" Flag1="0"/>
|
||||||
|
<Triangle1 V00="30" V01="31" V02="29"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="414" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="13" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="16" V02="15" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="18" V02="17" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="20" V02="19" Flag0="0" V10="21" V11="17" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="17" Flag0="0" V10="22" V11="21" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="24" V02="23" Flag0="0" V10="21" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="21" V02="26" Flag0="0" V10="25" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="27" V02="26" Flag0="0" V10="20" V11="28" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="29" V02="24" Flag0="0" V10="30" V11="24" V12="29" Flag1="0"/>
|
||||||
|
<Triangle1 V00="31" V01="30" V02="29"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="446" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="5" V11="4" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="4" Flag0="0" V10="6" V11="5" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="13" V11="11" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="12" V02="14" Flag0="0" V10="15" V11="13" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="14" V02="16" Flag0="0" V10="17" V11="15" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="23" V11="21" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="22" V02="24" Flag0="0" V10="25" V11="23" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="478" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="3" V02="1" Flag0="0" V10="4" V11="1" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="3" V11="7" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="2" Flag0="0" V10="7" V11="9" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="8" Flag0="0" V10="9" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="10" Flag0="0" V10="11" V11="13" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="13" V11="15" V12="14" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="16" V02="14" Flag0="0" V10="15" V11="17" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="16" Flag0="0" V10="17" V11="19" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="18" Flag0="0" V10="19" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="20" Flag0="0" V10="21" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="22" Flag0="0" V10="23" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="26" V02="24" Flag0="0" V10="25" V11="27" V12="26" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="26" Flag0="0" V10="27" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="30" V01="26" V02="28" Flag0="0" V10="30" V11="31" V12="26" Flag1="0"/>
|
||||||
|
<Triangle1 V00="31" V01="24" V02="26"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="510" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="13" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="16" V02="15" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="18" V02="17" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="21" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="24" V02="23" Flag0="0" V10="24" V11="25" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="26" V02="25" Flag0="0" V10="26" V11="27" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="28" V02="27" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="30" V02="29" Flag0="0" V10="30" V11="31" V12="29" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="542" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="13" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="16" V02="15" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="18" V02="17" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="20" V02="19" Flag0="0" V10="20" V11="21" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="22" V02="21" Flag0="0" V10="22" V11="23" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="23" V02="24" Flag0="0" V10="23" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="26" V11="27" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="28" V02="27" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="30" V02="29" Flag0="0" V10="30" V11="31" V12="29" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="574" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="13" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="16" V02="15" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="18" V02="17" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="20" V02="19" Flag0="0" V10="20" V11="21" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="22" V02="21" Flag0="0" V10="22" V11="23" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="24" V02="23" Flag0="0" V10="24" V11="25" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="27" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="30" V02="29" Flag0="0" V10="30" V11="31" V12="29" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="606" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="13" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="16" V02="15" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="18" V02="17" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="20" V02="19" Flag0="0" V10="20" V11="21" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="22" V02="21" Flag0="0" V10="22" V11="23" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="24" V02="23" Flag0="0" V10="24" V11="25" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="26" V02="25" Flag0="0" V10="26" V11="27" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="28" V02="27" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="29" V02="30" Flag0="0" V10="29" V11="31" V12="30" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_4" VertexBufferIndex="0" VertexOffset="638" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="1" V11="3" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="8" V02="7" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="12" V02="11" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="14" V02="13" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="16" V02="15" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="18" V02="17" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="20" V02="19" Flag0="0" V10="20" V11="21" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="22" V02="21" Flag0="0" V10="22" V11="23" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="24" V02="23" Flag0="0" V10="24" V11="25" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="26" V02="25" Flag0="0" V10="26" V11="27" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="28" V02="27" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="30" V02="29" Flag0="0" V10="30" V11="31" V12="29" Flag1="0"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,30 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_5" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="4" V12="2" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="7" Flag0="0" V10="6" V11="8" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="9" V02="7" Flag0="0" V10="9" V11="10" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="7" Flag0="0" V10="12" V11="13" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="7" Flag0="0" V10="14" V11="15" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="16" V02="7" Flag0="0" V10="16" V11="17" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="7" Flag0="0" V10="18" V11="19" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="7" Flag0="0" V10="20" V11="21" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="22" V11="24" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="22" V02="25" Flag0="0" V10="26" V11="25" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="26" V02="27" Flag0="0" V10="28" V11="27" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="30" V01="28" V02="29" Flag0="0" V10="30" V11="29" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_5" VertexBufferIndex="0" VertexOffset="32" Count="28"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="0" V02="3" Flag0="0" V10="4" V11="3" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="5" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="6" V02="7" Flag0="0" V10="8" V11="7" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="8" V02="9" Flag0="0" V10="10" V11="9" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="10" V02="11" Flag0="0" V10="12" V11="11" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="12" V02="13" Flag0="0" V10="14" V11="13" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="14" V02="15" Flag0="0" V10="16" V11="15" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="16" V02="17" Flag0="0" V10="18" V11="17" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="18" V02="19" Flag0="0" V10="20" V11="19" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="20" V02="21" Flag0="0" V10="22" V11="21" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="24" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_6" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="5" V02="4" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="7" V02="6" Flag0="0" V10="8" V11="9" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="9" V02="8" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="11" V02="10" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="13" V02="12" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="15" V02="14" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="17" V02="16" Flag0="0" V10="18" V11="19" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="19" V02="18" Flag0="0" V10="20" V11="21" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="21" V02="20" Flag0="0" V10="22" V11="23" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="23" V02="22" Flag0="0" V10="24" V11="25" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="25" V02="24" Flag0="0" V10="26" V11="27" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="27" V02="26" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="30" V01="29" V02="28" Flag0="0" V10="30" V11="31" V12="29" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_6" VertexBufferIndex="0" VertexOffset="32" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="3" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="1" V01="4" V02="6" Flag0="0" V10="1" V11="6" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="9" V11="10" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="11" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="12" V02="14" Flag0="0" V10="13" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="14" V02="16" Flag0="0" V10="15" V11="16" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="17" V11="18" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="19" V11="20" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="21" V11="22" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="22" V02="24" Flag0="0" V10="23" V11="24" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="25" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="27" V11="28" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="29" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_6" VertexBufferIndex="0" VertexOffset="64" Count="6"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="3" V11="4" V12="5" Flag1="0"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,80 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_7" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="4" V11="5" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="5" V02="4" Flag0="0" V10="6" V11="7" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="9" V02="8" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="11" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="13" V02="12" Flag0="0" V10="14" V11="15" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="15" V02="14" Flag0="0" V10="16" V11="17" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="18" V02="15" Flag0="0" V10="17" V11="19" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="20" V02="18" Flag0="0" V10="19" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="21" V01="22" V02="20" Flag0="0" V10="21" V11="23" V12="22" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="22" V02="23" Flag0="0" V10="24" V11="23" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="24" V02="26" Flag0="0" V10="22" V11="26" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="28" V01="27" V02="26" Flag0="0" V10="28" V11="29" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="29" V11="30" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_7" VertexBufferIndex="0" VertexOffset="32" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="0" V02="4" Flag0="0" V10="5" V11="4" V12="0" Flag1="0"/>
|
||||||
|
<Triangles2 V00="5" V01="6" V02="4" Flag0="0" V10="7" V11="6" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="7" V11="9" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="10" V11="7" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="11" V02="7" Flag0="0" V10="12" V11="13" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="14" Flag0="0" V10="10" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="15" V02="16" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="17" V01="15" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="19" V01="9" V02="17" Flag0="0" V10="8" V11="9" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="19" V02="20" Flag0="0" V10="8" V11="20" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="21" V02="22" Flag0="0" V10="9" V11="16" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="16" Flag0="0" V10="23" V11="24" V12="25" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="26" V02="24" Flag0="0" V10="27" V11="26" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="26" Flag0="0" V10="29" V11="28" V12="27" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="27" V02="30" Flag0="0" V10="30" V11="27" V12="31" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_7" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="2" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="0" V02="5" Flag0="0" V10="4" V11="5" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="4" V01="6" V02="7" Flag0="0" V10="8" V11="7" V12="6" Flag1="0"/>
|
||||||
|
<Triangles2 V00="8" V01="6" V02="9" Flag0="0" V10="10" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="11" V02="8" Flag0="0" V10="12" V11="11" V12="10" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="10" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
|
||||||
|
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="11" V11="7" V12="8" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="4" V02="7" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="16" V01="19" V02="17" Flag0="0" V10="20" V11="19" V12="16" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="21" V02="19" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="23" V02="21" Flag0="0" V10="23" V11="22" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="24" V02="25" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="27" V02="25" Flag0="0" V10="27" V11="26" V12="28" Flag1="0"/>
|
||||||
|
<Triangles2 V00="27" V01="28" V02="29" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
|
||||||
|
<Triangle1 V00="30" V01="31" V02="29"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_7" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="3" V11="5" V12="4" Flag1="0"/>
|
||||||
|
<Triangles2 V00="6" V01="1" V02="4" Flag0="0" V10="6" V11="7" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="10" V01="9" V02="8" Flag0="0" V10="10" V11="11" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="10" V11="13" V12="12" Flag1="0"/>
|
||||||
|
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="12" V11="14" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="15" V01="14" V02="16" Flag0="0" V10="15" V11="16" V12="17" Flag1="0"/>
|
||||||
|
<Triangles2 V00="18" V01="15" V02="17" Flag0="0" V10="18" V11="17" V12="19" Flag1="0"/>
|
||||||
|
<Triangles2 V00="20" V01="18" V02="19" Flag0="0" V10="20" V11="19" V12="21" Flag1="0"/>
|
||||||
|
<Triangles2 V00="22" V01="18" V02="20" Flag0="0" V10="22" V11="23" V12="18" Flag1="0"/>
|
||||||
|
<Triangles2 V00="24" V01="23" V02="22" Flag0="0" V10="24" V11="11" V12="23" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="24" V02="25" Flag0="0" V10="11" V11="25" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="26" V01="9" V02="25" Flag0="0" V10="26" V11="7" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="26" V02="2" Flag0="0" V10="7" V11="2" V12="1" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="23" Flag0="0" V10="23" V11="12" V12="15" Flag1="0"/>
|
||||||
|
<Triangles2 V00="23" V01="15" V02="18" Flag0="0" V10="27" V11="28" V12="29" Flag1="0"/>
|
||||||
|
<Triangles2 V00="29" V01="30" V02="27" Flag0="0" V10="29" V11="31" V12="30" Flag1="0"/>
|
||||||
|
<LoadVertices Path="objects/object_gi_fishing_pole/gFishingPoleGiDL_vtx_7" VertexBufferIndex="0" VertexOffset="128" Count="17"/>
|
||||||
|
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="4" V12="5" Flag1="0"/>
|
||||||
|
<Triangles2 V00="3" V01="6" V02="4" Flag0="0" V10="7" V11="6" V12="3" Flag1="0"/>
|
||||||
|
<Triangles2 V00="7" V01="8" V02="6" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
|
||||||
|
<Triangles2 V00="9" V01="10" V02="8" Flag0="0" V10="11" V11="10" V12="9" Flag1="0"/>
|
||||||
|
<Triangles2 V00="11" V01="12" V02="10" Flag0="0" V10="13" V11="12" V12="11" Flag1="0"/>
|
||||||
|
<Triangles2 V00="13" V01="14" V02="12" Flag0="0" V10="15" V11="14" V12="13" Flag1="0"/>
|
||||||
|
<Triangle1 V00="15" V01="16" V02="14"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,147 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="24" Y="-76" Z="78" S="-138" T="-288" R="68" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="72" S="-95" T="-523" R="188" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="21" Y="-76" Z="78" S="-138" T="-523" R="188" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="24" Y="-73" Z="72" S="-95" T="-288" R="68" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="78" S="-138" T="-266" R="121" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="24" Y="-73" Z="72" S="-95" T="-266" R="125" G="24" B="5" A="255"/>
|
||||||
|
<Vtx X="24" Y="-83" Z="73" S="-138" T="-33" R="121" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="24" Y="-80" Z="68" S="-95" T="-33" R="125" G="240" B="237" A="255"/>
|
||||||
|
<Vtx X="24" Y="-83" Z="73" S="-138" T="-11" R="68" G="149" B="244" A="255"/>
|
||||||
|
<Vtx X="24" Y="-80" Z="68" S="-95" T="-11" R="68" G="181" B="180" A="255"/>
|
||||||
|
<Vtx X="21" Y="-83" Z="73" S="-138" T="224" R="188" G="149" B="244" A="255"/>
|
||||||
|
<Vtx X="21" Y="-80" Z="68" S="-95" T="224" R="188" G="181" B="180" A="255"/>
|
||||||
|
<Vtx X="21" Y="-83" Z="73" S="-138" T="246" R="135" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="21" Y="-80" Z="68" S="-95" T="246" R="131" G="240" B="237" A="255"/>
|
||||||
|
<Vtx X="21" Y="-76" Z="78" S="-138" T="479" R="135" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="72" S="-95" T="479" R="131" G="24" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-76" Z="78" S="-138" T="491" R="188" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="72" S="-95" T="491" R="188" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="68" S="-82" T="469" R="130" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="68" S="-82" T="491" R="176" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="21" Y="-60" Z="46" S="69" T="469" R="130" G="12" B="12" A="255"/>
|
||||||
|
<Vtx X="21" Y="-60" Z="47" S="69" T="491" R="176" G="69" B="71" A="255"/>
|
||||||
|
<Vtx X="21" Y="-59" Z="46" S="77" T="474" R="131" G="16" B="18" A="255"/>
|
||||||
|
<Vtx X="21" Y="-59" Z="46" S="77" T="491" R="188" G="76" B="75" A="255"/>
|
||||||
|
<Vtx X="21" Y="-57" Z="43" S="99" T="474" R="134" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="21" Y="-57" Z="43" S="99" T="491" R="186" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="21" Y="-62" Z="40" S="99" T="251" R="134" G="249" B="223" A="255"/>
|
||||||
|
<Vtx X="21" Y="-64" Z="43" S="77" T="251" R="131" G="232" B="251" A="255"/>
|
||||||
|
<Vtx X="21" Y="-62" Z="40" S="99" T="224" R="186" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="21" Y="-64" Z="43" S="77" T="224" R="188" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="24" Y="-62" Z="40" S="99" T="-11" R="70" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="24" Y="-64" Z="43" S="77" T="-11" R="68" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="24" Y="-62" Z="40" S="99" T="-38" R="122" G="249" B="223" A="255"/>
|
||||||
|
<Vtx X="24" Y="-64" Z="43" S="77" T="-11" R="68" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="24" Y="-62" Z="40" S="99" T="-11" R="70" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="24" Y="-64" Z="43" S="77" T="-38" R="125" G="232" B="251" A="255"/>
|
||||||
|
<Vtx X="24" Y="-57" Z="43" S="99" T="-261" R="122" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="24" Y="-61" Z="40" S="108" T="-45" R="114" G="15" B="202" A="255"/>
|
||||||
|
<Vtx X="24" Y="-57" Z="42" S="108" T="-253" R="114" G="39" B="216" A="255"/>
|
||||||
|
<Vtx X="24" Y="-61" Z="39" S="126" T="-31" R="52" G="7" B="140" A="255"/>
|
||||||
|
<Vtx X="24" Y="-57" Z="41" S="126" T="-268" R="52" G="97" B="193" A="255"/>
|
||||||
|
<Vtx X="21" Y="-57" Z="41" S="343" T="-268" R="204" G="97" B="193" A="255"/>
|
||||||
|
<Vtx X="21" Y="-61" Z="39" S="343" T="-31" R="204" G="7" B="140" A="255"/>
|
||||||
|
<Vtx X="24" Y="-62" Z="40" S="117" T="-21" R="70" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="24" Y="-61" Z="40" S="112" T="-29" R="114" G="15" B="202" A="255"/>
|
||||||
|
<Vtx X="24" Y="-62" Z="40" S="108" T="-23" R="122" G="249" B="223" A="255"/>
|
||||||
|
<Vtx X="21" Y="-62" Z="40" S="352" T="-21" R="186" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="21" Y="-62" Z="40" S="363" T="-38" R="134" G="249" B="223" A="255"/>
|
||||||
|
<Vtx X="21" Y="-61" Z="40" S="358" T="-45" R="142" G="15" B="202" A="255"/>
|
||||||
|
<Vtx X="21" Y="-57" Z="42" S="358" T="-253" R="142" G="39" B="216" A="255"/>
|
||||||
|
<Vtx X="21" Y="-57" Z="43" S="363" T="-261" R="134" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="21" Y="-57" Z="43" S="352" T="-277" R="186" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="24" Y="-57" Z="43" S="117" T="-277" R="70" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="24" Y="-57" Z="43" S="108" T="-275" R="122" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="24" Y="-57" Z="42" S="112" T="-269" R="114" G="39" B="216" A="255"/>
|
||||||
|
<Vtx X="24" Y="-78" Z="78" S="-157" T="-254" R="111" G="236" B="59" A="255"/>
|
||||||
|
<Vtx X="24" Y="-83" Z="73" S="-138" T="-33" R="121" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="78" S="-138" T="-266" R="121" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="24" Y="-83" Z="76" S="-157" T="-45" R="110" G="214" B="47" A="255"/>
|
||||||
|
<Vtx X="23" Y="-78" Z="79" S="-177" T="-266" R="49" G="237" B="116" A="255"/>
|
||||||
|
<Vtx X="23" Y="-83" Z="76" S="-177" T="-33" R="49" G="165" B="73" A="255"/>
|
||||||
|
<Vtx X="22" Y="-83" Z="76" S="-377" T="-33" R="207" G="165" B="73" A="255"/>
|
||||||
|
<Vtx X="22" Y="-78" Z="79" S="-377" T="-266" R="207" G="237" B="116" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="78" S="-160" T="-277" R="68" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="78" S="-160" T="-277" R="68" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="23" Y="-78" Z="79" S="-177" T="-266" R="49" G="237" B="116" A="255"/>
|
||||||
|
<Vtx X="24" Y="-78" Z="78" S="-160" T="-267" R="111" G="236" B="59" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="78" S="-151" T="-276" R="121" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="22" Y="-78" Z="79" S="-377" T="-266" R="207" G="237" B="116" A="255"/>
|
||||||
|
<Vtx X="21" Y="-76" Z="78" S="-395" T="-277" R="188" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="21" Y="-76" Z="78" S="-405" T="-266" R="135" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="21" Y="-78" Z="78" S="-396" T="-254" R="145" G="236" B="59" A="255"/>
|
||||||
|
<Vtx X="21" Y="-83" Z="76" S="-396" T="-45" R="146" G="214" B="47" A="255"/>
|
||||||
|
<Vtx X="21" Y="-83" Z="73" S="-405" T="-33" R="135" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="21" Y="-83" Z="73" S="-395" T="-21" R="188" G="149" B="244" A="255"/>
|
||||||
|
<Vtx X="22" Y="-83" Z="76" S="-377" T="-33" R="207" G="165" B="73" A="255"/>
|
||||||
|
<Vtx X="23" Y="-83" Z="76" S="-177" T="-33" R="49" G="165" B="73" A="255"/>
|
||||||
|
<Vtx X="24" Y="-83" Z="73" S="-160" T="-21" R="68" G="149" B="244" A="255"/>
|
||||||
|
<Vtx X="24" Y="-83" Z="73" S="-151" T="-23" R="121" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="24" Y="-83" Z="76" S="-160" T="-32" R="110" G="214" B="47" A="255"/>
|
||||||
|
<Vtx X="24" Y="-73" Z="72" S="-95" T="-288" R="68" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="68" S="-82" T="-523" R="176" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="72" S="-95" T="-523" R="188" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="24" Y="-73" Z="68" S="-82" T="-288" R="80" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="24" Y="-73" Z="72" S="-95" T="-266" R="125" G="24" B="5" A="255"/>
|
||||||
|
<Vtx X="24" Y="-73" Z="68" S="-82" T="-255" R="126" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="24" Y="-80" Z="68" S="-95" T="-33" R="125" G="240" B="237" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="66" S="-82" T="-43" R="126" G="244" B="244" A="255"/>
|
||||||
|
<Vtx X="24" Y="-80" Z="68" S="-95" T="-11" R="68" G="181" B="180" A="255"/>
|
||||||
|
<Vtx X="24" Y="-77" Z="66" S="-82" T="-11" R="80" G="188" B="184" A="255"/>
|
||||||
|
<Vtx X="21" Y="-80" Z="68" S="-95" T="224" R="188" G="181" B="180" A="255"/>
|
||||||
|
<Vtx X="21" Y="-77" Z="66" S="-82" T="224" R="176" G="188" B="184" A="255"/>
|
||||||
|
<Vtx X="21" Y="-80" Z="68" S="-95" T="246" R="131" G="240" B="237" A="255"/>
|
||||||
|
<Vtx X="21" Y="-76" Z="66" S="-82" T="257" R="130" G="244" B="244" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="72" S="-95" T="479" R="131" G="24" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="68" S="-82" T="469" R="130" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="68" S="-82" T="469" R="130" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-64" Z="44" S="69" T="257" R="130" G="240" B="251" A="255"/>
|
||||||
|
<Vtx X="21" Y="-76" Z="66" S="-82" T="257" R="130" G="244" B="244" A="255"/>
|
||||||
|
<Vtx X="21" Y="-60" Z="46" S="69" T="469" R="130" G="12" B="12" A="255"/>
|
||||||
|
<Vtx X="21" Y="-64" Z="43" S="77" T="251" R="131" G="232" B="251" A="255"/>
|
||||||
|
<Vtx X="21" Y="-59" Z="46" S="77" T="474" R="131" G="16" B="18" A="255"/>
|
||||||
|
<Vtx X="21" Y="-64" Z="43" S="77" T="224" R="188" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="21" Y="-64" Z="44" S="69" T="224" R="176" G="160" B="232" A="255"/>
|
||||||
|
<Vtx X="24" Y="-64" Z="43" S="77" T="-11" R="68" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="24" Y="-64" Z="44" S="69" T="-11" R="80" G="160" B="232" A="255"/>
|
||||||
|
<Vtx X="24" Y="-64" Z="43" S="77" T="-38" R="125" G="232" B="251" A="255"/>
|
||||||
|
<Vtx X="24" Y="-64" Z="44" S="69" T="-43" R="126" G="240" B="251" A="255"/>
|
||||||
|
<Vtx X="24" Y="-59" Z="46" S="77" T="-261" R="125" G="16" B="18" A="255"/>
|
||||||
|
<Vtx X="24" Y="-57" Z="43" S="99" T="-261" R="122" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="24" Y="-57" Z="43" S="99" T="-288" R="70" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="24" Y="-59" Z="46" S="77" T="-288" R="68" G="76" B="75" A="255"/>
|
||||||
|
<Vtx X="21" Y="-57" Z="43" S="99" T="-523" R="186" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="21" Y="-59" Z="46" S="77" T="-523" R="188" G="76" B="75" A="255"/>
|
||||||
|
<Vtx X="24" Y="-60" Z="47" S="69" T="-288" R="80" G="69" B="71" A="255"/>
|
||||||
|
<Vtx X="21" Y="-60" Z="47" S="69" T="-523" R="176" G="69" B="71" A="255"/>
|
||||||
|
<Vtx X="24" Y="-73" Z="68" S="-82" T="-288" R="80" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="21" Y="-73" Z="68" S="-82" T="-523" R="176" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="24" Y="-73" Z="68" S="-82" T="-255" R="126" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="24" Y="-60" Z="46" S="69" T="-255" R="126" G="12" B="12" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="66" S="-82" T="-43" R="126" G="244" B="244" A="255"/>
|
||||||
|
<Vtx X="24" Y="-77" Z="66" S="-82" T="-11" R="80" G="188" B="184" A="255"/>
|
||||||
|
<Vtx X="21" Y="-77" Z="66" S="-82" T="224" R="176" G="188" B="184" A="255"/>
|
||||||
|
<Vtx X="20" Y="-59" Z="42" S="22" T="112" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-61" Z="41" S="235" T="-11" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-62" Z="42" S="448" T="112" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-61" Z="45" S="235" T="480" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-62" Z="44" S="448" T="358" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-61" Z="45" S="235" T="480" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-59" Z="44" S="22" T="358" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-59" Z="42" S="22" T="112" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-59" Z="42" S="-363" T="-21" R="178" G="87" B="206" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="41" S="-533" T="-280" R="190" G="0" B="147" A="255"/>
|
||||||
|
<Vtx X="20" Y="-61" Z="41" S="-533" T="-21" R="178" G="0" B="155" A="255"/>
|
||||||
|
<Vtx X="27" Y="-59" Z="42" S="-363" T="-280" R="190" G="94" B="202" A="255"/>
|
||||||
|
<Vtx X="20" Y="-59" Z="44" S="-192" T="-21" R="178" G="87" B="50" A="255"/>
|
||||||
|
<Vtx X="27" Y="-59" Z="44" S="-192" T="-280" R="190" G="94" B="54" A="255"/>
|
||||||
|
<Vtx X="20" Y="-61" Z="45" S="-21" T="-21" R="178" G="0" B="101" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="45" S="-21" T="-280" R="190" G="0" B="109" A="255"/>
|
||||||
|
<Vtx X="20" Y="-62" Z="44" S="149" T="-21" R="178" G="169" B="50" A="255"/>
|
||||||
|
<Vtx X="27" Y="-62" Z="44" S="149" T="-280" R="190" G="162" B="54" A="255"/>
|
||||||
|
<Vtx X="20" Y="-62" Z="42" S="320" T="-21" R="178" G="169" B="206" A="255"/>
|
||||||
|
<Vtx X="27" Y="-62" Z="42" S="320" T="-280" R="190" G="162" B="202" A="255"/>
|
||||||
|
<Vtx X="20" Y="-61" Z="41" S="491" T="-21" R="178" G="0" B="155" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="41" S="491" T="-280" R="190" G="0" B="147" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,209 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="27" Y="-61" Z="40" S="1008" T="204" R="241" G="193" B="147" A="255"/>
|
||||||
|
<Vtx X="33" Y="-61" Z="39" S="1008" T="-16" R="241" G="193" B="147" A="255"/>
|
||||||
|
<Vtx X="33" Y="-63" Z="41" S="837" T="-16" R="241" G="193" B="147" A="255"/>
|
||||||
|
<Vtx X="27" Y="-63" Z="41" S="837" T="204" R="241" G="193" B="147" A="255"/>
|
||||||
|
<Vtx X="27" Y="-63" Z="41" S="837" T="204" R="241" G="130" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-63" Z="41" S="837" T="-16" R="241" G="130" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-63" Z="45" S="667" T="-16" R="241" G="130" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-63" Z="44" S="667" T="204" R="241" G="130" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-63" Z="44" S="667" T="204" R="241" G="193" B="109" A="255"/>
|
||||||
|
<Vtx X="33" Y="-63" Z="45" S="667" T="-16" R="241" G="193" B="109" A="255"/>
|
||||||
|
<Vtx X="33" Y="-61" Z="46" S="496" T="-16" R="241" G="193" B="109" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="45" S="496" T="204" R="241" G="193" B="109" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="45" S="496" T="204" R="241" G="63" B="109" A="255"/>
|
||||||
|
<Vtx X="33" Y="-61" Z="46" S="496" T="-16" R="241" G="63" B="109" A="255"/>
|
||||||
|
<Vtx X="33" Y="-58" Z="45" S="325" T="-16" R="241" G="63" B="109" A="255"/>
|
||||||
|
<Vtx X="27" Y="-58" Z="44" S="325" T="204" R="241" G="63" B="109" A="255"/>
|
||||||
|
<Vtx X="33" Y="-63" Z="45" S="453" T="875" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-63" Z="41" S="453" T="629" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-61" Z="39" S="240" T="506" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-58" Z="45" S="27" T="875" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-58" Z="41" S="27" T="629" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-61" Z="46" S="240" T="998" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-58" Z="44" S="325" T="204" R="241" G="126" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-58" Z="45" S="325" T="-16" R="241" G="126" B="0" A="255"/>
|
||||||
|
<Vtx X="33" Y="-58" Z="41" S="155" T="-16" R="241" G="126" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-58" Z="41" S="155" T="204" R="241" G="126" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-58" Z="41" S="155" T="204" R="241" G="63" B="147" A="255"/>
|
||||||
|
<Vtx X="33" Y="-58" Z="41" S="155" T="-16" R="241" G="63" B="147" A="255"/>
|
||||||
|
<Vtx X="33" Y="-61" Z="39" S="-16" T="-16" R="241" G="63" B="147" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="40" S="-16" T="204" R="241" G="63" B="147" A="255"/>
|
||||||
|
<Vtx X="27" Y="-59" Z="42" S="155" T="237" R="160" G="41" B="184" A="255"/>
|
||||||
|
<Vtx X="27" Y="-58" Z="41" S="155" T="204" R="160" G="41" B="184" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="40" S="-16" T="204" R="160" G="41" B="184" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="41" S="-16" T="237" R="160" G="41" B="184" A="255"/>
|
||||||
|
<Vtx X="27" Y="-59" Z="44" S="325" T="237" R="160" G="83" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-58" Z="44" S="325" T="204" R="160" G="83" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-58" Z="41" S="155" T="204" R="160" G="83" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-59" Z="42" S="155" T="237" R="160" G="83" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="45" S="496" T="237" R="160" G="41" B="72" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="45" S="496" T="204" R="160" G="41" B="72" A="255"/>
|
||||||
|
<Vtx X="27" Y="-58" Z="44" S="325" T="204" R="160" G="41" B="72" A="255"/>
|
||||||
|
<Vtx X="27" Y="-59" Z="44" S="325" T="237" R="160" G="41" B="72" A="255"/>
|
||||||
|
<Vtx X="27" Y="-62" Z="44" S="667" T="237" R="160" G="215" B="72" A="255"/>
|
||||||
|
<Vtx X="27" Y="-63" Z="44" S="667" T="204" R="160" G="215" B="72" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="45" S="496" T="204" R="160" G="215" B="72" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="45" S="496" T="237" R="160" G="215" B="72" A="255"/>
|
||||||
|
<Vtx X="27" Y="-62" Z="42" S="837" T="237" R="160" G="173" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-63" Z="41" S="837" T="204" R="160" G="173" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-63" Z="44" S="667" T="204" R="160" G="173" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-62" Z="44" S="667" T="237" R="160" G="173" B="0" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="41" S="1008" T="237" R="160" G="215" B="184" A="255"/>
|
||||||
|
<Vtx X="27" Y="-61" Z="40" S="1008" T="204" R="160" G="215" B="184" A="255"/>
|
||||||
|
<Vtx X="27" Y="-63" Z="41" S="837" T="204" R="160" G="215" B="184" A="255"/>
|
||||||
|
<Vtx X="27" Y="-62" Z="42" S="837" T="237" R="160" G="215" B="184" A="255"/>
|
||||||
|
<Vtx X="6" Y="-161" Z="144" S="1008" T="1008" R="0" G="143" B="59" A="255"/>
|
||||||
|
<Vtx X="-4" Y="-161" Z="143" S="325" T="1008" R="0" G="143" B="59" A="255"/>
|
||||||
|
<Vtx X="1" Y="-163" Z="139" S="667" T="1008" R="0" G="143" B="59" A="255"/>
|
||||||
|
<Vtx X="1" Y="-159" Z="148" S="-16" T="1008" R="0" G="143" B="59" A="255"/>
|
||||||
|
<Vtx X="-2" Y="171" Z="-124" S="325" T="1008" R="0" G="80" B="157" A="255"/>
|
||||||
|
<Vtx X="2" Y="171" Z="-124" S="1008" T="1008" R="0" G="80" B="157" A="255"/>
|
||||||
|
<Vtx X="0" Y="170" Z="-125" S="667" T="1008" R="0" G="80" B="157" A="255"/>
|
||||||
|
<Vtx X="0" Y="173" Z="-123" S="-16" T="1008" R="0" G="80" B="157" A="255"/>
|
||||||
|
<Vtx X="0" Y="173" Z="-123" S="-16" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="2" Y="144" Z="-94" S="84" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="2" Y="171" Z="-124" S="-16" T="240" R="127" G="4" B="1" A="255"/>
|
||||||
|
<Vtx X="0" Y="146" Z="-92" S="84" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-2" Y="171" Z="-124" S="-16" T="752" R="129" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="146" Z="-92" S="84" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="173" Z="-123" S="-16" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-3" Y="144" Z="-94" S="84" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="170" Z="-125" S="-16" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="-3" Y="144" Z="-94" S="84" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="143" Z="-95" S="84" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="2" Y="144" Z="-94" S="84" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="1" Y="-136" Z="135" S="949" T="-16" R="255" G="63" B="110" A="255"/>
|
||||||
|
<Vtx X="1" Y="-159" Z="148" S="1008" T="-16" R="255" G="63" B="110" A="255"/>
|
||||||
|
<Vtx X="6" Y="-161" Z="144" S="1008" T="240" R="127" G="2" B="2" A="255"/>
|
||||||
|
<Vtx X="6" Y="-138" Z="131" S="949" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="1" Y="-163" Z="139" S="1008" T="496" R="1" G="193" B="146" A="255"/>
|
||||||
|
<Vtx X="1" Y="-141" Z="126" S="949" T="496" R="1" G="193" B="146" A="255"/>
|
||||||
|
<Vtx X="-4" Y="-161" Z="143" S="1008" T="752" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-4" Y="-138" Z="131" S="949" T="752" R="129" G="255" B="255" A="255"/>
|
||||||
|
<Vtx X="1" Y="-159" Z="148" S="1008" T="1008" R="255" G="63" B="110" A="255"/>
|
||||||
|
<Vtx X="1" Y="-136" Z="135" S="949" T="1008" R="255" G="63" B="110" A="255"/>
|
||||||
|
<Vtx X="0" Y="138" Z="-83" S="114" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="118" Z="-59" S="189" T="-16" R="255" G="93" B="87" A="255"/>
|
||||||
|
<Vtx X="3" Y="116" Z="-61" S="189" T="240" R="127" G="4" B="1" A="255"/>
|
||||||
|
<Vtx X="3" Y="87" Z="-33" S="289" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="89" Z="-31" S="289" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="84" Z="-36" S="289" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="0" Y="114" Z="-63" S="189" T="496" R="1" G="165" B="167" A="255"/>
|
||||||
|
<Vtx X="-4" Y="86" Z="-33" S="289" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="-3" Y="116" Z="-61" S="189" T="752" R="129" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="89" Z="-31" S="289" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="-3" Y="116" Z="-61" S="189" T="752" R="129" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="89" Z="-31" S="289" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="118" Z="-59" S="189" T="1008" R="255" G="93" B="87" A="255"/>
|
||||||
|
<Vtx X="-3" Y="136" Z="-84" S="114" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="138" Z="-83" S="114" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="134" Z="-86" S="114" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="0" Y="114" Z="-63" S="189" T="496" R="1" G="165" B="167" A="255"/>
|
||||||
|
<Vtx X="2" Y="136" Z="-84" S="114" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="3" Y="116" Z="-61" S="189" T="240" R="127" G="4" B="1" A="255"/>
|
||||||
|
<Vtx X="0" Y="138" Z="-83" S="114" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-4" Y="78" Z="-25" S="319" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="58" Z="0" S="394" T="1008" R="255" G="85" B="95" A="255"/>
|
||||||
|
<Vtx X="0" Y="80" Z="-22" S="319" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="-4" Y="55" Z="-3" S="394" T="752" R="129" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="75" Z="-27" S="319" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="0" Y="53" Z="-6" S="394" T="496" R="1" G="173" B="160" A="255"/>
|
||||||
|
<Vtx X="3" Y="78" Z="-25" S="319" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="4" Y="55" Z="-3" S="394" T="240" R="127" G="3" B="2" A="255"/>
|
||||||
|
<Vtx X="0" Y="80" Z="-22" S="319" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="58" Z="0" S="394" T="-16" R="255" G="85" B="95" A="255"/>
|
||||||
|
<Vtx X="4" Y="23" Z="23" S="494" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="26" Z="26" S="494" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="20" Z="20" S="494" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="4" Y="23" Z="23" S="494" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="-4" Y="23" Z="23" S="494" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="26" Z="26" S="494" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="-4" Y="-11" Z="50" S="598" T="752" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-44" Z="79" S="701" T="1008" R="255" G="72" B="105" A="255"/>
|
||||||
|
<Vtx X="0" Y="-8" Z="54" S="598" T="1008" R="255" G="76" B="102" A="255"/>
|
||||||
|
<Vtx X="-4" Y="-47" Z="75" S="701" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="-14" Z="47" S="598" T="496" R="1" G="181" B="153" A="255"/>
|
||||||
|
<Vtx X="0" Y="11" Z="27" S="523" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="0" Y="11" Z="27" S="523" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="-4" Y="-11" Z="50" S="598" T="752" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-4" Y="13" Z="31" S="523" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="-8" Z="54" S="598" T="1008" R="255" G="76" B="102" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="34" S="523" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="4" Y="13" Z="31" S="523" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-14" Z="47" S="598" T="496" R="1" G="181" B="153" A="255"/>
|
||||||
|
<Vtx X="5" Y="-11" Z="50" S="598" T="240" R="127" G="3" B="2" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="34" S="523" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="-8" Z="54" S="598" T="-16" R="255" G="76" B="102" A="255"/>
|
||||||
|
<Vtx X="5" Y="-47" Z="75" S="701" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-44" Z="79" S="701" T="-16" R="255" G="72" B="105" A="255"/>
|
||||||
|
<Vtx X="0" Y="-50" Z="71" S="701" T="496" R="1" G="185" B="150" A="255"/>
|
||||||
|
<Vtx X="-4" Y="-47" Z="75" S="701" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="-4" Y="21" Z="24" S="498" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="21" Z="30" S="508" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="24" Z="27" S="498" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="-4" Y="18" Z="27" S="508" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="19" Z="21" S="498" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="23" S="508" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="4" Y="21" Z="24" S="498" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="4" Y="18" Z="27" S="508" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="24" Z="27" S="498" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="21" Z="30" S="508" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="4" Y="21" Z="24" S="498" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="87" Z="-29" S="294" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="84" Z="-26" S="304" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="3" Y="82" Z="-29" S="304" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="3" Y="85" Z="-32" S="294" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="80" Z="-31" S="304" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="0" Y="83" Z="-34" S="294" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="-4" Y="82" Z="-29" S="304" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="83" Z="-34" S="294" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="-4" Y="82" Z="-29" S="304" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="-4" Y="85" Z="-32" S="294" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="84" Z="-26" S="304" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="87" Z="-29" S="294" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="141" Z="-94" S="89" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="-3" Y="140" Z="-89" S="99" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="-3" Y="143" Z="-92" S="89" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="138" Z="-91" S="99" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="2" Y="143" Z="-92" S="89" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="2" Y="140" Z="-89" S="99" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="-3" Y="143" Z="-92" S="89" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="142" Z="-87" S="99" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="145" Z="-90" S="89" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="145" Z="-90" S="89" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="142" Z="-87" S="99" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="2" Y="143" Z="-92" S="89" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="-4" Y="17" Z="28" S="513" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="17" Z="33" S="521" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="19" Z="31" S="513" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="-4" Y="14" Z="30" S="521" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="14" Z="25" S="513" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="0" Y="11" Z="27" S="521" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="4" Y="17" Z="28" S="513" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="4" Y="14" Z="30" S="521" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="19" Z="31" S="513" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="17" Z="33" S="521" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="83" Z="-25" S="308" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="81" Z="-23" S="317" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="3" Y="78" Z="-25" S="317" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="3" Y="81" Z="-28" S="308" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="76" Z="-28" S="317" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="3" Y="81" Z="-28" S="308" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="76" Z="-28" S="317" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="0" Y="78" Z="-30" S="308" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="-4" Y="78" Z="-25" S="317" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="-4" Y="81" Z="-28" S="308" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="81" Z="-23" S="317" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="83" Z="-25" S="308" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="-3" Y="139" Z="-88" S="103" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="139" Z="-83" S="112" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="141" Z="-86" S="103" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-3" Y="137" Z="-85" S="112" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="137" Z="-89" S="103" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="0" Y="135" Z="-87" S="112" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="2" Y="139" Z="-88" S="103" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="2" Y="137" Z="-85" S="112" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="141" Z="-86" S="103" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="139" Z="-83" S="112" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,115 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="-4" Y="-47" Z="75" S="701" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="-81" Z="103" S="803" T="1008" R="255" G="67" B="108" A="255"/>
|
||||||
|
<Vtx X="0" Y="-44" Z="79" S="701" T="1008" R="255" G="72" B="105" A="255"/>
|
||||||
|
<Vtx X="-5" Y="-83" Z="99" S="803" T="752" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-50" Z="71" S="701" T="496" R="1" G="185" B="150" A="255"/>
|
||||||
|
<Vtx X="0" Y="-86" Z="95" S="803" T="496" R="1" G="189" B="148" A="255"/>
|
||||||
|
<Vtx X="5" Y="-47" Z="75" S="701" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="5" Y="-83" Z="99" S="803" T="240" R="127" G="2" B="2" A="255"/>
|
||||||
|
<Vtx X="0" Y="-44" Z="79" S="701" T="-16" R="255" G="72" B="105" A="255"/>
|
||||||
|
<Vtx X="0" Y="-81" Z="103" S="803" T="-16" R="255" G="67" B="108" A="255"/>
|
||||||
|
<Vtx X="6" Y="-138" Z="131" S="949" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="1" Y="-136" Z="135" S="949" T="-16" R="255" G="63" B="110" A="255"/>
|
||||||
|
<Vtx X="1" Y="-141" Z="126" S="949" T="496" R="1" G="193" B="146" A="255"/>
|
||||||
|
<Vtx X="-4" Y="-138" Z="131" S="949" T="752" R="129" G="255" B="255" A="255"/>
|
||||||
|
<Vtx X="1" Y="-136" Z="135" S="949" T="1008" R="255" G="63" B="110" A="255"/>
|
||||||
|
<Vtx X="4" Y="21" Z="24" S="498" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="20" Z="20" S="494" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="4" Y="23" Z="23" S="494" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="19" Z="21" S="498" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="-4" Y="23" Z="23" S="494" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="-4" Y="21" Z="24" S="498" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="26" Z="26" S="494" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="24" Z="27" S="498" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="24" Z="27" S="498" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="4" Y="21" Z="24" S="498" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="4" Y="23" Z="23" S="494" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="26" Z="26" S="494" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="87" Z="-29" S="294" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="3" Y="87" Z="-33" S="289" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="89" Z="-31" S="289" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="3" Y="85" Z="-32" S="294" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="84" Z="-36" S="289" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="3" Y="85" Z="-32" S="294" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="83" Z="-34" S="294" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="0" Y="84" Z="-36" S="289" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="-4" Y="86" Z="-33" S="289" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="-4" Y="85" Z="-32" S="294" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="89" Z="-31" S="289" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="87" Z="-29" S="294" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="2" Y="143" Z="-92" S="89" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="143" Z="-95" S="84" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="2" Y="144" Z="-94" S="84" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="141" Z="-94" S="89" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="-3" Y="144" Z="-94" S="84" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="-3" Y="143" Z="-92" S="89" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="145" Z="-90" S="89" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="2" Y="143" Z="-92" S="89" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="2" Y="144" Z="-94" S="84" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="146" Z="-92" S="84" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-3" Y="143" Z="-92" S="89" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="145" Z="-90" S="89" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="146" Z="-92" S="84" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-3" Y="144" Z="-94" S="84" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="-4" Y="18" Z="27" S="508" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="19" Z="31" S="513" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="21" Z="30" S="508" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="-4" Y="17" Z="28" S="513" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="23" S="508" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="0" Y="14" Z="25" S="513" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="4" Y="18" Z="27" S="508" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="4" Y="17" Z="28" S="513" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="21" Z="30" S="508" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="19" Z="31" S="513" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="84" Z="-26" S="304" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="83" Z="-25" S="308" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="3" Y="81" Z="-28" S="308" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="3" Y="82" Z="-29" S="304" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="78" Z="-30" S="308" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="0" Y="80" Z="-31" S="304" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="-4" Y="81" Z="-28" S="308" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="-4" Y="82" Z="-29" S="304" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="83" Z="-25" S="308" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="84" Z="-26" S="304" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="-3" Y="140" Z="-89" S="99" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="141" Z="-86" S="103" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="142" Z="-87" S="99" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-3" Y="139" Z="-88" S="103" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="138" Z="-91" S="99" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="0" Y="137" Z="-89" S="103" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="2" Y="140" Z="-89" S="99" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="2" Y="139" Z="-88" S="103" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="142" Z="-87" S="99" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="141" Z="-86" S="103" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-4" Y="14" Z="30" S="521" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="34" S="523" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="17" Z="33" S="521" T="1008" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="-4" Y="13" Z="31" S="523" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="11" Z="27" S="521" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="0" Y="11" Z="27" S="523" T="496" R="1" G="177" B="156" A="255"/>
|
||||||
|
<Vtx X="4" Y="14" Z="30" S="521" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="4" Y="13" Z="31" S="523" T="240" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="17" Z="33" S="521" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="34" S="523" T="-16" R="255" G="80" B="98" A="255"/>
|
||||||
|
<Vtx X="0" Y="81" Z="-23" S="317" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="80" Z="-22" S="319" T="-16" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="3" Y="78" Z="-25" S="319" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="3" Y="78" Z="-25" S="317" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="75" Z="-27" S="319" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="0" Y="76" Z="-28" S="317" T="496" R="1" G="169" B="163" A="255"/>
|
||||||
|
<Vtx X="-4" Y="78" Z="-25" S="319" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="-4" Y="78" Z="-25" S="317" T="752" R="129" G="0" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="80" Z="-22" S="319" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="0" Y="81" Z="-23" S="317" T="1008" R="255" G="89" B="91" A="255"/>
|
||||||
|
<Vtx X="-3" Y="137" Z="-85" S="112" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="138" Z="-83" S="114" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="139" Z="-83" S="112" T="1008" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="-3" Y="136" Z="-84" S="114" T="752" R="129" G="0" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="135" Z="-87" S="112" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="0" Y="134" Z="-86" S="114" T="496" R="1" G="161" B="171" A="255"/>
|
||||||
|
<Vtx X="2" Y="137" Z="-85" S="112" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="2" Y="136" Z="-84" S="114" T="240" R="127" G="2" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="139" Z="-83" S="112" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
<Vtx X="0" Y="138" Z="-83" S="114" T="-16" R="255" G="96" B="83" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,176 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="0" Y="-135" Z="-39" S="1008" T="1008" R="0" G="2" B="127" A="255"/>
|
||||||
|
<Vtx X="0" Y="-134" Z="-39" S="325" T="1008" R="0" G="2" B="127" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-134" Z="-39" S="667" T="1008" R="0" G="2" B="127" A="255"/>
|
||||||
|
<Vtx X="0" Y="-134" Z="-39" S="-16" T="1008" R="0" G="2" B="127" A="255"/>
|
||||||
|
<Vtx X="0" Y="170" Z="-123" S="325" T="1008" R="0" G="97" B="82" A="255"/>
|
||||||
|
<Vtx X="0" Y="171" Z="-124" S="1008" T="1008" R="0" G="97" B="82" A="255"/>
|
||||||
|
<Vtx X="-1" Y="171" Z="-123" S="667" T="1008" R="0" G="97" B="82" A="255"/>
|
||||||
|
<Vtx X="0" Y="171" Z="-123" S="-16" T="1008" R="0" G="97" B="82" A="255"/>
|
||||||
|
<Vtx X="0" Y="170" Z="-123" S="-16" T="752" R="0" G="192" B="110" A="255"/>
|
||||||
|
<Vtx X="0" Y="122" Z="-152" S="35" T="1008" R="126" G="3" B="240" A="255"/>
|
||||||
|
<Vtx X="0" Y="171" Z="-123" S="-16" T="1008" R="127" G="5" B="247" A="255"/>
|
||||||
|
<Vtx X="0" Y="121" Z="-151" S="35" T="752" R="0" G="229" B="124" A="255"/>
|
||||||
|
<Vtx X="-1" Y="171" Z="-123" S="-16" T="496" R="129" G="5" B="247" A="255"/>
|
||||||
|
<Vtx X="-1" Y="122" Z="-152" S="35" T="496" R="130" G="3" B="240" A="255"/>
|
||||||
|
<Vtx X="0" Y="171" Z="-124" S="-16" T="240" R="0" G="64" B="146" A="255"/>
|
||||||
|
<Vtx X="0" Y="122" Z="-152" S="35" T="240" R="0" G="27" B="132" A="255"/>
|
||||||
|
<Vtx X="0" Y="171" Z="-123" S="-16" T="-16" R="127" G="5" B="247" A="255"/>
|
||||||
|
<Vtx X="0" Y="122" Z="-152" S="35" T="-16" R="126" G="3" B="240" A="255"/>
|
||||||
|
<Vtx X="0" Y="88" Z="-149" S="86" T="240" R="0" G="206" B="139" A="255"/>
|
||||||
|
<Vtx X="0" Y="88" Z="-149" S="86" T="-16" R="126" G="250" B="240" A="255"/>
|
||||||
|
<Vtx X="0" Y="65" Z="-129" S="138" T="240" R="0" G="159" B="174" A="255"/>
|
||||||
|
<Vtx X="0" Y="65" Z="-128" S="138" T="-16" R="127" G="250" B="251" A="255"/>
|
||||||
|
<Vtx X="0" Y="48" Z="-102" S="189" T="240" R="0" G="145" B="194" A="255"/>
|
||||||
|
<Vtx X="0" Y="49" Z="-102" S="189" T="-16" R="127" G="254" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="35" Z="-76" S="240" T="240" R="0" G="142" B="200" A="255"/>
|
||||||
|
<Vtx X="0" Y="36" Z="-76" S="240" T="-16" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="24" Z="-54" S="291" T="240" R="0" G="143" B="197" A="255"/>
|
||||||
|
<Vtx X="0" Y="25" Z="-54" S="291" T="-16" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="15" Z="-38" S="342" T="240" R="0" G="152" B="183" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="-37" S="342" T="-16" R="127" G="4" B="3" A="255"/>
|
||||||
|
<Vtx X="0" Y="7" Z="-28" S="394" T="240" R="0" G="185" B="151" A="255"/>
|
||||||
|
<Vtx X="0" Y="7" Z="-28" S="394" T="-16" R="126" G="8" B="12" A="255"/>
|
||||||
|
<Vtx X="0" Y="7" Z="-28" S="394" T="-16" R="126" G="8" B="12" A="255"/>
|
||||||
|
<Vtx X="0" Y="-1" Z="-25" S="445" T="240" R="0" G="8" B="129" A="255"/>
|
||||||
|
<Vtx X="0" Y="7" Z="-28" S="394" T="240" R="0" G="185" B="151" A="255"/>
|
||||||
|
<Vtx X="0" Y="-1" Z="-25" S="445" T="-16" R="125" G="255" B="21" A="255"/>
|
||||||
|
<Vtx X="0" Y="-9" Z="-29" S="496" T="240" R="0" G="79" B="157" A="255"/>
|
||||||
|
<Vtx X="0" Y="-9" Z="-29" S="496" T="-16" R="126" G="249" B="9" A="255"/>
|
||||||
|
<Vtx X="0" Y="-17" Z="-39" S="547" T="240" R="0" G="105" B="184" A="255"/>
|
||||||
|
<Vtx X="0" Y="-17" Z="-39" S="547" T="-16" R="127" G="253" B="2" A="255"/>
|
||||||
|
<Vtx X="0" Y="-26" Z="-55" S="598" T="240" R="0" G="112" B="195" A="255"/>
|
||||||
|
<Vtx X="0" Y="-26" Z="-55" S="598" T="-16" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-35" Z="-73" S="650" T="240" R="0" G="111" B="194" A="255"/>
|
||||||
|
<Vtx X="0" Y="-36" Z="-73" S="650" T="-16" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-46" Z="-92" S="701" T="240" R="0" G="103" B="182" A="255"/>
|
||||||
|
<Vtx X="0" Y="-47" Z="-92" S="701" T="-16" R="127" G="3" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="-59" Z="-107" S="752" T="240" R="0" G="78" B="156" A="255"/>
|
||||||
|
<Vtx X="0" Y="-60" Z="-107" S="752" T="-16" R="126" G="7" B="247" A="255"/>
|
||||||
|
<Vtx X="0" Y="-75" Z="-115" S="803" T="240" R="0" G="19" B="130" A="255"/>
|
||||||
|
<Vtx X="0" Y="-76" Z="-115" S="803" T="-16" R="126" G="2" B="239" A="255"/>
|
||||||
|
<Vtx X="0" Y="-94" Z="-112" S="854" T="240" R="0" G="205" B="140" A="255"/>
|
||||||
|
<Vtx X="0" Y="-94" Z="-112" S="854" T="-16" R="126" G="251" B="243" A="255"/>
|
||||||
|
<Vtx X="0" Y="-113" Z="-97" S="906" T="240" R="0" G="161" B="172" A="255"/>
|
||||||
|
<Vtx X="0" Y="-113" Z="-97" S="906" T="-16" R="127" G="249" B="250" A="255"/>
|
||||||
|
<Vtx X="0" Y="-129" Z="-71" S="957" T="240" R="0" G="138" B="210" A="255"/>
|
||||||
|
<Vtx X="0" Y="-128" Z="-71" S="957" T="-16" R="127" G="247" B="253" A="255"/>
|
||||||
|
<Vtx X="0" Y="-135" Z="-39" S="1008" T="240" R="0" G="131" B="232" A="255"/>
|
||||||
|
<Vtx X="0" Y="-134" Z="-39" S="1008" T="-16" R="126" G="244" B="254" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-134" Z="-39" S="1008" T="496" R="130" G="244" B="254" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-128" Z="-71" S="957" T="496" R="129" G="247" B="253" A="255"/>
|
||||||
|
<Vtx X="0" Y="-134" Z="-39" S="1008" T="752" R="0" G="125" B="24" A="255"/>
|
||||||
|
<Vtx X="0" Y="-128" Z="-71" S="957" T="752" R="0" G="118" B="46" A="255"/>
|
||||||
|
<Vtx X="0" Y="-134" Z="-39" S="1008" T="1008" R="126" G="244" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="-128" Z="-71" S="957" T="1008" R="127" G="247" B="253" A="255"/>
|
||||||
|
<Vtx X="0" Y="-112" Z="-96" S="906" T="752" R="0" G="95" B="84" A="255"/>
|
||||||
|
<Vtx X="0" Y="-128" Z="-71" S="957" T="752" R="0" G="118" B="46" A="255"/>
|
||||||
|
<Vtx X="0" Y="-128" Z="-71" S="957" T="1008" R="127" G="247" B="253" A="255"/>
|
||||||
|
<Vtx X="0" Y="-113" Z="-97" S="906" T="1008" R="127" G="249" B="250" A="255"/>
|
||||||
|
<Vtx X="0" Y="-94" Z="-111" S="854" T="752" R="0" G="51" B="116" A="255"/>
|
||||||
|
<Vtx X="0" Y="-94" Z="-112" S="854" T="1008" R="126" G="251" B="243" A="255"/>
|
||||||
|
<Vtx X="0" Y="-76" Z="-114" S="803" T="752" R="0" G="237" B="126" A="255"/>
|
||||||
|
<Vtx X="0" Y="-76" Z="-115" S="803" T="1008" R="126" G="2" B="239" A="255"/>
|
||||||
|
<Vtx X="0" Y="-60" Z="-106" S="752" T="752" R="0" G="178" B="100" A="255"/>
|
||||||
|
<Vtx X="0" Y="-60" Z="-107" S="752" T="1008" R="126" G="7" B="247" A="255"/>
|
||||||
|
<Vtx X="0" Y="-47" Z="-91" S="701" T="752" R="0" G="153" B="74" A="255"/>
|
||||||
|
<Vtx X="0" Y="-47" Z="-92" S="701" T="1008" R="127" G="3" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="-36" Z="-73" S="650" T="752" R="0" G="145" B="62" A="255"/>
|
||||||
|
<Vtx X="0" Y="-36" Z="-73" S="650" T="1008" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-27" Z="-54" S="598" T="752" R="0" G="144" B="61" A="255"/>
|
||||||
|
<Vtx X="0" Y="-26" Z="-55" S="598" T="1008" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-18" Z="-39" S="547" T="752" R="0" G="151" B="72" A="255"/>
|
||||||
|
<Vtx X="0" Y="-17" Z="-39" S="547" T="1008" R="127" G="253" B="2" A="255"/>
|
||||||
|
<Vtx X="0" Y="-9" Z="-29" S="496" T="752" R="0" G="177" B="100" A="255"/>
|
||||||
|
<Vtx X="0" Y="-9" Z="-29" S="496" T="1008" R="126" G="249" B="9" A="255"/>
|
||||||
|
<Vtx X="0" Y="-1" Z="-24" S="445" T="752" R="0" G="248" B="127" A="255"/>
|
||||||
|
<Vtx X="0" Y="-1" Z="-25" S="445" T="1008" R="125" G="255" B="21" A="255"/>
|
||||||
|
<Vtx X="0" Y="8" Z="-27" S="394" T="752" R="0" G="71" B="106" A="255"/>
|
||||||
|
<Vtx X="0" Y="7" Z="-28" S="394" T="1008" R="126" G="8" B="12" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="-37" S="342" T="752" R="0" G="104" B="73" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="-37" S="342" T="1008" R="127" G="4" B="3" A="255"/>
|
||||||
|
<Vtx X="0" Y="25" Z="-53" S="291" T="752" R="0" G="113" B="59" A="255"/>
|
||||||
|
<Vtx X="0" Y="25" Z="-54" S="291" T="1008" R="127" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="36" Z="-75" S="240" T="752" R="0" G="114" B="56" A="255"/>
|
||||||
|
<Vtx X="0" Y="36" Z="-76" S="240" T="1008" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="49" Z="-101" S="189" T="752" R="0" G="111" B="62" A="255"/>
|
||||||
|
<Vtx X="0" Y="49" Z="-102" S="189" T="1008" R="127" G="254" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="66" Z="-128" S="138" T="752" R="0" G="97" B="82" A="255"/>
|
||||||
|
<Vtx X="0" Y="49" Z="-101" S="189" T="752" R="0" G="111" B="62" A="255"/>
|
||||||
|
<Vtx X="0" Y="49" Z="-102" S="189" T="1008" R="127" G="254" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="65" Z="-128" S="138" T="1008" R="127" G="250" B="251" A="255"/>
|
||||||
|
<Vtx X="0" Y="88" Z="-148" S="86" T="752" R="0" G="50" B="117" A="255"/>
|
||||||
|
<Vtx X="0" Y="88" Z="-149" S="86" T="1008" R="126" G="250" B="240" A="255"/>
|
||||||
|
<Vtx X="0" Y="121" Z="-151" S="35" T="752" R="0" G="229" B="124" A="255"/>
|
||||||
|
<Vtx X="0" Y="122" Z="-152" S="35" T="1008" R="126" G="3" B="240" A="255"/>
|
||||||
|
<Vtx X="-1" Y="122" Z="-152" S="35" T="496" R="130" G="3" B="240" A="255"/>
|
||||||
|
<Vtx X="-1" Y="88" Z="-149" S="86" T="496" R="130" G="250" B="240" A="255"/>
|
||||||
|
<Vtx X="0" Y="122" Z="-152" S="35" T="240" R="0" G="27" B="132" A="255"/>
|
||||||
|
<Vtx X="0" Y="88" Z="-149" S="86" T="240" R="0" G="206" B="139" A="255"/>
|
||||||
|
<Vtx X="-1" Y="65" Z="-128" S="138" T="496" R="129" G="250" B="251" A="255"/>
|
||||||
|
<Vtx X="0" Y="65" Z="-129" S="138" T="240" R="0" G="159" B="174" A="255"/>
|
||||||
|
<Vtx X="-1" Y="49" Z="-102" S="189" T="496" R="129" G="254" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="48" Z="-102" S="189" T="240" R="0" G="145" B="194" A="255"/>
|
||||||
|
<Vtx X="-1" Y="36" Z="-76" S="240" T="496" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="35" Z="-76" S="240" T="240" R="0" G="142" B="200" A="255"/>
|
||||||
|
<Vtx X="-1" Y="25" Z="-54" S="291" T="496" R="129" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="24" Z="-54" S="291" T="240" R="0" G="143" B="197" A="255"/>
|
||||||
|
<Vtx X="-1" Y="16" Z="-37" S="342" T="496" R="129" G="4" B="3" A="255"/>
|
||||||
|
<Vtx X="0" Y="15" Z="-38" S="342" T="240" R="0" G="152" B="183" A="255"/>
|
||||||
|
<Vtx X="-1" Y="7" Z="-28" S="394" T="496" R="130" G="8" B="12" A="255"/>
|
||||||
|
<Vtx X="0" Y="7" Z="-28" S="394" T="240" R="0" G="185" B="151" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-1" Z="-25" S="445" T="496" R="131" G="255" B="21" A="255"/>
|
||||||
|
<Vtx X="0" Y="-1" Z="-25" S="445" T="240" R="0" G="8" B="129" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-9" Z="-29" S="496" T="496" R="130" G="249" B="9" A="255"/>
|
||||||
|
<Vtx X="0" Y="-9" Z="-29" S="496" T="240" R="0" G="79" B="157" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-17" Z="-39" S="547" T="496" R="129" G="253" B="2" A="255"/>
|
||||||
|
<Vtx X="0" Y="-17" Z="-39" S="547" T="240" R="0" G="105" B="184" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-26" Z="-55" S="598" T="496" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-26" Z="-55" S="598" T="240" R="0" G="112" B="195" A="255"/>
|
||||||
|
<Vtx X="0" Y="-26" Z="-55" S="598" T="240" R="0" G="112" B="195" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-36" Z="-73" S="650" T="496" R="129" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-26" Z="-55" S="598" T="496" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-35" Z="-73" S="650" T="240" R="0" G="111" B="194" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-47" Z="-92" S="701" T="496" R="129" G="3" B="254" A="255"/>
|
||||||
|
<Vtx X="0" Y="-46" Z="-92" S="701" T="240" R="0" G="103" B="182" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-60" Z="-107" S="752" T="496" R="130" G="7" B="247" A="255"/>
|
||||||
|
<Vtx X="0" Y="-59" Z="-107" S="752" T="240" R="0" G="78" B="156" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-76" Z="-115" S="803" T="496" R="130" G="2" B="239" A="255"/>
|
||||||
|
<Vtx X="0" Y="-75" Z="-115" S="803" T="240" R="0" G="19" B="130" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-94" Z="-112" S="854" T="496" R="130" G="251" B="243" A="255"/>
|
||||||
|
<Vtx X="0" Y="-94" Z="-112" S="854" T="240" R="0" G="205" B="140" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-113" Z="-97" S="906" T="496" R="129" G="249" B="250" A="255"/>
|
||||||
|
<Vtx X="0" Y="-113" Z="-97" S="906" T="240" R="0" G="161" B="172" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-128" Z="-71" S="957" T="496" R="129" G="247" B="253" A="255"/>
|
||||||
|
<Vtx X="0" Y="-129" Z="-71" S="957" T="240" R="0" G="138" B="210" A="255"/>
|
||||||
|
<Vtx X="0" Y="-128" Z="-71" S="957" T="752" R="0" G="118" B="46" A="255"/>
|
||||||
|
<Vtx X="0" Y="-112" Z="-96" S="906" T="752" R="0" G="95" B="84" A="255"/>
|
||||||
|
<Vtx X="0" Y="-94" Z="-111" S="854" T="752" R="0" G="51" B="116" A="255"/>
|
||||||
|
<Vtx X="0" Y="-76" Z="-114" S="803" T="752" R="0" G="237" B="126" A="255"/>
|
||||||
|
<Vtx X="0" Y="-60" Z="-106" S="752" T="752" R="0" G="178" B="100" A="255"/>
|
||||||
|
<Vtx X="0" Y="-47" Z="-91" S="701" T="752" R="0" G="153" B="74" A="255"/>
|
||||||
|
<Vtx X="0" Y="-36" Z="-73" S="650" T="752" R="0" G="145" B="62" A="255"/>
|
||||||
|
<Vtx X="0" Y="-27" Z="-54" S="598" T="752" R="0" G="144" B="61" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-17" Z="-39" S="547" T="496" R="129" G="253" B="2" A="255"/>
|
||||||
|
<Vtx X="0" Y="-18" Z="-39" S="547" T="752" R="0" G="151" B="72" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-9" Z="-29" S="496" T="496" R="130" G="249" B="9" A="255"/>
|
||||||
|
<Vtx X="0" Y="-9" Z="-29" S="496" T="752" R="0" G="177" B="100" A="255"/>
|
||||||
|
<Vtx X="-1" Y="-1" Z="-25" S="445" T="496" R="131" G="255" B="21" A="255"/>
|
||||||
|
<Vtx X="0" Y="-1" Z="-24" S="445" T="752" R="0" G="248" B="127" A="255"/>
|
||||||
|
<Vtx X="-1" Y="7" Z="-28" S="394" T="496" R="130" G="8" B="12" A="255"/>
|
||||||
|
<Vtx X="0" Y="8" Z="-27" S="394" T="752" R="0" G="71" B="106" A="255"/>
|
||||||
|
<Vtx X="-1" Y="16" Z="-37" S="342" T="496" R="129" G="4" B="3" A="255"/>
|
||||||
|
<Vtx X="-1" Y="7" Z="-28" S="394" T="496" R="130" G="8" B="12" A="255"/>
|
||||||
|
<Vtx X="0" Y="8" Z="-27" S="394" T="752" R="0" G="71" B="106" A="255"/>
|
||||||
|
<Vtx X="0" Y="16" Z="-37" S="342" T="752" R="0" G="104" B="73" A="255"/>
|
||||||
|
<Vtx X="-1" Y="25" Z="-54" S="291" T="496" R="129" G="1" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="25" Z="-53" S="291" T="752" R="0" G="113" B="59" A="255"/>
|
||||||
|
<Vtx X="-1" Y="36" Z="-76" S="240" T="496" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="36" Z="-75" S="240" T="752" R="0" G="114" B="56" A="255"/>
|
||||||
|
<Vtx X="-1" Y="49" Z="-102" S="189" T="496" R="129" G="254" B="255" A="255"/>
|
||||||
|
<Vtx X="0" Y="49" Z="-101" S="189" T="752" R="0" G="111" B="62" A="255"/>
|
||||||
|
<Vtx X="-1" Y="65" Z="-128" S="138" T="496" R="129" G="250" B="251" A="255"/>
|
||||||
|
<Vtx X="0" Y="66" Z="-128" S="138" T="752" R="0" G="97" B="82" A="255"/>
|
||||||
|
<Vtx X="-1" Y="88" Z="-149" S="86" T="496" R="130" G="250" B="240" A="255"/>
|
||||||
|
<Vtx X="0" Y="88" Z="-148" S="86" T="752" R="0" G="50" B="117" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,672 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="25" Y="-79" Z="71" S="-133" T="340" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-78" Z="70" S="-144" T="338" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-78" Z="73" S="-144" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="84" S="507" T="507" R="174" G="68" B="186" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="79" S="550" T="443" R="173" G="89" B="219" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="79" S="551" T="444" R="208" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="84" S="508" T="508" R="210" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="79" S="553" T="445" R="136" G="40" B="240" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="84" S="510" T="510" R="137" G="31" B="225" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-95" Z="80" S="583" T="457" R="140" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-97" Z="73" S="601" T="368" R="140" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-94" Z="73" S="568" T="368" R="136" G="42" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="79" S="551" T="444" R="208" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-94" Z="73" S="566" T="368" R="203" G="116" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-94" Z="73" S="565" T="368" R="171" G="94" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="67" S="551" T="292" R="199" G="105" B="43" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="67" S="550" T="293" R="169" G="86" B="35" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="61" S="508" T="228" R="203" G="82" B="82" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="61" S="507" T="229" R="171" G="67" B="67" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="58" S="444" T="185" R="208" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="58" S="443" T="186" R="173" G="36" B="90" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="368" T="170" R="210" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="368" T="171" R="175" G="0" B="97" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="58" S="292" T="185" R="208" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="58" S="293" T="186" R="173" G="218" B="88" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-67" Z="61" S="228" T="228" R="198" G="176" B="80" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-67" Z="61" S="229" T="229" R="168" G="191" B="65" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="67" S="185" T="292" R="194" G="154" B="42" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="67" S="186" T="293" R="166" G="174" B="34" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-62" Z="73" S="170" T="368" R="194" G="145" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-62" Z="73" S="171" T="368" R="165" G="167" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="79" S="185" T="444" R="194" G="154" B="214" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-62" Z="73" S="171" T="368" R="165" G="167" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="79" S="186" T="443" R="166" G="174" B="222" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="79" S="185" T="444" R="194" G="154" B="214" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-67" Z="84" S="228" T="508" R="194" G="178" B="178" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-67" Z="84" S="229" T="507" R="165" G="193" B="193" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="88" S="292" T="551" R="194" G="214" B="154" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="88" S="293" T="550" R="166" G="222" B="174" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="89" S="368" T="566" R="198" G="0" B="143" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="89" S="368" T="565" R="168" G="0" B="164" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="88" S="444" T="551" R="208" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="88" S="443" T="550" R="173" G="35" B="167" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="84" S="508" T="508" R="210" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="84" S="507" T="507" R="174" G="68" B="186" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="84" S="510" T="510" R="137" G="31" B="225" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="88" S="445" T="553" R="137" G="17" B="216" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-91" Z="86" S="533" T="533" R="140" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-95" Z="80" S="583" T="457" R="140" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-96" Z="80" S="595" T="462" R="209" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-98" Z="73" S="614" T="368" R="209" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-97" Z="73" S="601" T="368" R="140" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-96" Z="65" S="595" T="274" R="209" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-95" Z="66" S="583" T="279" R="140" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-94" Z="73" S="568" T="368" R="136" G="42" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="67" S="553" T="291" R="136" G="38" B="15" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-94" Z="73" S="566" T="368" R="203" G="116" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="67" S="551" T="292" R="199" G="105" B="43" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="61" S="510" T="226" R="136" G="30" B="30" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="61" S="508" T="228" R="203" G="82" B="82" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="58" S="445" T="183" R="137" G="17" B="40" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="58" S="444" T="185" R="208" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="368" T="168" R="137" G="0" B="44" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="368" T="170" R="210" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="58" S="291" T="183" R="136" G="240" B="40" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="368" T="168" R="137" G="0" B="44" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="368" T="170" R="210" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="58" S="292" T="185" R="208" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-66" Z="61" S="226" T="226" R="136" G="228" B="29" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-67" Z="61" S="228" T="228" R="198" G="176" B="80" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="67" S="183" T="291" R="135" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="67" S="185" T="292" R="194" G="154" B="42" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-62" Z="73" S="168" T="368" R="135" G="217" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-62" Z="73" S="170" T="368" R="194" G="145" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="79" S="183" T="445" R="135" G="220" B="241" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="79" S="185" T="444" R="194" G="154" B="214" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-66" Z="84" S="226" T="510" R="135" G="228" B="228" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-67" Z="84" S="228" T="508" R="194" G="178" B="178" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="88" S="291" T="553" R="135" G="241" B="220" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="88" S="292" T="551" R="194" G="214" B="154" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="89" S="368" T="568" R="136" G="0" B="215" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="89" S="368" T="566" R="198" G="0" B="143" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="88" S="445" T="553" R="137" G="17" B="216" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="88" S="444" T="551" R="208" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-85" Z="90" S="457" T="583" R="140" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-91" Z="86" S="533" T="533" R="140" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-92" Z="87" S="542" T="542" R="209" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-96" Z="80" S="595" T="462" R="209" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-86" Z="91" S="462" T="595" R="209" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="92" S="368" T="601" R="140" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-78" Z="93" S="368" T="614" R="209" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-71" Z="90" S="279" T="583" R="140" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-70" Z="91" S="274" T="595" R="209" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-64" Z="86" S="203" T="533" R="140" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-64" Z="87" S="194" T="542" R="209" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-60" Z="80" S="153" T="457" R="140" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-64" Z="87" S="194" T="542" R="209" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-59" Z="80" S="141" T="462" R="209" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-60" Z="80" S="153" T="457" R="140" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-59" Z="73" S="135" T="368" R="140" G="53" B="0" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-58" Z="73" S="122" T="368" R="209" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-60" Z="66" S="153" T="279" R="140" G="49" B="236" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-59" Z="65" S="141" T="274" R="209" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-64" Z="59" S="203" T="203" R="140" G="37" B="219" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-64" Z="59" S="194" T="194" R="209" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-71" Z="55" S="279" T="153" R="140" G="20" B="207" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-70" Z="54" S="274" T="141" R="209" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="54" S="368" T="135" R="140" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-78" Z="53" S="368" T="122" R="209" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-85" Z="55" S="457" T="153" R="140" G="236" B="207" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-86" Z="54" S="462" T="141" R="209" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-91" Z="59" S="533" T="203" R="140" G="219" B="219" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-92" Z="59" S="542" T="194" R="209" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-95" Z="66" S="583" T="279" R="140" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-96" Z="65" S="595" T="274" R="209" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="67" S="553" T="291" R="136" G="38" B="15" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="61" S="510" T="226" R="136" G="30" B="30" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="58" S="445" T="183" R="137" G="17" B="40" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="368" T="168" R="137" G="0" B="44" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="58" S="291" T="183" R="136" G="240" B="40" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-66" Z="61" S="226" T="226" R="136" G="228" B="29" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="67" S="183" T="291" R="135" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-62" Z="73" S="168" T="368" R="135" G="217" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="79" S="183" T="445" R="135" G="220" B="241" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-64" Z="86" S="203" T="533" R="140" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-66" Z="84" S="226" T="510" R="135" G="228" B="228" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-71" Z="90" S="279" T="583" R="140" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="88" S="291" T="553" R="135" G="241" B="220" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="88" S="291" T="553" R="135" G="241" B="220" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="92" S="368" T="601" R="140" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-71" Z="90" S="279" T="583" R="140" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="89" S="368" T="568" R="136" G="0" B="215" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-85" Z="90" S="457" T="583" R="140" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-70" Z="54" S="-336" T="86" R="209" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-78" Z="53" S="-400" T="10" R="47" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-78" Z="53" S="-400" T="86" R="209" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-70" Z="54" S="-336" T="10" R="47" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-64" Z="59" S="-272" T="86" R="209" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-64" Z="59" S="-272" T="10" R="47" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-59" Z="65" S="-208" T="86" R="209" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-59" Z="65" S="-208" T="10" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-58" Z="73" S="-144" T="86" R="209" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-58" Z="73" S="-144" T="10" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-59" Z="80" S="-80" T="86" R="209" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-59" Z="80" S="-80" T="10" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-64" Z="87" S="-16" T="86" R="209" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-64" Z="87" S="-16" T="10" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-70" Z="91" S="48" T="86" R="209" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-70" Z="91" S="48" T="10" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-78" Z="93" S="112" T="86" R="209" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-78" Z="93" S="112" T="10" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-86" Z="91" S="176" T="86" R="209" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-86" Z="91" S="176" T="10" R="47" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-92" Z="87" S="240" T="86" R="209" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-92" Z="87" S="240" T="10" R="47" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-96" Z="80" S="304" T="86" R="209" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-96" Z="80" S="304" T="10" R="47" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-98" Z="73" S="368" T="86" R="209" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-98" Z="73" S="368" T="10" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-96" Z="65" S="432" T="86" R="209" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-96" Z="65" S="432" T="86" R="209" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-96" Z="65" S="432" T="10" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-98" Z="73" S="368" T="10" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-92" Z="59" S="496" T="86" R="209" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-92" Z="59" S="496" T="10" R="47" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-86" Z="54" S="560" T="86" R="209" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-86" Z="54" S="560" T="10" R="47" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="-14" Y="-78" Z="53" S="624" T="86" R="209" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-78" Z="53" S="624" T="10" R="47" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="54" S="624" T="-16" R="116" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-85" Z="55" S="560" T="-16" R="116" G="236" B="207" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="57" S="624" T="-16" R="96" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-84" Z="58" S="560" T="-16" R="95" G="225" B="178" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-91" Z="59" S="496" T="-16" R="116" G="219" B="219" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-89" Z="61" S="496" T="-16" R="95" G="197" B="195" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-95" Z="66" S="432" T="-16" R="116" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-93" Z="67" S="432" T="-16" R="94" G="177" B="222" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-97" Z="73" S="368" T="-16" R="116" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-94" Z="73" S="368" T="-16" R="93" G="169" B="0" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-95" Z="80" S="304" T="-16" R="116" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-93" Z="79" S="304" T="-16" R="94" G="177" B="34" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-91" Z="86" S="240" T="-16" R="116" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-89" Z="84" S="240" T="-16" R="95" G="197" B="61" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-85" Z="90" S="176" T="-16" R="116" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-84" Z="88" S="176" T="-16" R="95" G="225" B="78" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="92" S="112" T="-16" R="116" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="89" S="112" T="-16" R="96" G="0" B="84" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-71" Z="90" S="48" T="-16" R="116" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-72" Z="88" S="48" T="-16" R="95" G="31" B="78" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-64" Z="86" S="-16" T="-16" R="116" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-67" Z="84" S="-16" T="-16" R="95" G="59" B="61" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-60" Z="80" S="-80" T="-16" R="116" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-60" Z="80" S="-80" T="-16" R="116" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-67" Z="84" S="-16" T="-16" R="95" G="59" B="61" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-63" Z="79" S="-80" T="-16" R="94" G="79" B="34" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-59" Z="73" S="-144" T="-16" R="116" G="53" B="0" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-62" Z="73" S="-144" T="-16" R="93" G="87" B="0" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-60" Z="66" S="-208" T="-16" R="116" G="49" B="236" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-63" Z="67" S="-208" T="-16" R="94" G="79" B="222" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-64" Z="59" S="-272" T="-16" R="116" G="37" B="219" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-67" Z="61" S="-272" T="-16" R="95" G="59" B="195" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-71" Z="55" S="-336" T="-16" R="116" G="20" B="207" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-72" Z="58" S="-336" T="-16" R="95" G="31" B="178" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="54" S="-400" T="-16" R="116" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="57" S="-400" T="-16" R="96" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-78" Z="53" S="-400" T="10" R="47" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-70" Z="54" S="-336" T="10" R="47" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-64" Z="59" S="-272" T="10" R="47" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-59" Z="65" S="-208" T="10" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-58" Z="73" S="-144" T="10" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-59" Z="80" S="-80" T="10" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-64" Z="86" S="-16" T="-16" R="116" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-64" Z="87" S="-16" T="10" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-71" Z="90" S="48" T="-16" R="116" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-70" Z="91" S="48" T="10" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="92" S="112" T="-16" R="116" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-78" Z="93" S="112" T="10" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-85" Z="90" S="176" T="-16" R="116" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-86" Z="91" S="176" T="10" R="47" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-91" Z="86" S="240" T="-16" R="116" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-92" Z="87" S="240" T="10" R="47" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-95" Z="80" S="304" T="-16" R="116" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-96" Z="80" S="304" T="10" R="47" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-97" Z="73" S="368" T="-16" R="116" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-97" Z="73" S="368" T="-16" R="116" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-96" Z="80" S="304" T="10" R="47" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-98" Z="73" S="368" T="10" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-95" Z="66" S="432" T="-16" R="116" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-96" Z="65" S="432" T="10" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-91" Z="59" S="496" T="-16" R="116" G="219" B="219" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-92" Z="59" S="496" T="10" R="47" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-85" Z="55" S="560" T="-16" R="116" G="236" B="207" A="255"/>
|
||||||
|
<Vtx X="-11" Y="-86" Z="54" S="560" T="10" R="47" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="11" Y="-92" Z="87" S="240" T="-298" R="209" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="14" Y="-92" Z="87" S="240" T="-374" R="47" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="14" Y="-86" Z="91" S="176" T="-374" R="47" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="11" Y="-86" Z="91" S="176" T="-298" R="209" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="10" Y="-85" Z="90" S="176" T="-272" R="140" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="92" S="112" T="-272" R="140" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="11" Y="-78" Z="93" S="112" T="-298" R="209" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="93" S="112" T="-374" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="14" Y="-86" Z="91" S="176" T="-374" R="47" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="10" Y="-71" Z="90" S="48" T="-272" R="140" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="11" Y="-70" Z="91" S="48" T="-298" R="209" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-70" Z="91" S="48" T="-374" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="93" S="112" T="-374" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="10" Y="-72" Z="88" S="48" T="-272" R="161" G="31" B="78" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="89" S="112" T="-272" R="160" G="0" B="84" A="255"/>
|
||||||
|
<Vtx X="10" Y="-84" Z="88" S="176" T="-272" R="161" G="225" B="78" A="255"/>
|
||||||
|
<Vtx X="10" Y="-91" Z="86" S="240" T="-272" R="140" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="10" Y="-89" Z="84" S="240" T="-272" R="161" G="197" B="61" A="255"/>
|
||||||
|
<Vtx X="10" Y="-95" Z="80" S="304" T="-272" R="140" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="10" Y="-93" Z="79" S="304" T="-272" R="162" G="177" B="34" A="255"/>
|
||||||
|
<Vtx X="10" Y="-97" Z="73" S="368" T="-272" R="140" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="10" Y="-94" Z="73" S="368" T="-272" R="163" G="169" B="0" A="255"/>
|
||||||
|
<Vtx X="10" Y="-95" Z="66" S="432" T="-272" R="140" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="10" Y="-95" Z="66" S="432" T="-272" R="140" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="10" Y="-94" Z="73" S="368" T="-272" R="163" G="169" B="0" A="255"/>
|
||||||
|
<Vtx X="10" Y="-93" Z="67" S="432" T="-272" R="162" G="177" B="222" A="255"/>
|
||||||
|
<Vtx X="10" Y="-91" Z="59" S="496" T="-272" R="140" G="219" B="219" A="255"/>
|
||||||
|
<Vtx X="10" Y="-89" Z="61" S="496" T="-272" R="161" G="197" B="195" A="255"/>
|
||||||
|
<Vtx X="10" Y="-85" Z="55" S="560" T="-272" R="140" G="236" B="207" A="255"/>
|
||||||
|
<Vtx X="10" Y="-84" Z="58" S="560" T="-272" R="161" G="225" B="178" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="54" S="624" T="-272" R="140" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="57" S="624" T="-272" R="160" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="11" Y="-78" Z="53" S="624" T="-298" R="209" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="11" Y="-86" Z="54" S="560" T="-298" R="209" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="14" Y="-86" Z="54" S="560" T="-374" R="47" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="53" S="624" T="-374" R="47" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="11" Y="-92" Z="59" S="496" T="-298" R="209" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="14" Y="-92" Z="59" S="496" T="-374" R="47" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="14" Y="-86" Z="54" S="560" T="-374" R="47" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="11" Y="-96" Z="65" S="432" T="-298" R="209" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="14" Y="-96" Z="65" S="432" T="-374" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="14" Y="-92" Z="59" S="496" T="-374" R="47" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="10" Y="-97" Z="73" S="368" T="-272" R="140" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="11" Y="-98" Z="73" S="368" T="-298" R="209" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-98" Z="73" S="368" T="-374" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-96" Z="65" S="432" T="-374" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="10" Y="-95" Z="80" S="304" T="-272" R="140" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="11" Y="-96" Z="80" S="304" T="-298" R="209" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="14" Y="-96" Z="80" S="304" T="-374" R="47" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="14" Y="-98" Z="73" S="368" T="-374" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="10" Y="-91" Z="86" S="240" T="-272" R="140" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="11" Y="-92" Z="87" S="240" T="-298" R="209" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="14" Y="-92" Z="87" S="240" T="-374" R="47" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="14" Y="-96" Z="80" S="304" T="-374" R="47" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="10" Y="-85" Z="90" S="176" T="-272" R="140" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="11" Y="-70" Z="91" S="48" T="-298" R="209" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-70" Z="91" S="48" T="-374" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-64" Z="87" S="-16" T="-374" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="11" Y="-64" Z="87" S="-16" T="-298" R="209" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="10" Y="-64" Z="86" S="-16" T="-272" R="140" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="10" Y="-60" Z="80" S="-80" T="-272" R="140" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="11" Y="-59" Z="80" S="-80" T="-298" R="209" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="14" Y="-59" Z="80" S="-80" T="-374" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="14" Y="-64" Z="87" S="-16" T="-374" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="10" Y="-59" Z="73" S="-144" T="-272" R="140" G="53" B="0" A="255"/>
|
||||||
|
<Vtx X="11" Y="-58" Z="73" S="-144" T="-298" R="209" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-58" Z="73" S="-144" T="-374" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-59" Z="80" S="-80" T="-374" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="10" Y="-62" Z="73" S="-144" T="-272" R="163" G="87" B="0" A="255"/>
|
||||||
|
<Vtx X="10" Y="-63" Z="79" S="-80" T="-272" R="162" G="79" B="34" A="255"/>
|
||||||
|
<Vtx X="10" Y="-67" Z="84" S="-16" T="-272" R="161" G="59" B="61" A="255"/>
|
||||||
|
<Vtx X="10" Y="-71" Z="90" S="48" T="-272" R="140" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="10" Y="-72" Z="88" S="48" T="-272" R="161" G="31" B="78" A="255"/>
|
||||||
|
<Vtx X="14" Y="-58" Z="73" S="-144" T="-374" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-59" Z="65" S="-208" T="-374" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="11" Y="-59" Z="65" S="-208" T="-298" R="209" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="10" Y="-60" Z="66" S="-208" T="-272" R="140" G="49" B="236" A="255"/>
|
||||||
|
<Vtx X="10" Y="-59" Z="73" S="-144" T="-272" R="140" G="53" B="0" A="255"/>
|
||||||
|
<Vtx X="10" Y="-63" Z="67" S="-208" T="-272" R="162" G="79" B="222" A="255"/>
|
||||||
|
<Vtx X="14" Y="-59" Z="65" S="-208" T="-374" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="14" Y="-64" Z="59" S="-272" T="-374" R="47" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="11" Y="-64" Z="59" S="-272" T="-298" R="209" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="10" Y="-64" Z="59" S="-272" T="-272" R="140" G="37" B="219" A="255"/>
|
||||||
|
<Vtx X="10" Y="-60" Z="66" S="-208" T="-272" R="140" G="49" B="236" A="255"/>
|
||||||
|
<Vtx X="10" Y="-67" Z="61" S="-272" T="-272" R="161" G="59" B="195" A="255"/>
|
||||||
|
<Vtx X="14" Y="-64" Z="59" S="-272" T="-374" R="47" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="14" Y="-70" Z="54" S="-336" T="-374" R="47" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="11" Y="-64" Z="59" S="-272" T="-298" R="209" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="14" Y="-70" Z="54" S="-336" T="-374" R="47" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="11" Y="-70" Z="54" S="-336" T="-298" R="209" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="10" Y="-71" Z="55" S="-336" T="-272" R="140" G="20" B="207" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="54" S="-400" T="-272" R="140" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="11" Y="-78" Z="53" S="-400" T="-298" R="209" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="53" S="-400" T="-374" R="47" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="14" Y="-70" Z="54" S="-336" T="-374" R="47" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="57" S="-400" T="-272" R="160" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="10" Y="-72" Z="58" S="-336" T="-272" R="161" G="31" B="178" A="255"/>
|
||||||
|
<Vtx X="10" Y="-64" Z="59" S="-272" T="-272" R="140" G="37" B="219" A="255"/>
|
||||||
|
<Vtx X="10" Y="-67" Z="61" S="-272" T="-272" R="161" G="59" B="195" A="255"/>
|
||||||
|
<Vtx X="17" Y="-77" Z="76" S="-158" T="401" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-74" Z="76" S="-189" T="413" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="78" S="-168" T="426" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="75" S="-169" T="393" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-73" Z="75" S="-202" T="392" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-75" Z="74" S="-177" T="382" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-73" Z="73" S="-207" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-75" Z="73" S="-180" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-73" Z="71" S="-202" T="344" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-75" Z="72" S="-177" T="354" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-74" Z="69" S="-189" T="323" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="71" S="-169" T="343" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="76" S="-144" T="404" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-77" Z="76" S="-158" T="401" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="78" S="-168" T="426" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="78" S="-144" T="431" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-79" Z="76" S="-130" T="401" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="78" S="-120" T="426" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-77" Z="70" S="-158" T="335" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="70" S="-144" T="332" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="68" S="-144" T="305" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="68" S="-168" T="310" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="71" S="-169" T="343" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-74" Z="69" S="-189" T="323" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="70" S="-144" T="332" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="68" S="-120" T="310" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="68" S="-144" T="305" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-79" Z="70" S="-130" T="335" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-82" Z="69" S="-99" T="323" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="71" S="-119" T="343" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-83" Z="71" S="-86" T="344" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-81" Z="72" S="-111" T="354" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-83" Z="73" S="-81" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-81" Z="73" S="-108" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-83" Z="75" S="-86" T="392" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-81" Z="74" S="-111" T="382" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="75" S="-119" T="393" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-79" Z="76" S="-130" T="401" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="78" S="-120" T="426" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-82" Z="76" S="-99" T="413" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-81" Z="74" S="-111" T="382" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="75" S="-119" T="393" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-82" Z="76" S="-99" T="413" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-83" Z="75" S="-86" T="392" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-78" Z="70" S="-144" T="338" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-77" Z="71" S="-155" T="340" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-78" Z="73" S="-144" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="71" S="-165" T="347" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="72" S="-172" T="357" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-75" Z="73" S="-174" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-75" Z="73" S="-174" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="74" S="-172" T="379" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-78" Z="73" S="-144" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="75" S="-165" T="389" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-77" Z="75" S="-155" T="396" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-78" Z="75" S="-144" T="398" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-79" Z="75" S="-133" T="396" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="75" S="-123" T="389" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="74" S="-116" T="379" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="73" S="-114" T="368" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="72" S="-116" T="357" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="71" S="-123" T="347" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-79" Z="71" S="-133" T="340" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-58" Z="73" S="-390" T="368" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-59" Z="80" S="-371" T="462" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="15" Y="-60" Z="80" S="-359" T="457" R="116" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="15" Y="-59" Z="73" S="-377" T="368" R="116" G="53" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-63" Z="79" S="-329" T="445" R="121" G="220" B="241" A="255"/>
|
||||||
|
<Vtx X="15" Y="-62" Z="73" S="-344" T="368" R="121" G="217" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-63" Z="79" S="-327" T="444" R="62" G="154" B="214" A="255"/>
|
||||||
|
<Vtx X="15" Y="-67" Z="84" S="-284" T="508" R="62" G="178" B="178" A="255"/>
|
||||||
|
<Vtx X="15" Y="-66" Z="84" S="-286" T="510" R="121" G="228" B="228" A="255"/>
|
||||||
|
<Vtx X="15" Y="-60" Z="80" S="-359" T="457" R="116" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="15" Y="-64" Z="86" S="-309" T="533" R="116" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="14" Y="-64" Z="87" S="-318" T="542" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="15" Y="-71" Z="90" S="-233" T="583" R="116" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="14" Y="-70" Z="91" S="-238" T="595" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="92" S="-144" T="601" R="116" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="93" S="-144" T="614" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="15" Y="-85" Z="90" S="-55" T="583" R="116" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="14" Y="-86" Z="91" S="-50" T="595" R="47" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="15" Y="-91" Z="86" S="21" T="533" R="116" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="14" Y="-86" Z="91" S="-50" T="595" R="47" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-92" Z="87" S="30" T="542" R="47" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="15" Y="-91" Z="86" S="21" T="533" R="116" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="15" Y="-95" Z="80" S="71" T="457" R="116" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="14" Y="-96" Z="80" S="83" T="462" R="47" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="15" Y="-97" Z="73" S="89" T="368" R="116" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-98" Z="73" S="102" T="368" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-95" Z="66" S="71" T="279" R="116" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="14" Y="-96" Z="65" S="83" T="274" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="15" Y="-91" Z="59" S="21" T="203" R="116" G="219" B="219" A="255"/>
|
||||||
|
<Vtx X="14" Y="-92" Z="59" S="30" T="194" R="47" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="15" Y="-85" Z="55" S="-55" T="153" R="116" G="236" B="207" A="255"/>
|
||||||
|
<Vtx X="14" Y="-86" Z="54" S="-50" T="141" R="47" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="54" S="-144" T="135" R="116" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="53" S="-144" T="122" R="47" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="15" Y="-71" Z="55" S="-233" T="153" R="116" G="20" B="207" A="255"/>
|
||||||
|
<Vtx X="14" Y="-70" Z="54" S="-238" T="141" R="47" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="15" Y="-64" Z="59" S="-309" T="203" R="116" G="37" B="219" A="255"/>
|
||||||
|
<Vtx X="14" Y="-64" Z="59" S="-318" T="194" R="47" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="15" Y="-60" Z="66" S="-359" T="279" R="116" G="49" B="236" A="255"/>
|
||||||
|
<Vtx X="14" Y="-59" Z="65" S="-371" T="274" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="15" Y="-63" Z="67" S="-329" T="291" R="121" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="15" Y="-66" Z="61" S="-286" T="226" R="120" G="228" B="29" A="255"/>
|
||||||
|
<Vtx X="15" Y="-63" Z="67" S="-327" T="292" R="62" G="154" B="42" A="255"/>
|
||||||
|
<Vtx X="15" Y="-62" Z="73" S="-342" T="368" R="62" G="145" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-62" Z="73" S="-344" T="368" R="121" G="217" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-60" Z="66" S="-359" T="279" R="116" G="49" B="236" A="255"/>
|
||||||
|
<Vtx X="15" Y="-59" Z="73" S="-377" T="368" R="116" G="53" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-58" Z="73" S="-390" T="368" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-63" Z="79" S="-327" T="444" R="62" G="154" B="214" A="255"/>
|
||||||
|
<Vtx X="14" Y="-63" Z="79" S="-326" T="443" R="90" G="174" B="222" A="255"/>
|
||||||
|
<Vtx X="14" Y="-67" Z="84" S="-283" T="507" R="91" G="193" B="193" A="255"/>
|
||||||
|
<Vtx X="14" Y="-67" Z="84" S="-283" T="507" R="91" G="193" B="193" A="255"/>
|
||||||
|
<Vtx X="15" Y="-63" Z="79" S="-327" T="444" R="62" G="154" B="214" A="255"/>
|
||||||
|
<Vtx X="15" Y="-67" Z="84" S="-284" T="508" R="62" G="178" B="178" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="88" S="-219" T="550" R="90" G="222" B="174" A="255"/>
|
||||||
|
<Vtx X="15" Y="-72" Z="88" S="-220" T="551" R="62" G="214" B="154" A="255"/>
|
||||||
|
<Vtx X="15" Y="-66" Z="84" S="-286" T="510" R="121" G="228" B="228" A="255"/>
|
||||||
|
<Vtx X="15" Y="-72" Z="88" S="-221" T="553" R="121" G="241" B="220" A="255"/>
|
||||||
|
<Vtx X="15" Y="-64" Z="86" S="-309" T="533" R="116" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="15" Y="-71" Z="90" S="-233" T="583" R="116" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="89" S="-144" T="568" R="120" G="0" B="215" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="92" S="-144" T="601" R="116" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="15" Y="-84" Z="88" S="-67" T="553" R="119" G="17" B="216" A="255"/>
|
||||||
|
<Vtx X="15" Y="-85" Z="90" S="-55" T="583" R="116" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="15" Y="-89" Z="84" S="-2" T="510" R="119" G="31" B="225" A="255"/>
|
||||||
|
<Vtx X="15" Y="-91" Z="86" S="21" T="533" R="116" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="15" Y="-93" Z="79" S="41" T="445" R="120" G="40" B="240" A="255"/>
|
||||||
|
<Vtx X="15" Y="-95" Z="80" S="71" T="457" R="116" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="15" Y="-94" Z="73" S="56" T="368" R="120" G="42" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-97" Z="73" S="89" T="368" R="116" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-93" Z="67" S="41" T="291" R="120" G="38" B="15" A="255"/>
|
||||||
|
<Vtx X="15" Y="-95" Z="66" S="71" T="279" R="116" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="15" Y="-89" Z="61" S="-2" T="226" R="120" G="30" B="30" A="255"/>
|
||||||
|
<Vtx X="15" Y="-91" Z="59" S="21" T="203" R="116" G="219" B="219" A="255"/>
|
||||||
|
<Vtx X="15" Y="-84" Z="58" S="-67" T="183" R="119" G="17" B="40" A="255"/>
|
||||||
|
<Vtx X="15" Y="-85" Z="55" S="-55" T="153" R="116" G="236" B="207" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="57" S="-144" T="168" R="119" G="0" B="44" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="54" S="-144" T="135" R="116" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="15" Y="-72" Z="58" S="-221" T="183" R="120" G="240" B="40" A="255"/>
|
||||||
|
<Vtx X="15" Y="-71" Z="55" S="-233" T="153" R="116" G="20" B="207" A="255"/>
|
||||||
|
<Vtx X="15" Y="-66" Z="61" S="-286" T="226" R="120" G="228" B="29" A="255"/>
|
||||||
|
<Vtx X="15" Y="-64" Z="59" S="-309" T="203" R="116" G="37" B="219" A="255"/>
|
||||||
|
<Vtx X="15" Y="-67" Z="61" S="-284" T="228" R="58" G="176" B="80" A="255"/>
|
||||||
|
<Vtx X="15" Y="-66" Z="61" S="-286" T="226" R="120" G="228" B="29" A="255"/>
|
||||||
|
<Vtx X="15" Y="-63" Z="67" S="-327" T="292" R="62" G="154" B="42" A="255"/>
|
||||||
|
<Vtx X="15" Y="-67" Z="61" S="-284" T="228" R="58" G="176" B="80" A="255"/>
|
||||||
|
<Vtx X="14" Y="-63" Z="67" S="-326" T="293" R="90" G="174" B="34" A="255"/>
|
||||||
|
<Vtx X="14" Y="-62" Z="73" S="-341" T="368" R="91" G="167" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-62" Z="73" S="-342" T="368" R="62" G="145" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-63" Z="79" S="-326" T="443" R="90" G="174" B="222" A="255"/>
|
||||||
|
<Vtx X="14" Y="-67" Z="61" S="-283" T="229" R="88" G="191" B="65" A="255"/>
|
||||||
|
<Vtx X="15" Y="-72" Z="58" S="-220" T="185" R="48" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="58" S="-219" T="186" R="83" G="218" B="88" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="57" S="-144" T="170" R="46" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="57" S="-144" T="171" R="81" G="0" B="97" A="255"/>
|
||||||
|
<Vtx X="15" Y="-84" Z="58" S="-68" T="185" R="48" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="58" S="-69" T="186" R="83" G="36" B="90" A="255"/>
|
||||||
|
<Vtx X="15" Y="-89" Z="61" S="-4" T="228" R="53" G="82" B="82" A="255"/>
|
||||||
|
<Vtx X="14" Y="-89" Z="61" S="-5" T="229" R="85" G="67" B="67" A="255"/>
|
||||||
|
<Vtx X="15" Y="-93" Z="67" S="39" T="292" R="57" G="105" B="43" A="255"/>
|
||||||
|
<Vtx X="14" Y="-93" Z="67" S="38" T="293" R="87" G="86" B="35" A="255"/>
|
||||||
|
<Vtx X="15" Y="-94" Z="73" S="54" T="368" R="53" G="116" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-94" Z="73" S="53" T="368" R="85" G="94" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-93" Z="79" S="39" T="444" R="48" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="14" Y="-93" Z="79" S="38" T="443" R="83" G="89" B="219" A="255"/>
|
||||||
|
<Vtx X="15" Y="-89" Z="84" S="-4" T="508" R="46" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="14" Y="-89" Z="84" S="-5" T="507" R="82" G="68" B="186" A="255"/>
|
||||||
|
<Vtx X="15" Y="-84" Z="88" S="-68" T="551" R="48" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="88" S="-69" T="550" R="83" G="35" B="167" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="89" S="-144" T="566" R="58" G="0" B="143" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="89" S="-144" T="565" R="88" G="0" B="164" A="255"/>
|
||||||
|
<Vtx X="15" Y="-72" Z="88" S="-220" T="551" R="62" G="214" B="154" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="88" S="-219" T="550" R="90" G="222" B="174" A="255"/>
|
||||||
|
<Vtx X="15" Y="-72" Z="88" S="-221" T="553" R="121" G="241" B="220" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="89" S="-144" T="568" R="120" G="0" B="215" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="89" S="-144" T="568" R="120" G="0" B="215" A="255"/>
|
||||||
|
<Vtx X="15" Y="-84" Z="88" S="-67" T="553" R="119" G="17" B="216" A="255"/>
|
||||||
|
<Vtx X="15" Y="-84" Z="88" S="-68" T="551" R="48" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="15" Y="-89" Z="84" S="-4" T="508" R="46" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="15" Y="-89" Z="84" S="-2" T="510" R="119" G="31" B="225" A="255"/>
|
||||||
|
<Vtx X="15" Y="-93" Z="79" S="39" T="444" R="48" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="15" Y="-93" Z="79" S="41" T="445" R="120" G="40" B="240" A="255"/>
|
||||||
|
<Vtx X="15" Y="-94" Z="73" S="54" T="368" R="53" G="116" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-94" Z="73" S="56" T="368" R="120" G="42" B="0" A="255"/>
|
||||||
|
<Vtx X="15" Y="-93" Z="67" S="39" T="292" R="57" G="105" B="43" A="255"/>
|
||||||
|
<Vtx X="15" Y="-93" Z="67" S="41" T="291" R="120" G="38" B="15" A="255"/>
|
||||||
|
<Vtx X="15" Y="-89" Z="61" S="-4" T="228" R="53" G="82" B="82" A="255"/>
|
||||||
|
<Vtx X="15" Y="-89" Z="61" S="-2" T="226" R="120" G="30" B="30" A="255"/>
|
||||||
|
<Vtx X="15" Y="-84" Z="58" S="-68" T="185" R="48" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="15" Y="-84" Z="58" S="-67" T="183" R="119" G="17" B="40" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="57" S="-144" T="170" R="46" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="15" Y="-78" Z="57" S="-144" T="168" R="119" G="0" B="44" A="255"/>
|
||||||
|
<Vtx X="15" Y="-72" Z="58" S="-220" T="185" R="48" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="15" Y="-72" Z="58" S="-221" T="183" R="120" G="240" B="40" A="255"/>
|
||||||
|
<Vtx X="15" Y="-67" Z="61" S="-284" T="228" R="58" G="176" B="80" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="70" S="-144" T="332" R="96" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="17" Y="-77" Z="70" S="-158" T="335" R="96" G="32" B="179" A="255"/>
|
||||||
|
<Vtx X="24" Y="-77" Z="70" S="-158" T="335" R="47" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="71" S="-169" T="343" R="47" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="71" S="-169" T="343" R="96" G="59" B="197" A="255"/>
|
||||||
|
<Vtx X="24" Y="-75" Z="72" S="-177" T="354" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="17" Y="-75" Z="72" S="-177" T="354" R="96" G="77" B="224" A="255"/>
|
||||||
|
<Vtx X="24" Y="-75" Z="73" S="-180" T="368" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-75" Z="73" S="-180" T="368" R="96" G="84" B="0" A="255"/>
|
||||||
|
<Vtx X="24" Y="-75" Z="74" S="-177" T="382" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="17" Y="-75" Z="74" S="-177" T="382" R="96" G="77" B="32" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="75" S="-169" T="393" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="17" Y="-75" Z="74" S="-177" T="382" R="96" G="77" B="32" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="75" S="-169" T="393" R="96" G="59" B="59" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="75" S="-169" T="393" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="24" Y="-77" Z="76" S="-158" T="401" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="17" Y="-77" Z="76" S="-158" T="401" R="96" G="32" B="77" A="255"/>
|
||||||
|
<Vtx X="24" Y="-78" Z="76" S="-144" T="404" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="76" S="-144" T="404" R="96" G="0" B="84" A="255"/>
|
||||||
|
<Vtx X="24" Y="-79" Z="76" S="-130" T="401" R="47" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="17" Y="-79" Z="76" S="-130" T="401" R="96" G="224" B="77" A="255"/>
|
||||||
|
<Vtx X="24" Y="-80" Z="75" S="-119" T="393" R="47" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="75" S="-119" T="393" R="96" G="197" B="59" A="255"/>
|
||||||
|
<Vtx X="24" Y="-81" Z="74" S="-111" T="382" R="47" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="17" Y="-81" Z="74" S="-111" T="382" R="96" G="179" B="32" A="255"/>
|
||||||
|
<Vtx X="24" Y="-81" Z="73" S="-108" T="368" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-81" Z="73" S="-108" T="368" R="96" G="172" B="0" A="255"/>
|
||||||
|
<Vtx X="24" Y="-81" Z="72" S="-111" T="354" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="17" Y="-81" Z="72" S="-111" T="354" R="96" G="179" B="224" A="255"/>
|
||||||
|
<Vtx X="24" Y="-80" Z="71" S="-119" T="343" R="47" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="71" S="-119" T="343" R="96" G="197" B="197" A="255"/>
|
||||||
|
<Vtx X="24" Y="-79" Z="70" S="-130" T="335" R="47" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="17" Y="-79" Z="70" S="-130" T="335" R="96" G="224" B="179" A="255"/>
|
||||||
|
<Vtx X="24" Y="-78" Z="70" S="-144" T="332" R="47" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="70" S="-144" T="332" R="96" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="24" Y="-77" Z="70" S="-158" T="335" R="47" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="25" Y="-77" Z="71" S="-155" T="340" R="116" G="20" B="207" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="71" S="-165" T="347" R="116" G="37" B="219" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="71" S="-169" T="343" R="47" G="84" B="172" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="72" S="-172" T="357" R="116" G="49" B="236" A="255"/>
|
||||||
|
<Vtx X="24" Y="-75" Z="72" S="-177" T="354" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="25" Y="-75" Z="73" S="-174" T="368" R="116" G="53" B="0" A="255"/>
|
||||||
|
<Vtx X="24" Y="-75" Z="73" S="-180" T="368" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="74" S="-172" T="379" R="116" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="24" Y="-75" Z="73" S="-180" T="368" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="24" Y="-75" Z="74" S="-177" T="382" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="74" S="-172" T="379" R="116" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="25" Y="-76" Z="75" S="-165" T="389" R="116" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="24" Y="-76" Z="75" S="-169" T="393" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="25" Y="-77" Z="75" S="-155" T="396" R="116" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="24" Y="-77" Z="76" S="-158" T="401" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="25" Y="-78" Z="75" S="-144" T="398" R="116" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="24" Y="-78" Z="76" S="-144" T="404" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="25" Y="-79" Z="75" S="-133" T="396" R="116" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="24" Y="-79" Z="76" S="-130" T="401" R="47" G="211" B="109" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="75" S="-123" T="389" R="116" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="24" Y="-80" Z="75" S="-119" T="393" R="47" G="172" B="84" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="74" S="-116" T="379" R="116" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="24" Y="-81" Z="74" S="-111" T="382" R="47" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="73" S="-114" T="368" R="116" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="24" Y="-81" Z="73" S="-108" T="368" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="72" S="-116" T="357" R="116" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="24" Y="-81" Z="72" S="-111" T="354" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="25" Y="-80" Z="71" S="-123" T="347" R="116" G="219" B="219" A="255"/>
|
||||||
|
<Vtx X="24" Y="-80" Z="71" S="-119" T="343" R="47" G="172" B="172" A="255"/>
|
||||||
|
<Vtx X="25" Y="-79" Z="71" S="-133" T="340" R="116" G="236" B="207" A="255"/>
|
||||||
|
<Vtx X="24" Y="-79" Z="70" S="-130" T="335" R="47" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="25" Y="-78" Z="70" S="-144" T="338" R="116" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="24" Y="-78" Z="70" S="-144" T="332" R="47" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="25" Y="-77" Z="71" S="-155" T="340" R="116" G="20" B="207" A="255"/>
|
||||||
|
<Vtx X="14" Y="-82" Z="68" S="-90" T="314" R="96" G="197" B="197" A="255"/>
|
||||||
|
<Vtx X="14" Y="-80" Z="67" S="-115" T="298" R="96" G="225" B="179" A="255"/>
|
||||||
|
<Vtx X="16" Y="-80" Z="67" S="-115" T="298" R="48" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="16" Y="-78" Z="67" S="-144" T="292" R="48" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="67" S="-144" T="292" R="96" G="0" B="173" A="255"/>
|
||||||
|
<Vtx X="16" Y="-76" Z="67" S="-173" T="298" R="48" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="67" S="-144" T="292" R="96" G="0" B="173" A="255"/>
|
||||||
|
<Vtx X="14" Y="-75" Z="67" S="-173" T="298" R="97" G="32" B="180" A="255"/>
|
||||||
|
<Vtx X="16" Y="-76" Z="67" S="-173" T="298" R="48" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="16" Y="-74" Z="68" S="-198" T="314" R="47" G="84" B="173" A="255"/>
|
||||||
|
<Vtx X="14" Y="-74" Z="68" S="-198" T="314" R="96" G="60" B="197" A="255"/>
|
||||||
|
<Vtx X="16" Y="-72" Z="70" S="-214" T="339" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="70" S="-214" T="339" R="96" G="77" B="224" A="255"/>
|
||||||
|
<Vtx X="16" Y="-72" Z="73" S="-220" T="368" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="73" S="-220" T="368" R="96" G="84" B="0" A="255"/>
|
||||||
|
<Vtx X="16" Y="-72" Z="75" S="-214" T="397" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="75" S="-214" T="397" R="96" G="77" B="32" A="255"/>
|
||||||
|
<Vtx X="16" Y="-74" Z="77" S="-198" T="422" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="14" Y="-74" Z="77" S="-198" T="422" R="96" G="59" B="59" A="255"/>
|
||||||
|
<Vtx X="16" Y="-76" Z="79" S="-173" T="438" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-76" Z="79" S="-173" T="438" R="96" G="32" B="77" A="255"/>
|
||||||
|
<Vtx X="16" Y="-78" Z="79" S="-144" T="444" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="79" S="-144" T="444" R="96" G="0" B="84" A="255"/>
|
||||||
|
<Vtx X="16" Y="-80" Z="79" S="-115" T="438" R="48" G="212" B="109" A="255"/>
|
||||||
|
<Vtx X="14" Y="-80" Z="79" S="-115" T="438" R="96" G="225" B="77" A="255"/>
|
||||||
|
<Vtx X="16" Y="-82" Z="77" S="-90" T="422" R="48" G="173" B="83" A="255"/>
|
||||||
|
<Vtx X="14" Y="-82" Z="77" S="-90" T="422" R="96" G="198" B="59" A="255"/>
|
||||||
|
<Vtx X="16" Y="-84" Z="75" S="-74" T="397" R="48" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="75" S="-74" T="397" R="96" G="179" B="32" A="255"/>
|
||||||
|
<Vtx X="16" Y="-84" Z="73" S="-68" T="368" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="73" S="-68" T="368" R="96" G="173" B="0" A="255"/>
|
||||||
|
<Vtx X="16" Y="-84" Z="70" S="-74" T="339" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="70" S="-74" T="339" R="96" G="179" B="224" A="255"/>
|
||||||
|
<Vtx X="16" Y="-82" Z="68" S="-90" T="314" R="47" G="172" B="173" A="255"/>
|
||||||
|
<Vtx X="14" Y="-82" Z="68" S="-90" T="314" R="96" G="197" B="197" A="255"/>
|
||||||
|
<Vtx X="16" Y="-80" Z="67" S="-115" T="298" R="48" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="68" S="-120" T="310" R="116" G="236" B="207" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="68" S="-144" T="305" R="116" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="16" Y="-80" Z="67" S="-115" T="298" R="48" G="211" B="147" A="255"/>
|
||||||
|
<Vtx X="16" Y="-78" Z="67" S="-144" T="292" R="48" G="0" B="138" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="68" S="-144" T="305" R="116" G="0" B="203" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="68" S="-168" T="310" R="116" G="20" B="208" A="255"/>
|
||||||
|
<Vtx X="16" Y="-76" Z="67" S="-173" T="298" R="48" G="45" B="147" A="255"/>
|
||||||
|
<Vtx X="17" Y="-74" Z="69" S="-189" T="323" R="116" G="37" B="219" A="255"/>
|
||||||
|
<Vtx X="16" Y="-74" Z="68" S="-198" T="314" R="47" G="84" B="173" A="255"/>
|
||||||
|
<Vtx X="17" Y="-73" Z="71" S="-202" T="344" R="116" G="49" B="236" A="255"/>
|
||||||
|
<Vtx X="16" Y="-72" Z="70" S="-214" T="339" R="47" G="109" B="211" A="255"/>
|
||||||
|
<Vtx X="17" Y="-73" Z="73" S="-207" T="368" R="116" G="53" B="0" A="255"/>
|
||||||
|
<Vtx X="16" Y="-72" Z="73" S="-220" T="368" R="47" G="118" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-73" Z="75" S="-202" T="392" R="116" G="49" B="20" A="255"/>
|
||||||
|
<Vtx X="16" Y="-72" Z="75" S="-214" T="397" R="47" G="109" B="45" A="255"/>
|
||||||
|
<Vtx X="17" Y="-74" Z="76" S="-189" T="413" R="116" G="37" B="37" A="255"/>
|
||||||
|
<Vtx X="16" Y="-74" Z="77" S="-198" T="422" R="47" G="84" B="84" A="255"/>
|
||||||
|
<Vtx X="17" Y="-76" Z="78" S="-168" T="426" R="116" G="20" B="49" A="255"/>
|
||||||
|
<Vtx X="16" Y="-76" Z="79" S="-173" T="438" R="47" G="45" B="109" A="255"/>
|
||||||
|
<Vtx X="17" Y="-78" Z="78" S="-144" T="431" R="116" G="0" B="53" A="255"/>
|
||||||
|
<Vtx X="16" Y="-78" Z="79" S="-144" T="444" R="47" G="0" B="118" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="78" S="-120" T="426" R="116" G="236" B="49" A="255"/>
|
||||||
|
<Vtx X="16" Y="-80" Z="79" S="-115" T="438" R="48" G="212" B="109" A="255"/>
|
||||||
|
<Vtx X="17" Y="-82" Z="76" S="-99" T="413" R="116" G="219" B="37" A="255"/>
|
||||||
|
<Vtx X="16" Y="-82" Z="77" S="-90" T="422" R="48" G="173" B="83" A="255"/>
|
||||||
|
<Vtx X="17" Y="-83" Z="75" S="-86" T="392" R="116" G="207" B="20" A="255"/>
|
||||||
|
<Vtx X="16" Y="-84" Z="75" S="-74" T="397" R="48" G="147" B="45" A="255"/>
|
||||||
|
<Vtx X="17" Y="-83" Z="73" S="-81" T="368" R="116" G="203" B="0" A="255"/>
|
||||||
|
<Vtx X="16" Y="-84" Z="73" S="-68" T="368" R="47" G="138" B="0" A="255"/>
|
||||||
|
<Vtx X="17" Y="-83" Z="71" S="-86" T="344" R="116" G="207" B="236" A="255"/>
|
||||||
|
<Vtx X="16" Y="-84" Z="70" S="-74" T="339" R="47" G="147" B="211" A="255"/>
|
||||||
|
<Vtx X="17" Y="-82" Z="69" S="-99" T="323" R="116" G="219" B="219" A="255"/>
|
||||||
|
<Vtx X="16" Y="-82" Z="68" S="-90" T="314" R="47" G="172" B="173" A="255"/>
|
||||||
|
<Vtx X="17" Y="-80" Z="68" S="-120" T="310" R="116" G="236" B="207" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,62 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="-832" T="-1029" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="58" S="-757" T="-1014" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="73" S="-832" T="-832" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="84" S="-693" T="-693" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="88" S="-757" T="-650" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="58" S="-757" T="-1014" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="61" S="-693" T="-971" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="73" S="-832" T="-832" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="67" S="-650" T="-907" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-94" Z="73" S="-635" T="-832" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-93" Z="79" S="-650" T="-757" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-89" Z="84" S="-693" T="-693" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-84" Z="88" S="-757" T="-650" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="89" S="-832" T="-635" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="88" S="-907" T="-650" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-67" Z="84" S="-971" T="-693" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="79" S="-1014" T="-757" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-62" Z="73" S="-1029" T="-832" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-63" Z="67" S="-1014" T="-907" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-67" Z="61" S="-971" T="-971" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-72" Z="58" S="-907" T="-1014" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="-15" Y="-78" Z="57" S="-832" T="-1029" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-80" Z="79" S="-1315" T="-762" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="79" S="-1344" T="-756" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="89" S="-1344" T="-635" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="88" S="-1269" T="-650" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-82" Z="77" S="-1290" T="-778" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-89" Z="84" S="-1205" T="-693" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="75" S="-1274" T="-803" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-93" Z="79" S="-1162" T="-757" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="73" S="-1268" T="-832" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-94" Z="73" S="-1147" T="-832" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="70" S="-1274" T="-861" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="73" S="-1268" T="-832" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-94" Z="73" S="-1147" T="-832" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-93" Z="67" S="-1162" T="-907" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-82" Z="68" S="-1290" T="-886" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-89" Z="61" S="-1205" T="-971" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-80" Z="67" S="-1315" T="-902" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-84" Z="58" S="-1269" T="-1014" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="67" S="-1344" T="-908" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="57" S="-1344" T="-1029" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-75" Z="67" S="-1373" T="-902" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="58" S="-1419" T="-1014" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-74" Z="68" S="-1398" T="-886" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-67" Z="61" S="-1483" T="-971" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="70" S="-1414" T="-861" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-63" Z="67" S="-1526" T="-907" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="73" S="-1420" T="-832" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-62" Z="73" S="-1541" T="-832" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="75" S="-1414" T="-803" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-63" Z="79" S="-1526" T="-757" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-74" Z="77" S="-1398" T="-778" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-67" Z="84" S="-1483" T="-693" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-76" Z="79" S="-1373" T="-762" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="88" S="-1419" T="-650" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="79" S="-1344" T="-756" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-76" Z="79" S="-1373" T="-762" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-72" Z="88" S="-1419" T="-650" R="127" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="14" Y="-78" Z="89" S="-1344" T="-635" R="127" G="0" B="0" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,72 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="-10" Y="-72" Z="58" S="48" T="368" R="95" G="31" B="178" A="255"/>
|
||||||
|
<Vtx X="0" Y="-78" Z="57" S="-16" T="240" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="57" S="-16" T="368" R="96" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="0" Y="-71" Z="58" S="48" T="240" R="0" G="48" B="138" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-67" Z="61" S="112" T="368" R="95" G="59" B="195" A="255"/>
|
||||||
|
<Vtx X="0" Y="-66" Z="61" S="112" T="240" R="0" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-63" Z="67" S="176" T="368" R="94" G="79" B="222" A="255"/>
|
||||||
|
<Vtx X="0" Y="-62" Z="67" S="176" T="240" R="0" G="117" B="207" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-62" Z="73" S="240" T="368" R="93" G="87" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-61" Z="73" S="240" T="240" R="0" G="127" B="0" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-63" Z="79" S="304" T="368" R="94" G="79" B="34" A="255"/>
|
||||||
|
<Vtx X="0" Y="-62" Z="79" S="304" T="240" R="0" G="117" B="49" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-67" Z="84" S="368" T="368" R="95" G="59" B="61" A="255"/>
|
||||||
|
<Vtx X="0" Y="-66" Z="84" S="368" T="240" R="0" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-72" Z="88" S="432" T="368" R="95" G="31" B="78" A="255"/>
|
||||||
|
<Vtx X="0" Y="-71" Z="88" S="432" T="240" R="0" G="48" B="118" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="89" S="496" T="368" R="96" G="0" B="84" A="255"/>
|
||||||
|
<Vtx X="0" Y="-78" Z="89" S="496" T="240" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-84" Z="88" S="560" T="368" R="95" G="225" B="78" A="255"/>
|
||||||
|
<Vtx X="0" Y="-84" Z="88" S="560" T="240" R="0" G="208" B="118" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-89" Z="84" S="624" T="368" R="95" G="197" B="61" A="255"/>
|
||||||
|
<Vtx X="0" Y="-90" Z="84" S="624" T="240" R="0" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-93" Z="79" S="688" T="368" R="94" G="177" B="34" A="255"/>
|
||||||
|
<Vtx X="0" Y="-93" Z="79" S="688" T="240" R="0" G="139" B="49" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-94" Z="73" S="752" T="368" R="93" G="169" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-95" Z="73" S="752" T="240" R="0" G="129" B="0" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-93" Z="67" S="816" T="368" R="94" G="177" B="222" A="255"/>
|
||||||
|
<Vtx X="0" Y="-93" Z="67" S="816" T="240" R="0" G="139" B="207" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-89" Z="61" S="880" T="368" R="95" G="197" B="195" A="255"/>
|
||||||
|
<Vtx X="0" Y="-90" Z="61" S="880" T="240" R="0" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-84" Z="58" S="944" T="368" R="95" G="225" B="178" A="255"/>
|
||||||
|
<Vtx X="0" Y="-84" Z="58" S="944" T="240" R="0" G="208" B="138" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-78" Z="57" S="1008" T="368" R="96" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="0" Y="-84" Z="58" S="944" T="240" R="0" G="208" B="138" A="255"/>
|
||||||
|
<Vtx X="-10" Y="-84" Z="58" S="944" T="368" R="95" G="225" B="178" A="255"/>
|
||||||
|
<Vtx X="0" Y="-78" Z="57" S="1008" T="240" R="0" G="0" B="129" A="255"/>
|
||||||
|
<Vtx X="10" Y="-84" Z="58" S="944" T="112" R="161" G="225" B="178" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="57" S="1008" T="112" R="160" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="10" Y="-89" Z="61" S="880" T="112" R="161" G="197" B="195" A="255"/>
|
||||||
|
<Vtx X="0" Y="-90" Z="61" S="880" T="240" R="0" G="167" B="166" A="255"/>
|
||||||
|
<Vtx X="10" Y="-93" Z="67" S="816" T="112" R="162" G="177" B="222" A="255"/>
|
||||||
|
<Vtx X="0" Y="-93" Z="67" S="816" T="240" R="0" G="139" B="207" A="255"/>
|
||||||
|
<Vtx X="10" Y="-94" Z="73" S="752" T="112" R="163" G="169" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-95" Z="73" S="752" T="240" R="0" G="129" B="0" A="255"/>
|
||||||
|
<Vtx X="10" Y="-93" Z="79" S="688" T="112" R="162" G="177" B="34" A="255"/>
|
||||||
|
<Vtx X="0" Y="-93" Z="79" S="688" T="240" R="0" G="139" B="49" A="255"/>
|
||||||
|
<Vtx X="10" Y="-89" Z="84" S="624" T="112" R="161" G="197" B="61" A="255"/>
|
||||||
|
<Vtx X="0" Y="-90" Z="84" S="624" T="240" R="0" G="167" B="90" A="255"/>
|
||||||
|
<Vtx X="10" Y="-84" Z="88" S="560" T="112" R="161" G="225" B="78" A="255"/>
|
||||||
|
<Vtx X="0" Y="-84" Z="88" S="560" T="240" R="0" G="208" B="118" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="89" S="496" T="112" R="160" G="0" B="84" A="255"/>
|
||||||
|
<Vtx X="0" Y="-78" Z="89" S="496" T="240" R="0" G="0" B="127" A="255"/>
|
||||||
|
<Vtx X="10" Y="-72" Z="88" S="432" T="112" R="161" G="31" B="78" A="255"/>
|
||||||
|
<Vtx X="0" Y="-71" Z="88" S="432" T="240" R="0" G="48" B="118" A="255"/>
|
||||||
|
<Vtx X="10" Y="-67" Z="84" S="368" T="112" R="161" G="59" B="61" A="255"/>
|
||||||
|
<Vtx X="0" Y="-66" Z="84" S="368" T="240" R="0" G="89" B="90" A="255"/>
|
||||||
|
<Vtx X="10" Y="-63" Z="79" S="304" T="112" R="162" G="79" B="34" A="255"/>
|
||||||
|
<Vtx X="0" Y="-62" Z="79" S="304" T="240" R="0" G="117" B="49" A="255"/>
|
||||||
|
<Vtx X="10" Y="-62" Z="73" S="240" T="112" R="163" G="87" B="0" A="255"/>
|
||||||
|
<Vtx X="0" Y="-61" Z="73" S="240" T="240" R="0" G="127" B="0" A="255"/>
|
||||||
|
<Vtx X="10" Y="-63" Z="67" S="176" T="112" R="162" G="79" B="222" A="255"/>
|
||||||
|
<Vtx X="0" Y="-62" Z="67" S="176" T="240" R="0" G="117" B="207" A="255"/>
|
||||||
|
<Vtx X="10" Y="-67" Z="61" S="112" T="112" R="161" G="59" B="195" A="255"/>
|
||||||
|
<Vtx X="0" Y="-66" Z="61" S="112" T="240" R="0" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="0" Y="-66" Z="61" S="112" T="240" R="0" G="89" B="166" A="255"/>
|
||||||
|
<Vtx X="10" Y="-67" Z="61" S="112" T="112" R="161" G="59" B="195" A="255"/>
|
||||||
|
<Vtx X="10" Y="-72" Z="58" S="48" T="112" R="161" G="31" B="178" A="255"/>
|
||||||
|
<Vtx X="0" Y="-71" Z="58" S="48" T="240" R="0" G="48" B="138" A="255"/>
|
||||||
|
<Vtx X="10" Y="-78" Z="57" S="-16" T="112" R="160" G="0" B="172" A="255"/>
|
||||||
|
<Vtx X="0" Y="-78" Z="57" S="-16" T="240" R="0" G="0" B="129" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,147 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="24" Y="-147" Z="233" S="-138" T="-288" R="68" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="227" S="-95" T="-523" R="188" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="21" Y="-147" Z="233" S="-138" T="-523" R="188" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="24" Y="-144" Z="227" S="-95" T="-288" R="68" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="24" Y="-148" Z="232" S="-138" T="-266" R="121" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="24" Y="-144" Z="227" S="-95" T="-266" R="125" G="24" B="5" A="255"/>
|
||||||
|
<Vtx X="24" Y="-155" Z="228" S="-138" T="-33" R="121" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="24" Y="-152" Z="223" S="-95" T="-33" R="125" G="240" B="237" A="255"/>
|
||||||
|
<Vtx X="24" Y="-155" Z="228" S="-138" T="-11" R="68" G="149" B="244" A="255"/>
|
||||||
|
<Vtx X="24" Y="-152" Z="223" S="-95" T="-11" R="68" G="181" B="180" A="255"/>
|
||||||
|
<Vtx X="21" Y="-155" Z="228" S="-138" T="224" R="188" G="149" B="244" A="255"/>
|
||||||
|
<Vtx X="21" Y="-152" Z="223" S="-95" T="224" R="188" G="181" B="180" A="255"/>
|
||||||
|
<Vtx X="21" Y="-155" Z="228" S="-138" T="246" R="135" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="21" Y="-152" Z="223" S="-95" T="246" R="131" G="240" B="237" A="255"/>
|
||||||
|
<Vtx X="21" Y="-148" Z="232" S="-138" T="479" R="135" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="227" S="-95" T="479" R="131" G="24" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-147" Z="233" S="-138" T="491" R="188" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="227" S="-95" T="491" R="188" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="223" S="-82" T="469" R="130" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="223" S="-82" T="491" R="176" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="21" Y="-132" Z="201" S="69" T="469" R="130" G="12" B="12" A="255"/>
|
||||||
|
<Vtx X="21" Y="-131" Z="201" S="69" T="491" R="176" G="69" B="71" A="255"/>
|
||||||
|
<Vtx X="21" Y="-131" Z="201" S="77" T="474" R="131" G="16" B="18" A="255"/>
|
||||||
|
<Vtx X="21" Y="-130" Z="201" S="77" T="491" R="188" G="76" B="75" A="255"/>
|
||||||
|
<Vtx X="21" Y="-129" Z="198" S="99" T="474" R="134" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="21" Y="-128" Z="198" S="99" T="491" R="186" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="21" Y="-133" Z="195" S="99" T="251" R="134" G="249" B="223" A="255"/>
|
||||||
|
<Vtx X="21" Y="-135" Z="198" S="77" T="251" R="131" G="232" B="251" A="255"/>
|
||||||
|
<Vtx X="21" Y="-134" Z="195" S="99" T="224" R="186" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="21" Y="-136" Z="198" S="77" T="224" R="188" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="24" Y="-134" Z="195" S="99" T="-11" R="70" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="24" Y="-136" Z="198" S="77" T="-11" R="68" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="24" Y="-133" Z="195" S="99" T="-38" R="122" G="249" B="223" A="255"/>
|
||||||
|
<Vtx X="24" Y="-136" Z="198" S="77" T="-11" R="68" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="24" Y="-134" Z="195" S="99" T="-11" R="70" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="24" Y="-135" Z="198" S="77" T="-38" R="125" G="232" B="251" A="255"/>
|
||||||
|
<Vtx X="24" Y="-129" Z="198" S="99" T="-261" R="122" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="24" Y="-133" Z="194" S="108" T="-45" R="114" G="15" B="202" A="255"/>
|
||||||
|
<Vtx X="24" Y="-129" Z="197" S="108" T="-253" R="114" G="39" B="216" A="255"/>
|
||||||
|
<Vtx X="24" Y="-133" Z="194" S="126" T="-31" R="52" G="7" B="140" A="255"/>
|
||||||
|
<Vtx X="24" Y="-128" Z="196" S="126" T="-268" R="52" G="97" B="193" A="255"/>
|
||||||
|
<Vtx X="21" Y="-128" Z="196" S="343" T="-268" R="204" G="97" B="193" A="255"/>
|
||||||
|
<Vtx X="21" Y="-133" Z="194" S="343" T="-31" R="204" G="7" B="140" A="255"/>
|
||||||
|
<Vtx X="24" Y="-134" Z="195" S="117" T="-21" R="70" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="24" Y="-133" Z="194" S="112" T="-29" R="114" G="15" B="202" A="255"/>
|
||||||
|
<Vtx X="24" Y="-133" Z="195" S="108" T="-23" R="122" G="249" B="223" A="255"/>
|
||||||
|
<Vtx X="21" Y="-134" Z="195" S="352" T="-21" R="186" G="187" B="176" A="255"/>
|
||||||
|
<Vtx X="21" Y="-133" Z="195" S="363" T="-38" R="134" G="249" B="223" A="255"/>
|
||||||
|
<Vtx X="21" Y="-133" Z="194" S="358" T="-45" R="142" G="15" B="202" A="255"/>
|
||||||
|
<Vtx X="21" Y="-129" Z="197" S="358" T="-253" R="142" G="39" B="216" A="255"/>
|
||||||
|
<Vtx X="21" Y="-129" Z="198" S="363" T="-261" R="134" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="21" Y="-128" Z="198" S="352" T="-277" R="186" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="24" Y="-128" Z="198" S="117" T="-277" R="70" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="24" Y="-129" Z="198" S="108" T="-275" R="122" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="24" Y="-129" Z="197" S="112" T="-269" R="114" G="39" B="216" A="255"/>
|
||||||
|
<Vtx X="24" Y="-150" Z="233" S="-157" T="-254" R="111" G="236" B="59" A="255"/>
|
||||||
|
<Vtx X="24" Y="-155" Z="228" S="-138" T="-33" R="121" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="24" Y="-148" Z="232" S="-138" T="-266" R="121" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="24" Y="-154" Z="230" S="-157" T="-45" R="110" G="214" B="47" A="255"/>
|
||||||
|
<Vtx X="24" Y="-150" Z="233" S="-177" T="-266" R="49" G="237" B="116" A="255"/>
|
||||||
|
<Vtx X="24" Y="-154" Z="231" S="-177" T="-33" R="49" G="165" B="73" A="255"/>
|
||||||
|
<Vtx X="22" Y="-154" Z="231" S="-377" T="-33" R="207" G="165" B="73" A="255"/>
|
||||||
|
<Vtx X="22" Y="-150" Z="233" S="-377" T="-266" R="207" G="237" B="116" A="255"/>
|
||||||
|
<Vtx X="24" Y="-147" Z="233" S="-160" T="-277" R="68" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="24" Y="-147" Z="233" S="-160" T="-277" R="68" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="24" Y="-150" Z="233" S="-177" T="-266" R="49" G="237" B="116" A="255"/>
|
||||||
|
<Vtx X="24" Y="-150" Z="233" S="-160" T="-267" R="111" G="236" B="59" A="255"/>
|
||||||
|
<Vtx X="24" Y="-148" Z="232" S="-151" T="-276" R="121" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="22" Y="-150" Z="233" S="-377" T="-266" R="207" G="237" B="116" A="255"/>
|
||||||
|
<Vtx X="21" Y="-147" Z="233" S="-395" T="-277" R="188" G="63" B="87" A="255"/>
|
||||||
|
<Vtx X="21" Y="-148" Z="232" S="-405" T="-266" R="135" G="4" B="38" A="255"/>
|
||||||
|
<Vtx X="22" Y="-150" Z="233" S="-396" T="-254" R="145" G="236" B="59" A="255"/>
|
||||||
|
<Vtx X="22" Y="-154" Z="230" S="-396" T="-45" R="146" G="214" B="47" A="255"/>
|
||||||
|
<Vtx X="21" Y="-155" Z="228" S="-405" T="-33" R="135" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="21" Y="-155" Z="228" S="-395" T="-21" R="188" G="149" B="244" A="255"/>
|
||||||
|
<Vtx X="22" Y="-154" Z="231" S="-377" T="-33" R="207" G="165" B="73" A="255"/>
|
||||||
|
<Vtx X="24" Y="-154" Z="231" S="-177" T="-33" R="49" G="165" B="73" A="255"/>
|
||||||
|
<Vtx X="24" Y="-155" Z="228" S="-160" T="-21" R="68" G="149" B="244" A="255"/>
|
||||||
|
<Vtx X="24" Y="-155" Z="228" S="-151" T="-23" R="121" G="220" B="15" A="255"/>
|
||||||
|
<Vtx X="24" Y="-154" Z="230" S="-160" T="-32" R="110" G="214" B="47" A="255"/>
|
||||||
|
<Vtx X="24" Y="-144" Z="227" S="-95" T="-288" R="68" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="223" S="-82" T="-523" R="176" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="227" S="-95" T="-523" R="188" G="104" B="28" A="255"/>
|
||||||
|
<Vtx X="24" Y="-144" Z="223" S="-82" T="-288" R="80" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="24" Y="-144" Z="227" S="-95" T="-266" R="125" G="24" B="5" A="255"/>
|
||||||
|
<Vtx X="24" Y="-144" Z="223" S="-82" T="-255" R="126" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="24" Y="-152" Z="223" S="-95" T="-33" R="125" G="240" B="237" A="255"/>
|
||||||
|
<Vtx X="24" Y="-148" Z="221" S="-82" T="-43" R="126" G="244" B="244" A="255"/>
|
||||||
|
<Vtx X="24" Y="-152" Z="223" S="-95" T="-11" R="68" G="181" B="180" A="255"/>
|
||||||
|
<Vtx X="24" Y="-148" Z="221" S="-82" T="-11" R="80" G="188" B="184" A="255"/>
|
||||||
|
<Vtx X="21" Y="-152" Z="223" S="-95" T="224" R="188" G="181" B="180" A="255"/>
|
||||||
|
<Vtx X="21" Y="-148" Z="221" S="-82" T="224" R="176" G="188" B="184" A="255"/>
|
||||||
|
<Vtx X="21" Y="-152" Z="223" S="-95" T="246" R="131" G="240" B="237" A="255"/>
|
||||||
|
<Vtx X="21" Y="-148" Z="221" S="-82" T="257" R="130" G="244" B="244" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="227" S="-95" T="479" R="131" G="24" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="223" S="-82" T="469" R="130" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="223" S="-82" T="469" R="130" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="21" Y="-135" Z="199" S="69" T="257" R="130" G="240" B="251" A="255"/>
|
||||||
|
<Vtx X="21" Y="-148" Z="221" S="-82" T="257" R="130" G="244" B="244" A="255"/>
|
||||||
|
<Vtx X="21" Y="-132" Z="201" S="69" T="469" R="130" G="12" B="12" A="255"/>
|
||||||
|
<Vtx X="21" Y="-135" Z="198" S="77" T="251" R="131" G="232" B="251" A="255"/>
|
||||||
|
<Vtx X="21" Y="-131" Z="201" S="77" T="474" R="131" G="16" B="18" A="255"/>
|
||||||
|
<Vtx X="21" Y="-136" Z="198" S="77" T="224" R="188" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="21" Y="-136" Z="199" S="69" T="224" R="176" G="160" B="232" A="255"/>
|
||||||
|
<Vtx X="24" Y="-136" Z="198" S="77" T="-11" R="68" G="153" B="227" A="255"/>
|
||||||
|
<Vtx X="24" Y="-136" Z="199" S="69" T="-11" R="80" G="160" B="232" A="255"/>
|
||||||
|
<Vtx X="24" Y="-135" Z="198" S="77" T="-38" R="125" G="232" B="251" A="255"/>
|
||||||
|
<Vtx X="24" Y="-135" Z="199" S="69" T="-43" R="126" G="240" B="251" A="255"/>
|
||||||
|
<Vtx X="24" Y="-131" Z="201" S="77" T="-261" R="125" G="16" B="18" A="255"/>
|
||||||
|
<Vtx X="24" Y="-129" Z="198" S="99" T="-261" R="122" G="33" B="246" A="255"/>
|
||||||
|
<Vtx X="24" Y="-128" Z="198" S="99" T="-288" R="70" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="24" Y="-130" Z="201" S="77" T="-288" R="68" G="76" B="75" A="255"/>
|
||||||
|
<Vtx X="21" Y="-128" Z="198" S="99" T="-523" R="186" G="104" B="21" A="255"/>
|
||||||
|
<Vtx X="21" Y="-130" Z="201" S="77" T="-523" R="188" G="76" B="75" A="255"/>
|
||||||
|
<Vtx X="24" Y="-131" Z="201" S="69" T="-288" R="80" G="69" B="71" A="255"/>
|
||||||
|
<Vtx X="21" Y="-131" Z="201" S="69" T="-523" R="176" G="69" B="71" A="255"/>
|
||||||
|
<Vtx X="24" Y="-144" Z="223" S="-82" T="-288" R="80" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="21" Y="-144" Z="223" S="-82" T="-523" R="176" G="96" B="23" A="255"/>
|
||||||
|
<Vtx X="24" Y="-144" Z="223" S="-82" T="-255" R="126" G="16" B="5" A="255"/>
|
||||||
|
<Vtx X="24" Y="-132" Z="201" S="69" T="-255" R="126" G="12" B="12" A="255"/>
|
||||||
|
<Vtx X="24" Y="-148" Z="221" S="-82" T="-43" R="126" G="244" B="244" A="255"/>
|
||||||
|
<Vtx X="24" Y="-148" Z="221" S="-82" T="-11" R="80" G="188" B="184" A="255"/>
|
||||||
|
<Vtx X="21" Y="-148" Z="221" S="-82" T="224" R="176" G="188" B="184" A="255"/>
|
||||||
|
<Vtx X="20" Y="-130" Z="197" S="22" T="112" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-132" Z="196" S="235" T="-11" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-134" Z="197" S="448" T="112" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-132" Z="200" S="235" T="480" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-134" Z="199" S="448" T="358" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-132" Z="200" S="235" T="480" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-130" Z="199" S="22" T="358" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-130" Z="197" S="22" T="112" R="129" G="0" B="0" A="255"/>
|
||||||
|
<Vtx X="20" Y="-130" Z="197" S="-363" T="-21" R="178" G="87" B="206" A="255"/>
|
||||||
|
<Vtx X="27" Y="-132" Z="196" S="-533" T="-280" R="190" G="0" B="147" A="255"/>
|
||||||
|
<Vtx X="20" Y="-132" Z="196" S="-533" T="-21" R="178" G="0" B="155" A="255"/>
|
||||||
|
<Vtx X="27" Y="-130" Z="197" S="-363" T="-280" R="190" G="94" B="202" A="255"/>
|
||||||
|
<Vtx X="20" Y="-130" Z="199" S="-192" T="-21" R="178" G="87" B="50" A="255"/>
|
||||||
|
<Vtx X="27" Y="-130" Z="199" S="-192" T="-280" R="190" G="94" B="54" A="255"/>
|
||||||
|
<Vtx X="20" Y="-132" Z="200" S="-21" T="-21" R="178" G="0" B="101" A="255"/>
|
||||||
|
<Vtx X="27" Y="-132" Z="200" S="-21" T="-280" R="190" G="0" B="109" A="255"/>
|
||||||
|
<Vtx X="20" Y="-134" Z="199" S="149" T="-21" R="178" G="169" B="50" A="255"/>
|
||||||
|
<Vtx X="27" Y="-134" Z="199" S="149" T="-280" R="190" G="162" B="54" A="255"/>
|
||||||
|
<Vtx X="20" Y="-134" Z="197" S="320" T="-21" R="178" G="169" B="206" A="255"/>
|
||||||
|
<Vtx X="27" Y="-134" Z="197" S="320" T="-280" R="190" G="162" B="202" A="255"/>
|
||||||
|
<Vtx X="20" Y="-132" Z="196" S="491" T="-21" R="178" G="0" B="155" A="255"/>
|
||||||
|
<Vtx X="27" Y="-132" Z="196" S="491" T="-280" R="190" G="0" B="147" A="255"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,10 @@
|
|||||||
|
<Vertex Version="0">
|
||||||
|
<Vtx X="-15" Y="-163" Z="-152" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="-15" Y="-163" Z="148" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="-15" Y="173" Z="148" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="-15" Y="173" Z="-152" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="33" Y="-163" Z="-152" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="33" Y="-163" Z="148" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="33" Y="173" Z="148" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
<Vtx X="33" Y="173" Z="-152" S="-16" T="-16" R="0" G="0" B="0" A="0"/>
|
||||||
|
</Vertex>
|
@ -0,0 +1,12 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
|
||||||
|
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetPrimColor M="0" L="0" R="0" G="0" B="0" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,21 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
|
||||||
|
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetTextureLUT Mode="G_TT_NONE"/>
|
||||||
|
<TileSync/>
|
||||||
|
<SetTextureImage Path="objects/object_gi_fishing_pole/fishing_lure_float_rgba16_png" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
|
||||||
|
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="4" ShiftT="0"/>
|
||||||
|
<LoadSync/>
|
||||||
|
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="256"/>
|
||||||
|
<PipeSync/>
|
||||||
|
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_CLAMP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_CLAMP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="4" ShiftT="0"/>
|
||||||
|
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="60"/>
|
||||||
|
<SetPrimColor M="0" L="0" R="255" G="255" B="255" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,12 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_COMBINED" Ab1="G_ACMUX_0" Ac1="G_ACMUX_PRIMITIVE" Ad1="G_ACMUX_0"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_XLU_SURF2="1" />
|
||||||
|
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetPrimColor M="0" L="0" R="255" G="255" B="255" A="55"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_PRIMITIVE" C0="G_CCMUX_PRIM_LOD_FRAC" D0="G_CCMUX_TEXEL0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_1" Ac0="G_ACMUX_PRIM_LOD_FRAC" Ad0="G_ACMUX_1" A1="G_CCMUX_PRIMITIVE" B1="G_CCMUX_ENVIRONMENT" C1="G_CCMUX_COMBINED" D1="G_CCMUX_ENVIRONMENT" Aa1="G_ACMUX_1" Ab1="G_ACMUX_1" Ac1="G_ACMUX_PRIM_LOD_FRAC" Ad1="G_ACMUX_1"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_LIGHTING="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_PASS="1" G_RM_AA_ZB_TEX_EDGE2="1" />
|
||||||
|
<Texture S="655" T="655" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetTextureLUT Mode="G_TT_NONE"/>
|
||||||
|
<TileSync/>
|
||||||
|
<SetTextureImage Path="objects/object_gi_fishing_pole/eff_unknown_10_i8" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="1"/>
|
||||||
|
<LoadSync/>
|
||||||
|
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||||
|
<PipeSync/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="1"/>
|
||||||
|
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||||
|
<SetPrimColor M="0" L="128" R="0" G="134" B="241" A="255"/>
|
||||||
|
<SetEnvColor R="0" G="93" B="169" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_PRIMITIVE" C0="G_CCMUX_PRIM_LOD_FRAC" D0="G_CCMUX_TEXEL0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_1" Ac0="G_ACMUX_PRIM_LOD_FRAC" Ad0="G_ACMUX_1" A1="G_CCMUX_PRIMITIVE" B1="G_CCMUX_ENVIRONMENT" C1="G_CCMUX_COMBINED" D1="G_CCMUX_ENVIRONMENT" Aa1="G_ACMUX_1" Ab1="G_ACMUX_1" Ac1="G_ACMUX_PRIM_LOD_FRAC" Ad1="G_ACMUX_1"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_LIGHTING="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_PASS="1" G_RM_AA_ZB_TEX_EDGE2="1" />
|
||||||
|
<Texture S="1966" T="1966" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetTextureLUT Mode="G_TT_NONE"/>
|
||||||
|
<TileSync/>
|
||||||
|
<SetTextureImage Path="objects/object_gi_fishing_pole/eff_unknown_10_i8" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="1"/>
|
||||||
|
<LoadSync/>
|
||||||
|
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||||
|
<PipeSync/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="1"/>
|
||||||
|
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||||
|
<SetPrimColor M="0" L="128" R="248" G="255" B="255" A="255"/>
|
||||||
|
<SetEnvColor R="147" G="150" B="150" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_PRIMITIVE" C0="G_CCMUX_PRIM_LOD_FRAC" D0="G_CCMUX_TEXEL0" Aa0="G_ACMUX_1" Ab0="G_ACMUX_1" Ac0="G_ACMUX_PRIM_LOD_FRAC" Ad0="G_ACMUX_1" A1="G_CCMUX_PRIMITIVE" B1="G_CCMUX_ENVIRONMENT" C1="G_CCMUX_COMBINED" D1="G_CCMUX_ENVIRONMENT" Aa1="G_ACMUX_1" Ab1="G_ACMUX_1" Ac1="G_ACMUX_PRIM_LOD_FRAC" Ad1="G_ACMUX_1"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_LIGHTING="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_PASS="1" G_RM_AA_ZB_TEX_EDGE2="1" />
|
||||||
|
<Texture S="2621" T="2621" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetTextureLUT Mode="G_TT_NONE"/>
|
||||||
|
<TileSync/>
|
||||||
|
<SetTextureImage Path="objects/object_gi_fishing_pole/eff_unknown_10_i8" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="1"/>
|
||||||
|
<LoadSync/>
|
||||||
|
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||||
|
<PipeSync/>
|
||||||
|
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="1"/>
|
||||||
|
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||||
|
<SetPrimColor M="0" L="128" R="237" G="237" B="171" A="255"/>
|
||||||
|
<SetEnvColor R="195" G="157" B="0" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,12 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
|
||||||
|
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetPrimColor M="0" L="0" R="255" G="255" B="247" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -0,0 +1,12 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<PipeSync/>
|
||||||
|
<SetCombineLERP A0="G_CCMUX_PRIMITIVE" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||||
|
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
|
||||||
|
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
|
||||||
|
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
|
||||||
|
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
|
||||||
|
<SetPrimColor M="0" L="0" R="255" G="205" B="0" A="255"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -74,6 +74,9 @@ static const ALIGN_ASSET(2) char gTriforcePieceCompletedDL[] = dgTriforcePieceCo
|
|||||||
#define dgBossSoulSkullDL "__OTR__objects/object_boss_soul/gGIBossSoulSkullDL"
|
#define dgBossSoulSkullDL "__OTR__objects/object_boss_soul/gGIBossSoulSkullDL"
|
||||||
static const ALIGN_ASSET(2) char gBossSoulSkullDL[] = dgBossSoulSkullDL;
|
static const ALIGN_ASSET(2) char gBossSoulSkullDL[] = dgBossSoulSkullDL;
|
||||||
|
|
||||||
|
#define dgFishingPoleGiDL "__OTR__objects/object_gi_fishing_pole/gFishingPoleGiDL"
|
||||||
|
static const ALIGN_ASSET(2) char gFishingPoleGiDL[] = dgFishingPoleGiDL;
|
||||||
|
|
||||||
// overlays
|
// overlays
|
||||||
#define dgOptionsDividerChangeLangVtx "__OTR__overlays/ovl_file_choose/gOptionsDividerChangeLangVtx"
|
#define dgOptionsDividerChangeLangVtx "__OTR__overlays/ovl_file_choose/gOptionsDividerChangeLangVtx"
|
||||||
static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx;
|
static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx;
|
||||||
|
@ -574,6 +574,7 @@ typedef enum {
|
|||||||
/* 0x7A */ GID_SONG_TIME,
|
/* 0x7A */ GID_SONG_TIME,
|
||||||
/* 0x7B */ GID_SONG_STORM,
|
/* 0x7B */ GID_SONG_STORM,
|
||||||
/* 0x7C */ GID_TRIFORCE_PIECE,
|
/* 0x7C */ GID_TRIFORCE_PIECE,
|
||||||
|
/* */ GID_FISHING_POLE,
|
||||||
/* 0x7C */ GID_MAXIMUM
|
/* 0x7C */ GID_MAXIMUM
|
||||||
|
|
||||||
} GetItemDrawID;
|
} GetItemDrawID;
|
||||||
|
@ -283,7 +283,7 @@ typedef struct {
|
|||||||
// #endregion
|
// #endregion
|
||||||
// #region SOH [Randomizer]
|
// #region SOH [Randomizer]
|
||||||
// Upstream TODO: Move these to their own struct or name to more obviously specific to Randomizer
|
// Upstream TODO: Move these to their own struct or name to more obviously specific to Randomizer
|
||||||
/* */ u16 randomizerInf[11];
|
/* */ u16 randomizerInf[14];
|
||||||
/* */ u8 mqDungeonCount;
|
/* */ u8 mqDungeonCount;
|
||||||
/* */ u16 adultTradeItems;
|
/* */ u16 adultTradeItems;
|
||||||
/* */ u8 triforcePiecesCollected;
|
/* */ u8 triforcePiecesCollected;
|
||||||
@ -326,6 +326,18 @@ typedef enum {
|
|||||||
/* 0x06 */ HS_DAMPE_RACE
|
/* 0x06 */ HS_DAMPE_RACE
|
||||||
} HighScores;
|
} HighScores;
|
||||||
|
|
||||||
|
// the score value for the fishing minigame also stores many flags.
|
||||||
|
#define HS_FISH_LENGTH_CHILD 0x7F // mask for record length of catch as child.
|
||||||
|
#define HS_FISH_LENGTH_ADULT 0x7F000000 // mask for record length of catch as adult.
|
||||||
|
#define HS_FISH_PLAYED_CHILD 0x100 // set when first talking to owner as child
|
||||||
|
#define HS_FISH_PLAYED_ADULT 0x200 // set when first talking to owner as adult
|
||||||
|
#define HS_FISH_PRIZE_CHILD 0x400 // won the Piece of Heart
|
||||||
|
#define HS_FISH_PRIZE_ADULT 0x800 // won the Golden Scale
|
||||||
|
#define HS_FISH_STOLE_HAT 0x1000 // Pond owner is visibly bald as Adult Link.
|
||||||
|
#define HS_FISH_CHEAT_CHILD 0x80 // used Sinking Lure as child to catch record fish
|
||||||
|
#define HS_FISH_CHEAT_ADULT 0x80000000 // used Sinking Lure as adult to catch record fish
|
||||||
|
#define HS_FISH_PLAYED 0x10000 // incremented for every play. controls weather.
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* 0 */ SUNSSONG_INACTIVE,
|
/* 0 */ SUNSSONG_INACTIVE,
|
||||||
/* 1 */ SUNSSONG_START, // the suns ocarina effect signals that the song has finished playing
|
/* 1 */ SUNSSONG_START, // the suns ocarina effect signals that the song has finished playing
|
||||||
|
@ -135,6 +135,8 @@ typedef enum {
|
|||||||
TEXT_BEAN_SALESMAN_SET_A_BEAN_TO_C = 0x406A,
|
TEXT_BEAN_SALESMAN_SET_A_BEAN_TO_C = 0x406A,
|
||||||
TEXT_BEAN_SALESMAN_SOLD_OUT = 0x406B,
|
TEXT_BEAN_SALESMAN_SOLD_OUT = 0x406B,
|
||||||
TEXT_BEAN_SALESMAN_WANT_TO_PLANT = 0x406C,
|
TEXT_BEAN_SALESMAN_WANT_TO_PLANT = 0x406C,
|
||||||
|
TEXT_FISHING_POND_START = 0x407B,
|
||||||
|
TEXT_FISHING_POND_START_MET = 0x4093,
|
||||||
TEXT_DAMPES_DIARY = 0x5003,
|
TEXT_DAMPES_DIARY = 0x5003,
|
||||||
TEXT_GRANNYS_SHOP = 0x500C,
|
TEXT_GRANNYS_SHOP = 0x500C,
|
||||||
TEXT_ANJU_PLEASE_BRING_MY_CUCCOS_BACK = 0x5036,
|
TEXT_ANJU_PLEASE_BRING_MY_CUCCOS_BACK = 0x5036,
|
||||||
|
@ -1123,6 +1123,36 @@ void DrawFlagsTab() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// make some buttons to help with fishsanity debugging
|
||||||
|
uint8_t fsMode = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY);
|
||||||
|
if (flagTable.flagTableType == RANDOMIZER_INF &&
|
||||||
|
fsMode != RO_FISHSANITY_OFF && fsMode != RO_FISHSANITY_OVERWORLD) {
|
||||||
|
if (ImGui::Button("Catch All (Child)")) {
|
||||||
|
for (int k = RAND_INF_CHILD_FISH_1; k <= RAND_INF_CHILD_LOACH_2; k++) {
|
||||||
|
Flags_SetRandomizerInf((RandomizerInf)k);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ImGui::SameLine();
|
||||||
|
if (ImGui::Button("Uncatch All (Child)")) {
|
||||||
|
for (int k = RAND_INF_CHILD_FISH_1; k <= RAND_INF_CHILD_LOACH_2; k++) {
|
||||||
|
Flags_UnsetRandomizerInf((RandomizerInf)k);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::Button("Catch All (Adult)")) {
|
||||||
|
for (int k = RAND_INF_ADULT_FISH_1; k <= RAND_INF_ADULT_LOACH; k++) {
|
||||||
|
Flags_SetRandomizerInf((RandomizerInf)k);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ImGui::SameLine();
|
||||||
|
if (ImGui::Button("Uncatch All (Adult)")) {
|
||||||
|
for (int k = RAND_INF_ADULT_FISH_1; k <= RAND_INF_ADULT_LOACH; k++) {
|
||||||
|
Flags_UnsetRandomizerInf((RandomizerInf)k);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::TreePop();
|
ImGui::TreePop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -348,7 +348,7 @@ const std::vector<FlagTable> flagTables = {
|
|||||||
{ 0x24, "Market Crowd Text Randomizer" },
|
{ 0x24, "Market Crowd Text Randomizer" },
|
||||||
{ 0x30, "Entered the Market" },
|
{ 0x30, "Entered the Market" },
|
||||||
} },
|
} },
|
||||||
{ "Randomizer Inf Flags", RANDOMIZER_INF, 0x0A, {
|
{ "Randomizer Inf Flags", RANDOMIZER_INF, 13, {
|
||||||
{ RAND_INF_DUNGEONS_DONE_DEKU_TREE, "DUNGEONS_DONE_DEKU_TREE" },
|
{ RAND_INF_DUNGEONS_DONE_DEKU_TREE, "DUNGEONS_DONE_DEKU_TREE" },
|
||||||
{ RAND_INF_DUNGEONS_DONE_DODONGOS_CAVERN, "DUNGEONS_DONE_DODONGOS_CAVERN" },
|
{ RAND_INF_DUNGEONS_DONE_DODONGOS_CAVERN, "DUNGEONS_DONE_DODONGOS_CAVERN" },
|
||||||
{ RAND_INF_DUNGEONS_DONE_JABU_JABUS_BELLY, "DUNGEONS_DONE_JABU_JABUS_BELLY" },
|
{ RAND_INF_DUNGEONS_DONE_JABU_JABUS_BELLY, "DUNGEONS_DONE_JABU_JABUS_BELLY" },
|
||||||
@ -517,11 +517,54 @@ const std::vector<FlagTable> flagTables = {
|
|||||||
{ RAND_INF_GANON_SOUL, "RAND_INF_GANON_SOUL" },
|
{ RAND_INF_GANON_SOUL, "RAND_INF_GANON_SOUL" },
|
||||||
{ RAND_INF_GRANT_GANONS_BOSSKEY, "RAND_INF_GRANT_GANONS_BOSSKEY" },
|
{ RAND_INF_GRANT_GANONS_BOSSKEY, "RAND_INF_GRANT_GANONS_BOSSKEY" },
|
||||||
|
|
||||||
{ RAND_INF_HAS_OCARINA_A, "RAND_INF_HAS_OCARINA_A"},
|
{ RAND_INF_CHILD_FISH_1, "RAND_INF_CHILD_FISH_1" },
|
||||||
{ RAND_INF_HAS_OCARINA_C_UP, "RAND_INF_HAS_OCARINA_C_UP" },
|
{ RAND_INF_CHILD_FISH_2, "RAND_INF_CHILD_FISH_2" },
|
||||||
{ RAND_INF_HAS_OCARINA_C_DOWN, "RAND_INF_HAS_OCARINA_C_DOWN" },
|
{ RAND_INF_CHILD_FISH_3, "RAND_INF_CHILD_FISH_3" },
|
||||||
{ RAND_INF_HAS_OCARINA_C_LEFT, "RAND_INF_HAS_OCARINA_C_LEFT"},
|
{ RAND_INF_CHILD_FISH_4, "RAND_INF_CHILD_FISH_4" },
|
||||||
{ RAND_INF_HAS_OCARINA_C_RIGHT, "RAND_INF_HAS_OCARINA_C_RIGHT"},
|
{ RAND_INF_CHILD_FISH_5, "RAND_INF_CHILD_FISH_5" },
|
||||||
|
{ RAND_INF_CHILD_FISH_6, "RAND_INF_CHILD_FISH_6" },
|
||||||
|
{ RAND_INF_CHILD_FISH_7, "RAND_INF_CHILD_FISH_7" },
|
||||||
|
{ RAND_INF_CHILD_FISH_8, "RAND_INF_CHILD_FISH_8" },
|
||||||
|
{ RAND_INF_CHILD_FISH_9, "RAND_INF_CHILD_FISH_9" },
|
||||||
|
{ RAND_INF_CHILD_FISH_10, "RAND_INF_CHILD_FISH_10" },
|
||||||
|
{ RAND_INF_CHILD_FISH_11, "RAND_INF_CHILD_FISH_11" },
|
||||||
|
{ RAND_INF_CHILD_FISH_12, "RAND_INF_CHILD_FISH_12" },
|
||||||
|
{ RAND_INF_CHILD_FISH_13, "RAND_INF_CHILD_FISH_13" },
|
||||||
|
{ RAND_INF_CHILD_FISH_14, "RAND_INF_CHILD_FISH_14" },
|
||||||
|
{ RAND_INF_CHILD_FISH_15, "RAND_INF_CHILD_FISH_15" },
|
||||||
|
{ RAND_INF_CHILD_LOACH_1, "RAND_INF_CHILD_LOACH_1" },
|
||||||
|
{ RAND_INF_CHILD_LOACH_2, "RAND_INF_CHILD_LOACH_2" },
|
||||||
|
{ RAND_INF_ADULT_FISH_1, "RAND_INF_ADULT_FISH_1" },
|
||||||
|
{ RAND_INF_ADULT_FISH_2, "RAND_INF_ADULT_FISH_2" },
|
||||||
|
{ RAND_INF_ADULT_FISH_3, "RAND_INF_ADULT_FISH_3" },
|
||||||
|
{ RAND_INF_ADULT_FISH_4, "RAND_INF_ADULT_FISH_4" },
|
||||||
|
{ RAND_INF_ADULT_FISH_5, "RAND_INF_ADULT_FISH_5" },
|
||||||
|
{ RAND_INF_ADULT_FISH_6, "RAND_INF_ADULT_FISH_6" },
|
||||||
|
{ RAND_INF_ADULT_FISH_7, "RAND_INF_ADULT_FISH_7" },
|
||||||
|
{ RAND_INF_ADULT_FISH_8, "RAND_INF_ADULT_FISH_8" },
|
||||||
|
{ RAND_INF_ADULT_FISH_9, "RAND_INF_ADULT_FISH_9" },
|
||||||
|
{ RAND_INF_ADULT_FISH_10, "RAND_INF_ADULT_FISH_10" },
|
||||||
|
{ RAND_INF_ADULT_FISH_11, "RAND_INF_ADULT_FISH_11" },
|
||||||
|
{ RAND_INF_ADULT_FISH_12, "RAND_INF_ADULT_FISH_12" },
|
||||||
|
{ RAND_INF_ADULT_FISH_13, "RAND_INF_ADULT_FISH_13" },
|
||||||
|
{ RAND_INF_ADULT_FISH_14, "RAND_INF_ADULT_FISH_14" },
|
||||||
|
{ RAND_INF_ADULT_FISH_15, "RAND_INF_ADULT_FISH_15" },
|
||||||
|
{ RAND_INF_ADULT_LOACH, "RAND_INF_ADULT_LOACH" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_ZR_OPEN_GROTTO, "RAND_INF_GROTTO_FISH_ZR_OPEN_GROTTO" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_DMC_UPPER_GROTTO, "RAND_INF_GROTTO_FISH_DMC_UPPER_GROTTO" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_DMT_STORMS_GROTTO, "RAND_INF_GROTTO_FISH_DMT_STORMS_GROTTO" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_KAK_OPEN_GROTTO, "RAND_INF_GROTTO_FISH_KAK_OPEN_GROTTO" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_HF_NEAR_MARKET_GROTTO, "RAND_INF_GROTTO_FISH_HF_NEAR_MARKET_GROTTO" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_HF_OPEN_GROTTO, "RAND_INF_GROTTO_FISH_HF_OPEN_GROTTO" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_HF_SOUTHEAST_GROTTO, "RAND_INF_GROTTO_FISH_HF_SOUTHEAST_GROTTO" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_LW_NEAR_SHORTCUTS_GROTTO, "RAND_INF_GROTTO_FISH_LW_NEAR_SHORTCUTS_GROTTO" },
|
||||||
|
{ RAND_INF_GROTTO_FISH_KF_STORMS_GROTTO, "RAND_INF_GROTTO_FISH_KF_STORMS_GROTTO" },
|
||||||
|
{ RAND_INF_FISHING_POLE_FOUND, "RAND_INF_FISHING_POLE_FOUND" },
|
||||||
|
{ RAND_INF_ZD_FISH_1, "RAND_INF_ZD_FISH_1" },
|
||||||
|
{ RAND_INF_ZD_FISH_2, "RAND_INF_ZD_FISH_2" },
|
||||||
|
{ RAND_INF_ZD_FISH_3, "RAND_INF_ZD_FISH_3" },
|
||||||
|
{ RAND_INF_ZD_FISH_4, "RAND_INF_ZD_FISH_4" },
|
||||||
|
{ RAND_INF_ZD_FISH_5, "RAND_INF_ZD_FISH_5" }
|
||||||
} },
|
} },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "soh/Enhancements/boss-rush/BossRushTypes.h"
|
#include "soh/Enhancements/boss-rush/BossRushTypes.h"
|
||||||
#include "soh/Enhancements/enhancementTypes.h"
|
#include "soh/Enhancements/enhancementTypes.h"
|
||||||
#include "soh/Enhancements/randomizer/3drando/random.hpp"
|
#include "soh/Enhancements/randomizer/3drando/random.hpp"
|
||||||
|
#include "soh/Enhancements/randomizer/fishsanity.h"
|
||||||
#include "soh/Enhancements/cosmetics/authenticGfxPatches.h"
|
#include "soh/Enhancements/cosmetics/authenticGfxPatches.h"
|
||||||
#include <soh/Enhancements/item-tables/ItemTableManager.h>
|
#include <soh/Enhancements/item-tables/ItemTableManager.h>
|
||||||
#include "soh/Enhancements/nametag.h"
|
#include "soh/Enhancements/nametag.h"
|
||||||
@ -23,6 +24,7 @@
|
|||||||
#include "src/overlays/actors/ovl_En_Tp/z_en_tp.h"
|
#include "src/overlays/actors/ovl_En_Tp/z_en_tp.h"
|
||||||
#include "src/overlays/actors/ovl_En_Firefly/z_en_firefly.h"
|
#include "src/overlays/actors/ovl_En_Firefly/z_en_firefly.h"
|
||||||
#include "src/overlays/actors/ovl_En_Xc/z_en_xc.h"
|
#include "src/overlays/actors/ovl_En_Xc/z_en_xc.h"
|
||||||
|
#include "src/overlays//actors/ovl_Fishing/z_fishing.h"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include <z64.h>
|
#include <z64.h>
|
||||||
@ -1282,6 +1284,156 @@ void RegisterToTMedallions() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RegisterFishsanity() {
|
||||||
|
static s16 fishGroupCounter = 0;
|
||||||
|
|
||||||
|
// Initialization on load
|
||||||
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnLoadGame>([](int32_t fileNum) {
|
||||||
|
if (!IS_RANDO) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
OTRGlobals::Instance->gRandoContext->GetFishsanity()->InitializeFromSave();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Initialize actors for fishsanity
|
||||||
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnActorInit>([](void* refActor) {
|
||||||
|
if (!IS_RANDO) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Actor* actor = static_cast<Actor*>(refActor);
|
||||||
|
auto fs = OTRGlobals::Instance->gRandoContext->GetFishsanity();
|
||||||
|
FishIdentity fish;
|
||||||
|
|
||||||
|
if (actor->id == ACTOR_EN_FISH && fs->GetOverworldFishShuffled()) {
|
||||||
|
// Set fish ID for ZD fish
|
||||||
|
if (gPlayState->sceneNum == SCENE_ZORAS_DOMAIN && actor->params == -1) {
|
||||||
|
actor->params ^= fishGroupCounter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
fish = OTRGlobals::Instance->gRandomizer->IdentifyFish(gPlayState->sceneNum, actor->params);
|
||||||
|
// Create effect for uncaught fish
|
||||||
|
if (Rando::Fishsanity::IsFish(&fish) && !Flags_GetRandomizerInf(fish.randomizerInf)) {
|
||||||
|
actor->shape.shadowDraw = Fishsanity_DrawEffShadow;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actor->id == ACTOR_FISHING && gPlayState->sceneNum == SCENE_FISHING_POND && actor->params >= 100 &&
|
||||||
|
actor->params <= 117 && fs->GetPondFishShuffled()) {
|
||||||
|
// Initialize pond fish for fishsanity
|
||||||
|
// Initialize fishsanity metadata on this actor
|
||||||
|
Fishing* fishActor = static_cast<Fishing*>(refActor);
|
||||||
|
fishActor->fishsanityParams = actor->params;
|
||||||
|
fish = OTRGlobals::Instance->gRandomizer->IdentifyFish(gPlayState->sceneNum, actor->params);
|
||||||
|
|
||||||
|
// With every pond fish shuffled, caught fish will not spawn unless all fish have been caught.
|
||||||
|
if (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_POND_COUNT) > 16 &&
|
||||||
|
!fs->GetPondCleared()) {
|
||||||
|
// Create effect for uncaught fish
|
||||||
|
if (!Flags_GetRandomizerInf(fish.randomizerInf)) {
|
||||||
|
actor->shape.shadowDraw = Fishsanity_DrawEffShadow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// Update fishsanity when a fish is caught
|
||||||
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnFlagSet>([](int16_t flagType, int16_t flag) {
|
||||||
|
if (!IS_RANDO || flagType != FLAG_RANDOMIZER_INF) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RandomizerCheck rc = OTRGlobals::Instance->gRandomizer->GetCheckFromRandomizerInf((RandomizerInf)flag);
|
||||||
|
FishsanityCheckType fsType = Rando::Fishsanity::GetCheckType(rc);
|
||||||
|
if (fsType == FSC_NONE) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// When a pond fish is caught, advance the pond.
|
||||||
|
if (fsType == FSC_POND) {
|
||||||
|
OTRGlobals::Instance->gRandoContext->GetFishsanity()->AdvancePond();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Award fishing pond checks
|
||||||
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnPlayerUpdate>([]() {
|
||||||
|
if (!IS_RANDO || GameInteractor::IsGameplayPaused() || !gPlayState) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player* player = GET_PLAYER(gPlayState);
|
||||||
|
if (Player_InBlockingCsMode(gPlayState, player)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto fs = OTRGlobals::Instance->gRandoContext->GetFishsanity();
|
||||||
|
if (!fs->GetPondFishShuffled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FishIdentity pending = fs->GetPendingFish();
|
||||||
|
if (!Rando::Fishsanity::IsFish(&pending)) { // No fish currently pending
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Award fish
|
||||||
|
GetItemEntry gi = OTRGlobals::Instance->gRandomizer->GetItemFromKnownCheck(pending.randomizerCheck, GI_NONE);
|
||||||
|
Flags_SetRandomizerInf(pending.randomizerInf);
|
||||||
|
GiveItemEntryWithoutActor(gPlayState, gi);
|
||||||
|
fs->SetPendingFish(NULL);
|
||||||
|
});
|
||||||
|
|
||||||
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnActorUpdate>([](void* refActor) {
|
||||||
|
if (!IS_RANDO || (gPlayState->sceneNum != SCENE_GROTTOS && gPlayState->sceneNum != SCENE_ZORAS_DOMAIN && gPlayState->sceneNum != SCENE_FISHING_POND)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Actor* actor = static_cast<Actor*>(refActor);
|
||||||
|
auto fs = OTRGlobals::Instance->gRandoContext->GetFishsanity();
|
||||||
|
|
||||||
|
// Detect fish catch
|
||||||
|
if (actor->id == ACTOR_FISHING && fs->GetPondFishShuffled()) {
|
||||||
|
Fishing* fish = static_cast<Fishing*>(refActor);
|
||||||
|
|
||||||
|
// State 6 -> Fish caught and hoisted
|
||||||
|
FishIdentity pending = fs->GetPendingFish();
|
||||||
|
if (fish->fishState == 6 && !Rando::Fishsanity::IsFish(&pending)) {
|
||||||
|
pending = OTRGlobals::Instance->gRandomizer->IdentifyFish(gPlayState->sceneNum, fish->fishsanityParams);
|
||||||
|
if (!Flags_GetRandomizerInf(pending.randomizerInf)) {
|
||||||
|
fs->SetPendingFish(&pending);
|
||||||
|
// Remove uncaught effect
|
||||||
|
if (actor->shape.shadowDraw != NULL) {
|
||||||
|
actor->shape.shadowDraw = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actor->id == ACTOR_EN_FISH && fs->GetOverworldFishShuffled()) {
|
||||||
|
FishIdentity fish = OTRGlobals::Instance->gRandomizer->IdentifyFish(gPlayState->sceneNum, actor->params);
|
||||||
|
if (Rando::Fishsanity::IsFish(&fish) && Flags_GetRandomizerInf(fish.randomizerInf)) {
|
||||||
|
// Remove uncaught effect
|
||||||
|
if (actor->shape.shadowDraw != NULL) {
|
||||||
|
actor->shape.shadowDraw = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset fish group counter when the group gets culled
|
||||||
|
if (actor->id == ACTOR_OBJ_MURE && gPlayState->sceneNum == SCENE_ZORAS_DOMAIN && fishGroupCounter > 0 &&
|
||||||
|
!(actor->flags & ACTOR_FLAG_UPDATE_WHILE_CULLED) && fs->GetOverworldFishShuffled()) {
|
||||||
|
fishGroupCounter = 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneInit>([](int16_t sceneNum) {
|
||||||
|
if (!IS_RANDO || sceneNum != SCENE_ZORAS_DOMAIN)
|
||||||
|
return;
|
||||||
|
fishGroupCounter = 0;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void InitMods() {
|
void InitMods() {
|
||||||
RegisterTTS();
|
RegisterTTS();
|
||||||
RegisterInfiniteMoney();
|
RegisterInfiniteMoney();
|
||||||
@ -1315,5 +1467,6 @@ void InitMods() {
|
|||||||
RegisterBossSouls();
|
RegisterBossSouls();
|
||||||
RegisterRandomizedEnemySizes();
|
RegisterRandomizedEnemySizes();
|
||||||
RegisterToTMedallions();
|
RegisterToTMedallions();
|
||||||
|
RegisterFishsanity();
|
||||||
NameTag_RegisterHooks();
|
NameTag_RegisterHooks();
|
||||||
}
|
}
|
||||||
|
@ -122,6 +122,8 @@ const std::vector<const char*> enhancementsCvars = {
|
|||||||
"gInstantFishing",
|
"gInstantFishing",
|
||||||
"gGuaranteeFishingBite",
|
"gGuaranteeFishingBite",
|
||||||
"gFishNeverEscape",
|
"gFishNeverEscape",
|
||||||
|
"gLoachesAlwaysAppear",
|
||||||
|
"gSkipKeepConfirmation",
|
||||||
"gChildMinimumWeightFish",
|
"gChildMinimumWeightFish",
|
||||||
"gAdultMinimumWeightFish",
|
"gAdultMinimumWeightFish",
|
||||||
"gLowHpAlarm",
|
"gLowHpAlarm",
|
||||||
@ -341,6 +343,10 @@ const std::vector<const char*> randomizerCvars = {
|
|||||||
"gRandomizeExcludedLocations",
|
"gRandomizeExcludedLocations",
|
||||||
"gRandomizeForest",
|
"gRandomizeForest",
|
||||||
"gRandomizeFullWallets",
|
"gRandomizeFullWallets",
|
||||||
|
"gRandomizeFishingPoleHint",
|
||||||
|
"gRandomizeFishsanity",
|
||||||
|
"gRandomizeFishsanityPondCount",
|
||||||
|
"gRandomizeFishsanityAgeSplit",
|
||||||
"gRandomizeGanonTrial",
|
"gRandomizeGanonTrial",
|
||||||
"gRandomizeGanonTrialCount",
|
"gRandomizeGanonTrialCount",
|
||||||
"gRandomizeGerudoFortress",
|
"gRandomizeGerudoFortress",
|
||||||
@ -382,6 +388,7 @@ const std::vector<const char*> randomizerCvars = {
|
|||||||
"gRandomizeShuffleCows",
|
"gRandomizeShuffleCows",
|
||||||
"gRandomizeShuffleDungeonReward",
|
"gRandomizeShuffleDungeonReward",
|
||||||
"gRandomizeShuffleDungeonsEntrances",
|
"gRandomizeShuffleDungeonsEntrances",
|
||||||
|
"gRandomizeShuffleFishingPole",
|
||||||
"gRandomizeShuffleFrogSongRupees",
|
"gRandomizeShuffleFrogSongRupees",
|
||||||
"gRandomizeShuffleGanonBossKey",
|
"gRandomizeShuffleGanonBossKey",
|
||||||
"gRandomizeShuffleGerudoToken",
|
"gRandomizeShuffleGerudoToken",
|
||||||
|
@ -9,6 +9,7 @@ enum class Category {
|
|||||||
cSong,
|
cSong,
|
||||||
cSongDungeonReward,
|
cSongDungeonReward,
|
||||||
cCow,
|
cCow,
|
||||||
|
cFish,
|
||||||
cShop,
|
cShop,
|
||||||
cMerchant,
|
cMerchant,
|
||||||
cVanillaSmallKey,
|
cVanillaSmallKey,
|
||||||
|
@ -3127,6 +3127,24 @@ void HintTable_Init() {
|
|||||||
"# bei sich haben und Dich neugierig beobachten..."
|
"# bei sich haben und Dich neugierig beobachten..."
|
||||||
}});
|
}});
|
||||||
|
|
||||||
|
hintTable[RHT_FISHING_POLE_HINT01] = HintText::OtherHint({
|
||||||
|
// obscure text
|
||||||
|
Text{"^If I remember correctly, I lost it somewhere in %r",
|
||||||
|
/*french*/
|
||||||
|
"",
|
||||||
|
/*spanish*/
|
||||||
|
"" }
|
||||||
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_FISHING_POLE_HINT02] = HintText::OtherHint({
|
||||||
|
// obscure text
|
||||||
|
Text{"%w...&Let me know if you find it!",
|
||||||
|
/*french*/
|
||||||
|
"",
|
||||||
|
/*spanish*/
|
||||||
|
"" }
|
||||||
|
});
|
||||||
|
|
||||||
/*--------------------------
|
/*--------------------------
|
||||||
| GANON LINE TEXT |
|
| GANON LINE TEXT |
|
||||||
---------------------------*/
|
---------------------------*/
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "../hint_list.hpp"
|
#include "../hint_list.hpp"
|
||||||
|
#include <soh/Enhancements/randomizer/static_data.h>
|
||||||
|
|
||||||
void HintTable_Init_Exclude_Overworld() {
|
void HintTable_Init_Exclude_Overworld() {
|
||||||
hintTable[RHT_KF_KOKIRI_SWORD_CHEST] = HintText::Exclude({
|
hintTable[RHT_KF_KOKIRI_SWORD_CHEST] = HintText::Exclude({
|
||||||
@ -91,46 +92,91 @@ void HintTable_Init_Exclude_Overworld() {
|
|||||||
Text{"a #hole in a field near a drawbridge# holds", /*french*/"la #grotte près d'un pont# contient", /*spanish*/"bajo el #hoyo de una llanura cercano a un puente# yace"},
|
Text{"a #hole in a field near a drawbridge# holds", /*french*/"la #grotte près d'un pont# contient", /*spanish*/"bajo el #hoyo de una llanura cercano a un puente# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_HF_NEAR_MARKET_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"a #fish in a hole in a field near a drawbridge# holds", /*french*/"la #grotte près d'un pont# contient", /*spanish*/"bajo el #hoyo de una llanura cercano a un puente# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_HF_SOUTHEAST_GROTTO_CHEST] = HintText::Exclude({
|
hintTable[RHT_HF_SOUTHEAST_GROTTO_CHEST] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"a #hole amongst trees in a field# holds", /*french*/"la #grotte près des arbres# contient", /*spanish*/"bajo el #hoyo de una llanura rodeado de árboles# yace"},
|
Text{"a #hole amongst trees in a field# holds", /*french*/"la #grotte près des arbres# contient", /*spanish*/"bajo el #hoyo de una llanura rodeado de árboles# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_HF_SOUTHEAST_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"a #fish in a hole amongst trees in a field# holds", /*french*/"la #grotte près des arbres# contient", /*spanish*/"bajo el #hoyo de una llanura rodeado de árboles# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_HF_OPEN_GROTTO_CHEST] = HintText::Exclude({
|
hintTable[RHT_HF_OPEN_GROTTO_CHEST] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"an #open hole in a field# holds", /*french*/"la #grotte dans les plaines# contient", /*spanish*/"bajo el #hoyo descubierto de una llanura# yace"},
|
Text{"an #open hole in a field# holds", /*french*/"la #grotte dans les plaines# contient", /*spanish*/"bajo el #hoyo descubierto de una llanura# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_HF_OPEN_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"a #fish in an open hole in a field# holds", /*french*/"la #grotte dans les plaines# contient", /*spanish*/"bajo el #hoyo descubierto de una llanura# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_KAK_OPEN_GROTTO_CHEST] = HintText::Exclude({
|
hintTable[RHT_KAK_OPEN_GROTTO_CHEST] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"an #open hole in a town# holds", /*french*/"la #grotte dans le village# contient", /*spanish*/"bajo el #hoyo descubierto de un pueblo# yace"},
|
Text{"an #open hole in a town# holds", /*french*/"la #grotte dans le village# contient", /*spanish*/"bajo el #hoyo descubierto de un pueblo# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_KAK_OPEN_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"a #fish in an open hole in a town# holds", /*french*/"la #grotte dans le village# contient", /*spanish*/"bajo el #hoyo descubierto de un pueblo# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_ZR_OPEN_GROTTO_CHEST] = HintText::Exclude({
|
hintTable[RHT_ZR_OPEN_GROTTO_CHEST] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"a #hole along a river# holds", /*french*/"la #grotte près du fleuve# contient", /*spanish*/"bajo un #hoyo junto a un río# yace"},
|
Text{"a #hole along a river# holds", /*french*/"la #grotte près du fleuve# contient", /*spanish*/"bajo un #hoyo junto a un río# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_ZR_OPEN_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"a #fish in a hole along a river# holds", /*french*/"la #grotte près du fleuve# contient", /*spanish*/"bajo un #hoyo junto a un río# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_KF_STORMS_GROTTO_CHEST] = HintText::Exclude({
|
hintTable[RHT_KF_STORMS_GROTTO_CHEST] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"a #hole in a forest village# holds", /*french*/"la #grotte inondée de pluie dans le Village Kokiri# révèle", /*spanish*/"bajo el #hoyo de una tribu del bosque# yace"},
|
Text{"a #hole in a forest village# holds", /*french*/"la #grotte inondée de pluie dans le Village Kokiri# révèle", /*spanish*/"bajo el #hoyo de una tribu del bosque# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_KF_STORMS_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"a #fish in a hole in a forest village# holds", /*french*/"la #grotte inondée de pluie dans le Village Kokiri# révèle", /*spanish*/"bajo el #hoyo de una tribu del bosque# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_LW_NEAR_SHORTCUTS_GROTTO_CHEST] = HintText::Exclude({
|
hintTable[RHT_LW_NEAR_SHORTCUTS_GROTTO_CHEST] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"a #hole in a wooded maze# holds", /*french*/"la #grotte dans le labyrinthe sylvestre# contient", /*spanish*/"bajo un #hoyo de un laberinto forestal# yace"},
|
Text{"a #hole in a wooded maze# holds", /*french*/"la #grotte dans le labyrinthe sylvestre# contient", /*spanish*/"bajo un #hoyo de un laberinto forestal# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_LW_NEAR_SHORTCUTS_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"a #fish in a hole in a wooded maze# holds", /*french*/"la #grotte dans le labyrinthe sylvestre# contient", /*spanish*/"bajo un #hoyo de un laberinto forestal# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_DMT_STORMS_GROTTO_CHEST] = HintText::Exclude({
|
hintTable[RHT_DMT_STORMS_GROTTO_CHEST] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"#hole flooded with rain on a mountain# holds", /*french*/"la #grotte inondée de pluie sur la montagne# contient", /*spanish*/"bajo un #hoyo de una montaña inundado de lluvia# yace"},
|
Text{"#hole flooded with rain on a mountain# holds", /*french*/"la #grotte inondée de pluie sur la montagne# contient", /*spanish*/"bajo un #hoyo de una montaña inundado de lluvia# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_DMT_STORMS_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"#fish in a hole flooded with rain on a mountain# holds", /*french*/"la #grotte inondée de pluie sur la montagne# contient", /*spanish*/"bajo un #hoyo de una montaña inundado de lluvia# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_DMC_UPPER_GROTTO_CHEST] = HintText::Exclude({
|
hintTable[RHT_DMC_UPPER_GROTTO_CHEST] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"a #hole in a volcano# holds", /*french*/"la #grotte dans le volcan# contient", /*spanish*/"bajo el #hoyo de un volcán# yace"},
|
Text{"a #hole in a volcano# holds", /*french*/"la #grotte dans le volcan# contient", /*spanish*/"bajo el #hoyo de un volcán# yace"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
hintTable[RHT_DMC_UPPER_GROTTO_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"a #fish in a hole in a volcano# holds", /*french*/"la #grotte dans le volcan# contient", /*spanish*/"bajo el #hoyo de un volcán# yace"},
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_TOT_MASTER_SWORD] = HintText::Exclude({
|
hintTable[RHT_TOT_MASTER_SWORD] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"a #pedestal in a temple# holds", /*french*/"un #piédestal dans un temple# contient", /*spanish*/"un #pedestal en un templo# sostiene"},
|
Text{"a #pedestal in a temple# holds", /*french*/"un #piédestal dans un temple# contient", /*spanish*/"un #pedestal en un templo# sostiene"},
|
||||||
@ -225,6 +271,27 @@ void HintTable_Init_Exclude_Overworld() {
|
|||||||
Text{"#fishing in youth# bestows", /*french*/"#pêcher dans sa jeunesse# promet", /*spanish*/"#pescar en la juventud# conduce a"},
|
Text{"#fishing in youth# bestows", /*french*/"#pêcher dans sa jeunesse# promet", /*spanish*/"#pescar en la juventud# conduce a"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// TODO: needs french + spanish translation
|
||||||
|
hintTable[RHT_LH_POND_FISH] = HintText::Exclude({
|
||||||
|
//obscure text
|
||||||
|
Text{"#hitting the pond# reveals", /*french*/ "", /*spanish*/ ""},
|
||||||
|
{},
|
||||||
|
//clear text
|
||||||
|
Text{"#the fishing pond's bounty# includes", /*french*/ "", /*spanish*/ ""}
|
||||||
|
});
|
||||||
|
|
||||||
|
// TODO: needs french translation
|
||||||
|
hintTable[RHT_LH_HYRULE_LOACH] = HintText::Exclude(
|
||||||
|
{
|
||||||
|
// obscure text
|
||||||
|
Text{ "#fishing the legend# bestows", /*french*/ "!!!", /*spanish*/ "#pescar a la leyenda# conduce a" },
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
// clear text
|
||||||
|
Text{ "#fishing the hyrule loach# will give you", /*french*/ "!!!",
|
||||||
|
/*spanish*/ "si #pescas a la Locha de Hyrule# encontrarás" });
|
||||||
|
|
||||||
|
|
||||||
hintTable[RHT_LH_ADULT_FISHING] = HintText::Exclude({
|
hintTable[RHT_LH_ADULT_FISHING] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"#fishing in maturity# bestows", /*french*/"#pêcher dans sa maturité# promet", /*spanish*/"#pescar en la madurez# conduce a"},
|
Text{"#fishing in maturity# bestows", /*french*/"#pêcher dans sa maturité# promet", /*spanish*/"#pescar en la madurez# conduce a"},
|
||||||
@ -235,6 +302,12 @@ void HintTable_Init_Exclude_Overworld() {
|
|||||||
Text{"a #diving experiment# is rewarded with", /*french*/"l'#expérience de plongée# donne", /*spanish*/"#bucear para un experimento# se premia con"},
|
Text{"a #diving experiment# is rewarded with", /*french*/"l'#expérience de plongée# donne", /*spanish*/"#bucear para un experimento# se premia con"},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// TODO: needs translation
|
||||||
|
hintTable[RHT_ZD_FISH] = HintText::Exclude({
|
||||||
|
// obscure text
|
||||||
|
Text{"a #fish by a waterfall# hoards", /*french*/"", /*spanish*/""}
|
||||||
|
});
|
||||||
|
|
||||||
hintTable[RHT_GC_ROLLING_GORON_AS_ADULT] = HintText::Exclude({
|
hintTable[RHT_GC_ROLLING_GORON_AS_ADULT] = HintText::Exclude({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"#comforting yourself# provides", /*french*/"se #réconforter soi-même# donne", /*spanish*/"#confrontarte a ti mismo# otorga"},
|
Text{"#comforting yourself# provides", /*french*/"se #réconforter soi-même# donne", /*spanish*/"#confrontarte a ti mismo# otorga"},
|
||||||
|
@ -2102,6 +2102,17 @@ void HintTable_Init_Item() {
|
|||||||
Text{"an Ocarina C Right Button", /*french*/"la Touche C-Droit de l'Ocarina", /*spanish*/"un botón C derecho de Ocarina"}}
|
Text{"an Ocarina C Right Button", /*french*/"la Touche C-Droit de l'Ocarina", /*spanish*/"un botón C derecho de Ocarina"}}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
hintTable[RHT_FISHING_POLE] = HintText::Item({
|
||||||
|
//obscure text
|
||||||
|
Text{"a fish-puller", /*french*/"(canne à pêche)", /*spanish*/"(caña de pescar)"},
|
||||||
|
}, {
|
||||||
|
//ambiguous text
|
||||||
|
Text{"the pond owner's property", /*french*/"(canne à pêche)", /*spanish*/"(caña de pescar)"},
|
||||||
|
},
|
||||||
|
//clear text
|
||||||
|
Text{"a fishing pole", /*french*/"canne à pêche", /*spanish*/"caña de pescar"}
|
||||||
|
);
|
||||||
|
|
||||||
hintTable[RHT_EPONA] = HintText::Item({
|
hintTable[RHT_EPONA] = HintText::Item({
|
||||||
//obscure text
|
//obscure text
|
||||||
Text{"a horse", /*french*/"un fidèle destrier", /*spanish*/"una yegua"},
|
Text{"a horse", /*french*/"un fidèle destrier", /*spanish*/"una yegua"},
|
||||||
|
@ -1105,6 +1105,7 @@ void CreateAllHints(){
|
|||||||
CreateSpecialItemHint(RG_PROGRESSIVE_HOOKSHOT, RH_DAMPES_DIARY, {RC_DAMPE_HINT}, RHT_DAMPE_DIARY01, RHT_DAMPE_DIARY02, (bool)ctx->GetOption(RSK_DAMPES_DIARY_HINT));
|
CreateSpecialItemHint(RG_PROGRESSIVE_HOOKSHOT, RH_DAMPES_DIARY, {RC_DAMPE_HINT}, RHT_DAMPE_DIARY01, RHT_DAMPE_DIARY02, (bool)ctx->GetOption(RSK_DAMPES_DIARY_HINT));
|
||||||
CreateSpecialItemHint(RG_GREG_RUPEE, RH_GREG_RUPEE, {RC_GREG_HINT}, RHT_GREG_HINT01, RHT_GREG_HINT02, (bool)ctx->GetOption(RSK_GREG_HINT));
|
CreateSpecialItemHint(RG_GREG_RUPEE, RH_GREG_RUPEE, {RC_GREG_HINT}, RHT_GREG_HINT01, RHT_GREG_HINT02, (bool)ctx->GetOption(RSK_GREG_HINT));
|
||||||
CreateSpecialItemHint(RG_PROGRESSIVE_MAGIC_METER, RH_SARIA, {RC_SARIA_SONG_HINT, RC_SONG_FROM_SARIA}, RHT_SARIA_TEXT01, RHT_SARIA_TEXT02, (bool)ctx->GetOption(RSK_SARIA_HINT));
|
CreateSpecialItemHint(RG_PROGRESSIVE_MAGIC_METER, RH_SARIA, {RC_SARIA_SONG_HINT, RC_SONG_FROM_SARIA}, RHT_SARIA_TEXT01, RHT_SARIA_TEXT02, (bool)ctx->GetOption(RSK_SARIA_HINT));
|
||||||
|
CreateSpecialItemHint(RG_FISHING_POLE, RH_FISHING_POLE, {RC_FISHING_POLE_HINT}, RHT_FISHING_POLE_HINT01, RHT_FISHING_POLE_HINT02, (bool)ctx->GetOption(RSK_FISHING_POLE_HINT));
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_MERCHANTS).Is(RO_SHUFFLE_MERCHANTS_ON_HINT)) {
|
if (ctx->GetOption(RSK_SHUFFLE_MERCHANTS).Is(RO_SHUFFLE_MERCHANTS_ON_HINT)) {
|
||||||
CreateMerchantsHints();
|
CreateMerchantsHints();
|
||||||
|
@ -574,6 +574,13 @@ static void PlaceVanillaCowMilk() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void PlaceVanillaOverworldFish() {
|
||||||
|
auto ctx = Rando::Context::GetInstance();
|
||||||
|
for (auto rc : Rando::StaticData::overworldFishLocations) {
|
||||||
|
ctx->PlaceItemInLocation(rc, RG_FISH, false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void SetScarceItemPool() {
|
static void SetScarceItemPool() {
|
||||||
ReplaceMaxItem(RG_PROGRESSIVE_BOMBCHUS, 3);
|
ReplaceMaxItem(RG_PROGRESSIVE_BOMBCHUS, 3);
|
||||||
ReplaceMaxItem(RG_BOMBCHU_5, 1);
|
ReplaceMaxItem(RG_BOMBCHU_5, 1);
|
||||||
@ -751,6 +758,40 @@ void GenerateItemPool() {
|
|||||||
PlaceVanillaCowMilk();
|
PlaceVanillaCowMilk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto fsMode = ctx->GetOption(RSK_FISHSANITY);
|
||||||
|
if (fsMode.IsNot(RO_FISHSANITY_OFF)) {
|
||||||
|
if (fsMode.Is(RO_FISHSANITY_POND) || fsMode.Is(RO_FISHSANITY_BOTH)) {
|
||||||
|
// 17 max child pond fish
|
||||||
|
uint8_t pondCt = ctx->GetOption(RSK_FISHSANITY_POND_COUNT).GetSelectedOptionIndex();
|
||||||
|
for (uint8_t i = 0; i < pondCt; i++) {
|
||||||
|
AddItemToMainPool(GetJunkItem());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx->GetOption(RSK_FISHSANITY_AGE_SPLIT)) {
|
||||||
|
// 16 max adult pond fish, have to reduce to 16 if every fish is enabled
|
||||||
|
if (pondCt > 16)
|
||||||
|
pondCt = 16;
|
||||||
|
for (uint8_t i = 0; i < pondCt; i++) {
|
||||||
|
AddItemToMainPool(GetJunkItem());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 9 grotto fish, 5 zora's domain fish
|
||||||
|
if (fsMode.Is(RO_FISHSANITY_OVERWORLD) || fsMode.Is(RO_FISHSANITY_BOTH)) {
|
||||||
|
for (uint8_t i = 0; i < Rando::StaticData::overworldFishLocations.size(); i++)
|
||||||
|
AddItemToMainPool(GetJunkItem());
|
||||||
|
} else {
|
||||||
|
PlaceVanillaOverworldFish();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
PlaceVanillaOverworldFish();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx->GetOption(RSK_SHUFFLE_FISHING_POLE)) {
|
||||||
|
AddItemToMainPool(RG_FISHING_POLE);
|
||||||
|
ctx->possibleIceTrapModels.push_back(RG_FISHING_POLE);
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_SHUFFLE_MAGIC_BEANS)) {
|
if (ctx->GetOption(RSK_SHUFFLE_MAGIC_BEANS)) {
|
||||||
AddItemToMainPool(RG_MAGIC_BEAN_PACK);
|
AddItemToMainPool(RG_MAGIC_BEAN_PACK);
|
||||||
if (ctx->GetOption(RSK_ITEM_POOL).Is(RO_ITEM_POOL_PLENTIFUL)) {
|
if (ctx->GetOption(RSK_ITEM_POOL).Is(RO_ITEM_POOL_PLENTIFUL)) {
|
||||||
@ -971,6 +1012,10 @@ void GenerateItemPool() {
|
|||||||
AddItemToPool(PendingJunkPool, RG_GERUDO_MEMBERSHIP_CARD);
|
AddItemToPool(PendingJunkPool, RG_GERUDO_MEMBERSHIP_CARD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ctx->GetOption(RSK_SHUFFLE_FISHING_POLE)) {
|
||||||
|
AddItemToPool(PendingJunkPool, RG_FISHING_POLE);
|
||||||
|
}
|
||||||
|
|
||||||
//Plentiful small keys
|
//Plentiful small keys
|
||||||
if (ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_ANYWHERE) || ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_ANY_DUNGEON) || ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_OVERWORLD)) {
|
if (ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_ANYWHERE) || ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_ANY_DUNGEON) || ctx->GetOption(RSK_KEYSANITY).Is(RO_DUNGEON_ITEM_LOC_OVERWORLD)) {
|
||||||
if (ctx->GetDungeon(Rando::BOTTOM_OF_THE_WELL)->HasKeyRing()) {
|
if (ctx->GetDungeon(Rando::BOTTOM_OF_THE_WELL)->HasKeyRing()) {
|
||||||
|
@ -62,6 +62,7 @@ void AreaTable_Init_DeathMountain() {
|
|||||||
areaTable[RR_DMT_STORMS_GROTTO] = Area("DMT Storms Grotto", "DMT Storms Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_DMT_STORMS_GROTTO] = Area("DMT Storms Grotto", "DMT Storms Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_DMT_STORMS_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_DMT_STORMS_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_DMT_STORMS_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_DMT_STORMS_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_DMT_STORMS_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
@ -241,6 +242,7 @@ void AreaTable_Init_DeathMountain() {
|
|||||||
areaTable[RR_DMC_UPPER_GROTTO] = Area("DMC Upper Grotto", "DMC Upper Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_DMC_UPPER_GROTTO] = Area("DMC Upper Grotto", "DMC Upper Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_DMC_UPPER_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_DMC_UPPER_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_DMC_UPPER_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_DMC_UPPER_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_DMC_UPPER_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
|
@ -33,6 +33,7 @@ void AreaTable_Init_HyruleField() {
|
|||||||
areaTable[RR_HF_SOUTHEAST_GROTTO] = Area("HF Southeast Grotto", "HF Southeast Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_HF_SOUTHEAST_GROTTO] = Area("HF Southeast Grotto", "HF Southeast Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_HF_SOUTHEAST_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_HF_SOUTHEAST_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_HF_SOUTHEAST_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_HF_SOUTHEAST_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_HF_SOUTHEAST_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
@ -42,6 +43,7 @@ void AreaTable_Init_HyruleField() {
|
|||||||
areaTable[RR_HF_OPEN_GROTTO] = Area("HF Open Grotto", "HF Open Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_HF_OPEN_GROTTO] = Area("HF Open Grotto", "HF Open Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_HF_OPEN_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_HF_OPEN_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_HF_OPEN_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_HF_OPEN_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_HF_OPEN_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
@ -69,6 +71,7 @@ void AreaTable_Init_HyruleField() {
|
|||||||
areaTable[RR_HF_NEAR_MARKET_GROTTO] = Area("HF Near Market Grotto", "HF Near Market Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_HF_NEAR_MARKET_GROTTO] = Area("HF Near Market Grotto", "HF Near Market Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_HF_NEAR_MARKET_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_HF_NEAR_MARKET_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_HF_NEAR_MARKET_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_HF_NEAR_MARKET_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_HF_NEAR_MARKET_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
@ -154,10 +157,45 @@ void AreaTable_Init_HyruleField() {
|
|||||||
Entrance(RR_LAKE_HYLIA, {[]{return true;}}),
|
Entrance(RR_LAKE_HYLIA, {[]{return true;}}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// TODO: should some of these helpers be done via events instead?
|
||||||
areaTable[RR_LH_FISHING_HOLE] = Area("LH Fishing Hole", "LH Fishing Hole", RA_NONE, DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_LH_FISHING_HOLE] = Area("LH Fishing Hole", "LH Fishing Hole", RA_NONE, DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_LH_CHILD_FISHING, {[]{return logic->IsChild;}}),
|
LocationAccess(RC_LH_CHILD_FISHING, {[]{return logic->CanFish && logic->IsChild;}}),
|
||||||
LocationAccess(RC_LH_ADULT_FISHING, {[]{return logic->IsAdult;}}),
|
LocationAccess(RC_LH_CHILD_FISH_1, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_2, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_3, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_4, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_5, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_6, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_7, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_8, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_9, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_10, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_11, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_12, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_13, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_14, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_FISH_15, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_LOACH_1, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_CHILD_LOACH_2, {[]{return logic->CanGetChildFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISHING, {[]{return logic->CanFish && logic->IsAdult;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_1, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_2, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_3, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_4, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_5, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_6, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_7, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_8, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_9, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_10, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_11, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_12, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_13, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_14, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_FISH_15, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_LH_ADULT_LOACH, {[]{return logic->CanGetAdultFish;}}),
|
||||||
|
LocationAccess(RC_FISHING_POLE_HINT,{[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_LH_FISHING_ISLAND, {[]{return true;}}),
|
Entrance(RR_LH_FISHING_ISLAND, {[]{return true;}}),
|
||||||
|
@ -197,6 +197,7 @@ void AreaTable_Init_Kakariko() {
|
|||||||
areaTable[RR_KAK_OPEN_GROTTO] = Area("Kak Open Grotto", "Kak Open Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_KAK_OPEN_GROTTO] = Area("Kak Open Grotto", "Kak Open Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_KAK_OPEN_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_KAK_OPEN_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_KAK_OPEN_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_KAK_OPEN_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_KAK_OPEN_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
|
@ -97,6 +97,7 @@ void AreaTable_Init_LostWoods() {
|
|||||||
areaTable[RR_KF_STORMS_GROTTO] = Area("KF Storms Grotto", "KF Storms Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_KF_STORMS_GROTTO] = Area("KF Storms Grotto", "KF Storms Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_KF_STORMS_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_KF_STORMS_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_KF_STORMS_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_KF_STORMS_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_KF_STORMS_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
@ -164,6 +165,7 @@ void AreaTable_Init_LostWoods() {
|
|||||||
areaTable[RR_LW_NEAR_SHORTCUTS_GROTTO] = Area("LW Near Shortcuts Grotto", "LW Near Shortcuts Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_LW_NEAR_SHORTCUTS_GROTTO] = Area("LW Near Shortcuts Grotto", "LW Near Shortcuts Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_LW_NEAR_SHORTCUTS_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_LW_NEAR_SHORTCUTS_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_LW_NEAR_SHORTCUTS_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_LW_NEAR_SHORTCUTS_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
|
@ -55,6 +55,7 @@ void AreaTable_Init_ZorasDomain() {
|
|||||||
areaTable[RR_ZR_OPEN_GROTTO] = Area("ZR Open Grotto", "ZR Open Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
areaTable[RR_ZR_OPEN_GROTTO] = Area("ZR Open Grotto", "ZR Open Grotto", RA_NONE, NO_DAY_NIGHT_CYCLE, grottoEvents, {
|
||||||
//Locations
|
//Locations
|
||||||
LocationAccess(RC_ZR_OPEN_GROTTO_CHEST, {[]{return true;}}),
|
LocationAccess(RC_ZR_OPEN_GROTTO_CHEST, {[]{return true;}}),
|
||||||
|
LocationAccess(RC_ZR_OPEN_GROTTO_FISH, {[]{return logic->HasBottle;}}),
|
||||||
LocationAccess(RC_ZR_OPEN_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_ZR_OPEN_GROTTO_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
@ -94,6 +95,11 @@ void AreaTable_Init_ZorasDomain() {
|
|||||||
LocationAccess(RC_ZD_KING_ZORA_THAWED, {[]{return logic->KingZoraThawed;}}),
|
LocationAccess(RC_ZD_KING_ZORA_THAWED, {[]{return logic->KingZoraThawed;}}),
|
||||||
LocationAccess(RC_ZD_TRADE_PRESCRIPTION, {[]{return logic->KingZoraThawed && logic->Prescription;}}),
|
LocationAccess(RC_ZD_TRADE_PRESCRIPTION, {[]{return logic->KingZoraThawed && logic->Prescription;}}),
|
||||||
LocationAccess(RC_ZD_GS_FROZEN_WATERFALL, {[]{return logic->IsAdult && logic->AtNight && (logic->HookshotOrBoomerang || logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->Bow || (logic->MagicMeter && (logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_BIGGORON_SWORD))) || (randoCtx->GetTrickOption(RT_ZD_GS) && logic->CanJumpslash)) && logic->CanGetNightTimeGS;}}),
|
LocationAccess(RC_ZD_GS_FROZEN_WATERFALL, {[]{return logic->IsAdult && logic->AtNight && (logic->HookshotOrBoomerang || logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->Bow || (logic->MagicMeter && (logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_BIGGORON_SWORD))) || (randoCtx->GetTrickOption(RT_ZD_GS) && logic->CanJumpslash)) && logic->CanGetNightTimeGS;}}),
|
||||||
|
LocationAccess(RC_ZD_FISH_1, {[]{return logic->IsChild && logic->HasBottle;}}),
|
||||||
|
LocationAccess(RC_ZD_FISH_2, {[]{return logic->IsChild && logic->HasBottle;}}),
|
||||||
|
LocationAccess(RC_ZD_FISH_3, {[]{return logic->IsChild && logic->HasBottle;}}),
|
||||||
|
LocationAccess(RC_ZD_FISH_4, {[]{return logic->IsChild && logic->HasBottle;}}),
|
||||||
|
LocationAccess(RC_ZD_FISH_5, {[]{return logic->IsChild && logic->HasBottle;}}),
|
||||||
LocationAccess(RC_ZD_GOSSIP_STONE, {[]{return true;}}),
|
LocationAccess(RC_ZD_GOSSIP_STONE, {[]{return true;}}),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
std::vector<ItemAndPrice> NonShopItems = {};
|
std::vector<ItemAndPrice> NonShopItems = {};
|
||||||
|
|
||||||
static std::array<std::vector<Text>, 0xF0> trickNameTable; // Table of trick names for ice traps
|
static std::array<std::vector<Text>, 0xF1> trickNameTable; // Table of trick names for ice traps
|
||||||
bool initTrickNames = false; //Indicates if trick ice trap names have been initialized yet
|
bool initTrickNames = false; //Indicates if trick ice trap names have been initialized yet
|
||||||
|
|
||||||
//Set vanilla shop item locations before potentially shuffling
|
//Set vanilla shop item locations before potentially shuffling
|
||||||
@ -739,6 +739,10 @@ void InitTrickNames() {
|
|||||||
Text{"Pure Evil", "", ""},
|
Text{"Pure Evil", "", ""},
|
||||||
Text{"Ganon's Ghost", "", ""},
|
Text{"Ganon's Ghost", "", ""},
|
||||||
Text{"Pork", "", ""}};
|
Text{"Pork", "", ""}};
|
||||||
|
trickNameTable[RG_FISHING_POLE] = {
|
||||||
|
Text{"Fish Tickler", "Fish Tickler", "Fish Tickler"},
|
||||||
|
Text{"Floating Lure", "Floating Lure", "Floating Lure"},
|
||||||
|
Text{"Fishing Reel", "Fishing Reel", "Fishing Reel"}};
|
||||||
|
|
||||||
trickNameTable[RG_OCARINA_A_BUTTON] = {
|
trickNameTable[RG_OCARINA_A_BUTTON] = {
|
||||||
Text{"Ocarina J Button", "", ""},
|
Text{"Ocarina J Button", "", ""},
|
||||||
|
@ -622,6 +622,11 @@ static void WriteHints() {
|
|||||||
jsonData["sariaHintLoc"] = Rando::StaticData::GetLocation(ctx->GetHint(RH_SARIA)->GetHintedLocation())->GetName();
|
jsonData["sariaHintLoc"] = Rando::StaticData::GetLocation(ctx->GetHint(RH_SARIA)->GetHintedLocation())->GetName();
|
||||||
jsonData["sariaRegion"] = ::Hint(ctx->GetHint(RH_SARIA)->GetHintedArea()).GetText().GetEnglish();
|
jsonData["sariaRegion"] = ::Hint(ctx->GetHint(RH_SARIA)->GetHintedArea()).GetText().GetEnglish();
|
||||||
}
|
}
|
||||||
|
if (ctx->GetOption(RSK_FISHING_POLE_HINT)) {
|
||||||
|
jsonData["fishingPoleText"] = ctx->GetHint(RH_FISHING_POLE)->GetText().GetForLanguage(language);
|
||||||
|
jsonData["fishingPoleHintLoc"] = Rando::StaticData::GetLocation(ctx->GetHint(RH_FISHING_POLE)->GetHintedLocation())->GetName();
|
||||||
|
jsonData["fishingPoleRegion"] = ::Hint(ctx->GetHint(RH_FISHING_POLE)->GetHintedArea()).GetText().GetEnglish();
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx->GetOption(RSK_GOSSIP_STONE_HINTS).Is(RO_GOSSIP_STONES_NONE)) {
|
if (ctx->GetOption(RSK_GOSSIP_STONE_HINTS).Is(RO_GOSSIP_STONES_NONE)) {
|
||||||
return;
|
return;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include "../randomizerTypes.h"
|
||||||
|
|
||||||
using RandomizerHash = std::array<std::string, 5>;
|
using RandomizerHash = std::array<std::string, 5>;
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ typedef enum {
|
|||||||
SPOILER_CHK_EVENT_CHK_INF,
|
SPOILER_CHK_EVENT_CHK_INF,
|
||||||
SPOILER_CHK_INF_TABLE,
|
SPOILER_CHK_INF_TABLE,
|
||||||
SPOILER_CHK_COW,
|
SPOILER_CHK_COW,
|
||||||
|
SPOILER_CHK_FISH,
|
||||||
SPOILER_CHK_MINIGAME,
|
SPOILER_CHK_MINIGAME,
|
||||||
SPOILER_CHK_SCRUB,
|
SPOILER_CHK_SCRUB,
|
||||||
SPOILER_CHK_GERUDO_MEMBERSHIP_CARD,
|
SPOILER_CHK_GERUDO_MEMBERSHIP_CARD,
|
||||||
@ -74,7 +76,7 @@ typedef enum {
|
|||||||
} SpoilerItemRevealType;
|
} SpoilerItemRevealType;
|
||||||
|
|
||||||
#define SPOILER_SPHERES_MAX 50
|
#define SPOILER_SPHERES_MAX 50
|
||||||
#define SPOILER_ITEMS_MAX 512
|
#define SPOILER_ITEMS_MAX RC_MAX
|
||||||
#define SPOILER_STRING_DATA_SIZE 16384
|
#define SPOILER_STRING_DATA_SIZE 16384
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "entrance.h"
|
#include "entrance.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "rando_hash.h"
|
#include "rando_hash.h"
|
||||||
|
#include "fishsanity.h"
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <spdlog/spdlog.h>
|
#include <spdlog/spdlog.h>
|
||||||
@ -91,6 +92,7 @@ Context::Context() {
|
|||||||
mLogic = std::make_shared<Logic>();
|
mLogic = std::make_shared<Logic>();
|
||||||
mTrials = std::make_shared<Trials>();
|
mTrials = std::make_shared<Trials>();
|
||||||
mSettings = std::make_shared<Settings>();
|
mSettings = std::make_shared<Settings>();
|
||||||
|
mFishsanity = std::make_shared<Fishsanity>();
|
||||||
for (auto& location : StaticData::GetLocationTable()) {
|
for (auto& location : StaticData::GetLocationTable()) {
|
||||||
mSpoilerfileCheckNameToEnum[location.GetName()] = location.GetRandomizerCheck();
|
mSpoilerfileCheckNameToEnum[location.GetName()] = location.GetRandomizerCheck();
|
||||||
}
|
}
|
||||||
@ -204,6 +206,10 @@ void Context::GenerateLocationPool() {
|
|||||||
}
|
}
|
||||||
AddLocations(StaticData::overworldLocations);
|
AddLocations(StaticData::overworldLocations);
|
||||||
|
|
||||||
|
if (mSettings->GetOption(RSK_FISHSANITY).IsNot(RO_FISHSANITY_OFF)) {
|
||||||
|
AddLocations(mFishsanity->GetFishsanityLocations().first);
|
||||||
|
}
|
||||||
|
|
||||||
for (const auto dungeon : mDungeons->GetDungeonList()) {
|
for (const auto dungeon : mDungeons->GetDungeonList()) {
|
||||||
AddLocations(dungeon->GetDungeonLocations());
|
AddLocations(dungeon->GetDungeonLocations());
|
||||||
}
|
}
|
||||||
@ -477,6 +483,14 @@ void Context::ParseHintJson(nlohmann::json spoilerFileJson) {
|
|||||||
AddHint(RH_SARIA, Text(sariaText), sariaHintLoc, HINT_TYPE_STATIC, "Static", mSpoilerfileAreaNameToEnum[sariaRegion]);
|
AddHint(RH_SARIA, Text(sariaText), sariaHintLoc, HINT_TYPE_STATIC, "Static", mSpoilerfileAreaNameToEnum[sariaRegion]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fishing Pole Hint
|
||||||
|
if(spoilerFileJson.contains("fishingPoleText")) {
|
||||||
|
std::string fishingPoleText = spoilerFileJson["fishingPoleText"].get<std::string>();
|
||||||
|
std::string fishingPoleRegion = spoilerFileJson["fishingPoleRegion"].get<std::string>();
|
||||||
|
RandomizerCheck fishingPoleHintLoc = mSpoilerfileCheckNameToEnum[spoilerFileJson["fishingPoleHintLoc"].get<std::string>()];
|
||||||
|
AddHint(RH_FISHING_POLE, Text(fishingPoleText), fishingPoleHintLoc, HINT_TYPE_STATIC, "Static", mSpoilerfileAreaNameToEnum[fishingPoleRegion]);
|
||||||
|
}
|
||||||
|
|
||||||
// Warp Songs
|
// Warp Songs
|
||||||
if (spoilerFileJson.contains("warpMinuetText")) {
|
if (spoilerFileJson.contains("warpMinuetText")) {
|
||||||
std::string warpMinuetText = spoilerFileJson["warpMinuetText"].get<std::string>(); //RANDOTODO fall back for if location is used
|
std::string warpMinuetText = spoilerFileJson["warpMinuetText"].get<std::string>(); //RANDOTODO fall back for if location is used
|
||||||
@ -529,6 +543,10 @@ std::shared_ptr<Dungeons> Context::GetDungeons() {
|
|||||||
return mDungeons;
|
return mDungeons;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<Fishsanity> Context::GetFishsanity() {
|
||||||
|
return mFishsanity;
|
||||||
|
}
|
||||||
|
|
||||||
DungeonInfo* Context::GetDungeon(size_t key) const {
|
DungeonInfo* Context::GetDungeon(size_t key) const {
|
||||||
return mDungeons->GetDungeon(static_cast<DungeonKey>(key));
|
return mDungeons->GetDungeon(static_cast<DungeonKey>(key));
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "item_override.h"
|
#include "item_override.h"
|
||||||
#include "3drando/text.hpp"
|
#include "3drando/text.hpp"
|
||||||
#include "hint.h"
|
#include "hint.h"
|
||||||
|
#include "fishsanity.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <array>
|
#include <array>
|
||||||
@ -66,6 +67,7 @@ class Context {
|
|||||||
std::shared_ptr<Settings> GetSettings();
|
std::shared_ptr<Settings> GetSettings();
|
||||||
std::shared_ptr<EntranceShuffler> GetEntranceShuffler();
|
std::shared_ptr<EntranceShuffler> GetEntranceShuffler();
|
||||||
std::shared_ptr<Dungeons> GetDungeons();
|
std::shared_ptr<Dungeons> GetDungeons();
|
||||||
|
std::shared_ptr<Fishsanity> GetFishsanity();
|
||||||
DungeonInfo* GetDungeon(size_t key) const;
|
DungeonInfo* GetDungeon(size_t key) const;
|
||||||
std::shared_ptr<Logic> GetLogic();
|
std::shared_ptr<Logic> GetLogic();
|
||||||
void ResetLogic();
|
void ResetLogic();
|
||||||
@ -111,6 +113,7 @@ class Context {
|
|||||||
std::shared_ptr<Dungeons> mDungeons;
|
std::shared_ptr<Dungeons> mDungeons;
|
||||||
std::shared_ptr<Logic> mLogic;
|
std::shared_ptr<Logic> mLogic;
|
||||||
std::shared_ptr<Trials> mTrials;
|
std::shared_ptr<Trials> mTrials;
|
||||||
|
std::shared_ptr<Fishsanity> mFishsanity;
|
||||||
bool mSeedGenerated = false;
|
bool mSeedGenerated = false;
|
||||||
bool mSpoilerLoaded = false;
|
bool mSpoilerLoaded = false;
|
||||||
bool mPlandoLoaded = false;
|
bool mPlandoLoaded = false;
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "objects/object_gi_bosskey/object_gi_bosskey.h"
|
#include "objects/object_gi_bosskey/object_gi_bosskey.h"
|
||||||
#include "objects/object_gi_hearts/object_gi_hearts.h"
|
#include "objects/object_gi_hearts/object_gi_hearts.h"
|
||||||
#include "objects/object_gi_fire/object_gi_fire.h"
|
#include "objects/object_gi_fire/object_gi_fire.h"
|
||||||
|
#include "objects/object_fish/object_fish.h"
|
||||||
#include "objects/object_toki_objects/object_toki_objects.h"
|
#include "objects/object_toki_objects/object_toki_objects.h"
|
||||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||||
#include "soh_assets.h"
|
#include "soh_assets.h"
|
||||||
@ -391,3 +392,52 @@ extern "C" void Randomizer_DrawOcarinaButton(PlayState* play, GetItemEntry* getI
|
|||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" void Randomizer_DrawFishingPoleGI(PlayState* play, GetItemEntry* getItemEntry) {
|
||||||
|
Vec3f pos;
|
||||||
|
OPEN_DISPS(play->state.gfxCtx);
|
||||||
|
|
||||||
|
// Draw rod
|
||||||
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
|
Matrix_Scale(0.2, 0.2, 0.2, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingPoleGiDL);
|
||||||
|
|
||||||
|
// Draw lure
|
||||||
|
Matrix_Push();
|
||||||
|
Matrix_Scale(5.0f, 5.0f, 5.0f, MTXMODE_APPLY);
|
||||||
|
pos = { 0.0f, -25.5f, -4.0f };
|
||||||
|
Matrix_Translate(pos.x, pos.y, pos.z, MTXMODE_APPLY);
|
||||||
|
Matrix_RotateZ(-M_PI_2, MTXMODE_APPLY);
|
||||||
|
Matrix_RotateY(-M_PI_2 - 0.2f, MTXMODE_APPLY);
|
||||||
|
Matrix_Scale(0.006f, 0.006f, 0.006f, MTXMODE_APPLY);
|
||||||
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureFloatDL);
|
||||||
|
|
||||||
|
// Draw hooks
|
||||||
|
Matrix_RotateY(0.2f, MTXMODE_APPLY);
|
||||||
|
Matrix_Translate(0.0f, 0.0f, -300.0f, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||||
|
Matrix_RotateZ(M_PI_2, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||||
|
|
||||||
|
Matrix_Translate(0.0f, -2200.0f, 700.0f, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||||
|
Matrix_RotateZ(M_PI / 2, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||||
|
|
||||||
|
Matrix_Pop();
|
||||||
|
|
||||||
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
}
|
@ -18,6 +18,7 @@ void Randomizer_DrawMasterSword(PlayState* play, GetItemEntry* getItemEntry);
|
|||||||
void Randomizer_DrawTriforcePiece(PlayState* play, GetItemEntry getItemEntry);
|
void Randomizer_DrawTriforcePiece(PlayState* play, GetItemEntry getItemEntry);
|
||||||
void Randomizer_DrawTriforcePieceGI(PlayState* play, GetItemEntry getItemEntry);
|
void Randomizer_DrawTriforcePieceGI(PlayState* play, GetItemEntry getItemEntry);
|
||||||
void Randomizer_DrawOcarinaButton(PlayState* play, GetItemEntry* getItemEntry);
|
void Randomizer_DrawOcarinaButton(PlayState* play, GetItemEntry* getItemEntry);
|
||||||
|
void Randomizer_DrawFishingPoleGI(PlayState* play, GetItemEntry* getItemEntry);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
412
soh/soh/Enhancements/randomizer/fishsanity.cpp
Normal file
412
soh/soh/Enhancements/randomizer/fishsanity.cpp
Normal file
@ -0,0 +1,412 @@
|
|||||||
|
#include "3drando/pool_functions.hpp"
|
||||||
|
#include "../../OTRGlobals.h"
|
||||||
|
#include "fishsanity.h"
|
||||||
|
#include "variables.h"
|
||||||
|
#include "functions.h"
|
||||||
|
#include "macros.h"
|
||||||
|
#include <consolevariablebridge.h>
|
||||||
|
|
||||||
|
#define FSi OTRGlobals::Instance->gRandoContext->GetFishsanity()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Parallel list of pond fish checks for both ages
|
||||||
|
*/
|
||||||
|
std::array<std::pair<RandomizerCheck, RandomizerCheck>, 17> Rando::StaticData::randomizerFishingPondFish = {
|
||||||
|
{ /* Child Check Adult Check */
|
||||||
|
{ RC_LH_CHILD_FISH_1, RC_LH_ADULT_FISH_1 },
|
||||||
|
{ RC_LH_CHILD_FISH_2, RC_LH_ADULT_FISH_2 },
|
||||||
|
{ RC_LH_CHILD_FISH_3, RC_LH_ADULT_FISH_3 },
|
||||||
|
{ RC_LH_CHILD_FISH_4, RC_LH_ADULT_FISH_4 },
|
||||||
|
{ RC_LH_CHILD_FISH_5, RC_LH_ADULT_FISH_5 },
|
||||||
|
{ RC_LH_CHILD_FISH_6, RC_LH_ADULT_FISH_6 },
|
||||||
|
{ RC_LH_CHILD_FISH_7, RC_LH_ADULT_FISH_7 },
|
||||||
|
{ RC_LH_CHILD_FISH_8, RC_LH_ADULT_FISH_8 },
|
||||||
|
{ RC_LH_CHILD_FISH_9, RC_LH_ADULT_FISH_9 },
|
||||||
|
{ RC_LH_CHILD_FISH_10, RC_LH_ADULT_FISH_10 },
|
||||||
|
{ RC_LH_CHILD_FISH_11, RC_LH_ADULT_FISH_11 },
|
||||||
|
{ RC_LH_CHILD_FISH_12, RC_LH_ADULT_FISH_12 },
|
||||||
|
{ RC_LH_CHILD_FISH_13, RC_LH_ADULT_FISH_13 },
|
||||||
|
{ RC_LH_CHILD_FISH_14, RC_LH_ADULT_FISH_14 },
|
||||||
|
{ RC_LH_CHILD_FISH_15, RC_LH_ADULT_FISH_15 },
|
||||||
|
{ RC_LH_CHILD_LOACH_1, RC_LH_ADULT_LOACH },
|
||||||
|
{ RC_LH_CHILD_LOACH_2, RC_UNKNOWN_CHECK } }
|
||||||
|
};
|
||||||
|
|
||||||
|
std::unordered_map<int8_t, RandomizerCheck> Rando::StaticData::randomizerGrottoFishMap = {
|
||||||
|
{ 0x2C, RC_KF_STORMS_GROTTO_FISH }, { 0x14, RC_LW_NEAR_SHORTCUTS_GROTTO_FISH },
|
||||||
|
{ 0x22, RC_HF_SOUTHEAST_GROTTO_FISH }, { 0x03, RC_HF_OPEN_GROTTO_FISH },
|
||||||
|
{ 0x00, RC_HF_NEAR_MARKET_GROTTO_FISH }, { 0x28, RC_KAK_OPEN_GROTTO_FISH },
|
||||||
|
{ 0x57, RC_DMT_STORMS_GROTTO_FISH }, { 0x7A, RC_DMC_UPPER_GROTTO_FISH },
|
||||||
|
{ 0x29, RC_ZR_OPEN_GROTTO_FISH }
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace Rando {
|
||||||
|
const FishIdentity Fishsanity::defaultIdentity = { RAND_INF_MAX, RC_UNKNOWN_CHECK };
|
||||||
|
bool Fishsanity::fishsanityHelpersInit = false;
|
||||||
|
std::unordered_map<RandomizerCheck, LinkAge> Fishsanity::pondFishAgeMap;
|
||||||
|
std::vector<RandomizerCheck> Fishsanity::childPondFish;
|
||||||
|
std::vector<RandomizerCheck> Fishsanity::adultPondFish;
|
||||||
|
|
||||||
|
Fishsanity::Fishsanity() {
|
||||||
|
InitializeHelpers();
|
||||||
|
}
|
||||||
|
|
||||||
|
Fishsanity::~Fishsanity() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Fishsanity::GetFishLocationIncluded(Rando::Location* loc,
|
||||||
|
FishsanityOptionsSource optionsSource) {
|
||||||
|
auto [mode, numFish, ageSplit] = GetOptions(optionsSource);
|
||||||
|
|
||||||
|
if (loc->GetRCType() != RCTYPE_FISH || mode == RO_FISHSANITY_OFF)
|
||||||
|
return false;
|
||||||
|
RandomizerCheck rc = loc->GetRandomizerCheck();
|
||||||
|
// Are pond fish enabled, and is this a pond fish location?
|
||||||
|
if (mode != RO_FISHSANITY_OVERWORLD && numFish > 0 && loc->GetScene() == SCENE_FISHING_POND &&
|
||||||
|
loc->GetActorID() == ACTOR_FISHING) {
|
||||||
|
// Is this a child fish location? If so, is it within the defined number of pond fish checks?
|
||||||
|
if (rc >= RC_LH_CHILD_FISH_1 && rc <= RC_LH_CHILD_LOACH_2 && numFish > (loc->GetActorParams() - 100))
|
||||||
|
return true;
|
||||||
|
// Are adult fish available, and is this an adult fish location? If so, is it within the defined number of pond
|
||||||
|
// fish checks?
|
||||||
|
if (ageSplit && rc >= RC_LH_ADULT_FISH_1 && rc <= RC_LH_ADULT_LOACH && numFish > (loc->GetActorParams() - 100))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Are overworld fish enabled, and is this an overworld fish location?
|
||||||
|
if (mode != RO_FISHSANITY_POND && (loc->GetScene() == SCENE_GROTTOS || loc->GetScene() == SCENE_ZORAS_DOMAIN)
|
||||||
|
&& loc->GetActorID() == ACTOR_EN_FISH && (loc->GetActorParams() == 1 || loc->GetActorParams() < 0)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Must not be an included fish location!
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::pair<std::vector<RandomizerCheck>, std::vector<RandomizerCheck>>
|
||||||
|
Fishsanity::GetFishingPondLocations(FishsanityOptionsSource optionsSource) {
|
||||||
|
auto [mode, numFish, ageSplit] = GetOptions(optionsSource);
|
||||||
|
std::vector<RandomizerCheck> activeFish;
|
||||||
|
std::vector<RandomizerCheck> remainingFish;
|
||||||
|
|
||||||
|
// Fishsanity_InitializeHelpers();
|
||||||
|
remainingFish.insert(remainingFish.end(), Rando::StaticData::pondFishLocations.begin(),
|
||||||
|
Rando::StaticData::pondFishLocations.end());
|
||||||
|
|
||||||
|
// No pond fish shuffled
|
||||||
|
if (numFish == 0) {
|
||||||
|
return std::make_pair(activeFish, remainingFish);
|
||||||
|
}
|
||||||
|
// Every pond fish is shuffled, so we can save some time
|
||||||
|
if (numFish > 16) {
|
||||||
|
// Child and adult pond fish are both shuffled, set activeFish to remainingFish and return an empty vector for
|
||||||
|
// inactive fish.
|
||||||
|
if (ageSplit) {
|
||||||
|
return std::make_pair(remainingFish, activeFish);
|
||||||
|
}
|
||||||
|
// Activate all child fish only
|
||||||
|
activeFish = FilterAndEraseFromPool(
|
||||||
|
remainingFish, [](const RandomizerCheck loc) { return pondFishAgeMap[loc] == LINK_AGE_CHILD; });
|
||||||
|
return std::make_pair(activeFish, remainingFish);
|
||||||
|
}
|
||||||
|
// Only some pond fish are shuffled, so we have to only activate the requested number.
|
||||||
|
activeFish.insert(activeFish.end(), childPondFish.begin(), childPondFish.begin() + numFish);
|
||||||
|
// If pond is split, also add the requested number of adult fish.
|
||||||
|
if (ageSplit) {
|
||||||
|
activeFish.insert(activeFish.end(), adultPondFish.begin(),
|
||||||
|
adultPondFish.begin() + std::min<uint8_t>(numFish, 16));
|
||||||
|
}
|
||||||
|
// NOTE: This only works because we can assume activeFish is already sorted; changes that break this assumption will
|
||||||
|
// also break this
|
||||||
|
FilterAndEraseFromPool(remainingFish,
|
||||||
|
[&](uint32_t loc) { return std::binary_search(activeFish.begin(), activeFish.end(), loc); });
|
||||||
|
|
||||||
|
return std::make_pair(activeFish, remainingFish);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::pair<std::vector<RandomizerCheck>, std::vector<RandomizerCheck>>
|
||||||
|
Fishsanity::GetFishsanityLocations(FishsanityOptionsSource optionsSource) {
|
||||||
|
auto [mode, numFish, ageSplit] = GetOptions(optionsSource);
|
||||||
|
std::vector<RandomizerCheck> activeFish;
|
||||||
|
std::vector<RandomizerCheck> remainingFish;
|
||||||
|
|
||||||
|
// Add pond fish
|
||||||
|
if (mode == RO_FISHSANITY_POND || mode == RO_FISHSANITY_BOTH) {
|
||||||
|
auto pondLocations = GetFishingPondLocations(optionsSource);
|
||||||
|
activeFish.insert(activeFish.end(), pondLocations.first.begin(), pondLocations.first.end());
|
||||||
|
remainingFish.insert(remainingFish.end(), pondLocations.second.begin(), pondLocations.second.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add overworld fish
|
||||||
|
if (mode == RO_FISHSANITY_OVERWORLD || mode == RO_FISHSANITY_BOTH) {
|
||||||
|
activeFish.insert(activeFish.end(), Rando::StaticData::overworldFishLocations.begin(),
|
||||||
|
Rando::StaticData::overworldFishLocations.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::make_pair(activeFish, remainingFish);
|
||||||
|
}
|
||||||
|
|
||||||
|
FishIdentity Fishsanity::IdentifyPondFish(u8 fishParams) {
|
||||||
|
auto [mode, pondCount, ageSplit] = GetOptions();
|
||||||
|
FishIdentity identity = defaultIdentity;
|
||||||
|
|
||||||
|
if (!GetPondFishShuffled()) {
|
||||||
|
return identity;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pondCount > 16) {
|
||||||
|
identity = GetPondFish(fishParams, IsAdultPond());
|
||||||
|
} else {
|
||||||
|
identity = LINK_IS_ADULT ? mCurrPondFish.second : mCurrPondFish.first;
|
||||||
|
}
|
||||||
|
|
||||||
|
return identity;
|
||||||
|
}
|
||||||
|
|
||||||
|
FishsanityPondOptions Fishsanity::GetOptions(FishsanityOptionsSource optionsSource) {
|
||||||
|
FishsanityPondOptions options{};
|
||||||
|
switch (optionsSource) {
|
||||||
|
// Used in check tracker
|
||||||
|
case FSO_SOURCE_CVARS:
|
||||||
|
options.mode = CVarGetInteger("gRandomizeFishsanity", RO_FISHSANITY_OFF);
|
||||||
|
options.numFish = CVarGetInteger("gRandomizeFishsanityPondCount", 0);
|
||||||
|
options.ageSplit = CVarGetInteger("gRandomizeFishsanityAgeSplit", 0) == 1;
|
||||||
|
break;
|
||||||
|
case FSO_SOURCE_RANDO:
|
||||||
|
default:
|
||||||
|
options.mode = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY);
|
||||||
|
options.numFish = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_POND_COUNT);
|
||||||
|
options.ageSplit = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_AGE_SPLIT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fishsanity::UpdateCurrentPondFish() {
|
||||||
|
auto [mode, pondCount, ageSplit] = GetOptions();
|
||||||
|
mCurrPondFish = std::pair<FishIdentity, FishIdentity>();
|
||||||
|
mCurrPondFish.first = defaultIdentity;
|
||||||
|
mCurrPondFish.second = defaultIdentity;
|
||||||
|
|
||||||
|
// Initialize mCurrPondFish if we're shuffling pond fish, but if all fish are shuffled, we don't need to use this.
|
||||||
|
if ((mode == RO_FISHSANITY_BOTH || mode == RO_FISHSANITY_POND) && pondCount < 17) {
|
||||||
|
// find the first inf that isn't set yet for each age
|
||||||
|
// but don't go past the max number
|
||||||
|
std::pair<RandomizerCheck, RandomizerCheck> tableEntry;
|
||||||
|
for (s16 i = 0, params = 100; i < pondCount; i++, params++) {
|
||||||
|
tableEntry = Rando::StaticData::randomizerFishingPondFish[i];
|
||||||
|
if (!Flags_GetRandomizerInf(OTRGlobals::Instance->gRandomizer->GetRandomizerInfFromCheck(tableEntry.first)) || i == pondCount - 1) {
|
||||||
|
// Found first child check
|
||||||
|
if (!IsFish(&mCurrPondFish.first)) {
|
||||||
|
mCurrPondFish.first = GetPondFish(params, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ageSplit && !IsFish(&mCurrPondFish.second)) {
|
||||||
|
mCurrPondFish.second = GetPondFish(params, false);
|
||||||
|
// both ages are resolved! we can quit here
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ageSplit && !IsFish(&mCurrPondFish.second) && tableEntry.second != RC_UNKNOWN_CHECK &&
|
||||||
|
(!Flags_GetRandomizerInf(OTRGlobals::Instance->gRandomizer->GetRandomizerInfFromCheck(tableEntry.second)) || i == pondCount - 1)) {
|
||||||
|
mCurrPondFish.second = mCurrPondFish.second = GetPondFish(params, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fishsanity::InitializeFromSave() {
|
||||||
|
UpdateCurrentPondFish();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Fishsanity::GetPondFishShuffled() {
|
||||||
|
u8 fsMode = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY);
|
||||||
|
return OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_POND_COUNT) > 0 &&
|
||||||
|
(fsMode == RO_FISHSANITY_POND || fsMode == RO_FISHSANITY_BOTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Fishsanity::GetOverworldFishShuffled() {
|
||||||
|
u8 fsMode = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY);
|
||||||
|
return fsMode == RO_FISHSANITY_OVERWORLD || fsMode == RO_FISHSANITY_BOTH;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Fishsanity::IsAdultPond() {
|
||||||
|
return LINK_IS_ADULT && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_AGE_SPLIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Fishsanity::GetPondCleared() {
|
||||||
|
auto [mode, pondCount, ageSplit] = GetOptions();
|
||||||
|
// no fish shuffled, so pond is always cleared :thumbsup:
|
||||||
|
if (pondCount == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
bool adultPond = LINK_IS_ADULT && ageSplit;
|
||||||
|
// if we've collected the final shuffled fish, pond is complete
|
||||||
|
if (pondCount <= 16) {
|
||||||
|
auto tableEntry = Rando::StaticData::randomizerFishingPondFish[pondCount - 1];
|
||||||
|
return Flags_GetRandomizerInf(OTRGlobals::Instance->gRandomizer->GetRandomizerInfFromCheck(adultPond ? tableEntry.second : tableEntry.first));
|
||||||
|
}
|
||||||
|
|
||||||
|
// the last two checks actually don't matter because logically they will never be true, but maybe one day they will
|
||||||
|
// if every fish is shuffled, check if we've collected every fish
|
||||||
|
for (auto tableEntry : Rando::StaticData::randomizerFishingPondFish) {
|
||||||
|
RandomizerCheck rc = adultPond ? tableEntry.second : tableEntry.first;
|
||||||
|
// if we haven't collected this fish, then we're not done yet! get back in there, soldier
|
||||||
|
if (rc != RC_UNKNOWN_CHECK && !Flags_GetRandomizerInf(OTRGlobals::Instance->gRandomizer->GetRandomizerInfFromCheck(rc)))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Fishsanity::GetDomainCleared() {
|
||||||
|
for (RandomizerInf i = RAND_INF_ZD_FISH_1; i <= RAND_INF_ZD_FISH_5; i = (RandomizerInf)(i + 1)) {
|
||||||
|
if (!Flags_GetRandomizerInf(i))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fishsanity::InitializeHelpers() {
|
||||||
|
if (fishsanityHelpersInit)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (auto pair : Rando::StaticData::randomizerFishingPondFish) {
|
||||||
|
pondFishAgeMap[pair.first] = LINK_AGE_CHILD;
|
||||||
|
pondFishAgeMap[pair.second] = LINK_AGE_ADULT;
|
||||||
|
childPondFish.push_back(pair.first);
|
||||||
|
adultPondFish.push_back(pair.second);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FishIdentity Fishsanity::GetPondFish(s16 params, bool adultPond) {
|
||||||
|
auto pair = Rando::StaticData::randomizerFishingPondFish[params - 100];
|
||||||
|
RandomizerCheck rc = adultPond ? pair.second : pair.first;
|
||||||
|
return { OTRGlobals::Instance->gRandomizer->GetRandomizerInfFromCheck(rc), rc };
|
||||||
|
}
|
||||||
|
|
||||||
|
FishIdentity Fishsanity::AdvancePond() {
|
||||||
|
auto [mode, pondCount, ageSplit] = GetOptions();
|
||||||
|
|
||||||
|
// No need to update state with full pond shuffle
|
||||||
|
if (pondCount > 16) {
|
||||||
|
return defaultIdentity;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateCurrentPondFish();
|
||||||
|
|
||||||
|
return IsAdultPond() ? mCurrPondFish.second : mCurrPondFish.first;
|
||||||
|
}
|
||||||
|
|
||||||
|
FishsanityCheckType Fishsanity::GetCheckType(RandomizerCheck rc) {
|
||||||
|
// Is this a pond fish?
|
||||||
|
if (std::binary_search(Rando::StaticData::pondFishLocations.begin(), Rando::StaticData::pondFishLocations.end(), rc))
|
||||||
|
return FSC_POND;
|
||||||
|
|
||||||
|
// Is this an overworld fish?
|
||||||
|
if (std::binary_search(Rando::StaticData::overworldFishLocations.begin(), Rando::StaticData::overworldFishLocations.end(), rc)) {
|
||||||
|
if (rc < RC_ZD_FISH_1)
|
||||||
|
return FSC_GROTTO;
|
||||||
|
else
|
||||||
|
return FSC_ZD;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Must not be a fishsanity check
|
||||||
|
return FSC_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Fishsanity::IsFish(FishIdentity* fish) {
|
||||||
|
if (fish->randomizerCheck == RC_UNKNOWN_CHECK || fish->randomizerInf == RAND_INF_MAX)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return GetCheckType(fish->randomizerCheck) != FSC_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fishsanity::SetPendingFish(FishIdentity* fish) {
|
||||||
|
mPendingFish = fish == NULL ? defaultIdentity : *fish;
|
||||||
|
}
|
||||||
|
|
||||||
|
FishIdentity Fishsanity::GetPendingFish() {
|
||||||
|
return mPendingFish;
|
||||||
|
}
|
||||||
|
} // namespace Rando
|
||||||
|
|
||||||
|
// C interface
|
||||||
|
extern "C" {
|
||||||
|
bool Randomizer_GetPondFishShuffled() {
|
||||||
|
return FSi->GetPondFishShuffled();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Randomizer_GetOverworldFishShuffled() {
|
||||||
|
return FSi->GetOverworldFishShuffled();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Randomizer_IsAdultPond() {
|
||||||
|
return FSi->IsAdultPond();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Randomizer_SetPendingFish(FishIdentity* fish) {
|
||||||
|
return FSi->SetPendingFish(fish);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fishsanity_DrawEffShadow(Actor* actor, Lights* lights, PlayState* play) {
|
||||||
|
Vec3f pos, ripplePos;
|
||||||
|
static Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
||||||
|
static Vec3f accel = { 0.0f, 0.0f, 0.0f };
|
||||||
|
Color_RGBA8 primColor;
|
||||||
|
Color_RGBA8 envColor;
|
||||||
|
|
||||||
|
// Color of the circle for the particles
|
||||||
|
static Color_RGBA8 mainColors[5][4] = {
|
||||||
|
{ 240, 154, 137, 200 },
|
||||||
|
{ 240, 190, 137, 200 },
|
||||||
|
{ 240, 171, 137, 200 },
|
||||||
|
{ 240, 141, 146, 200 },
|
||||||
|
{ 240, 204, 137, 200 }
|
||||||
|
};
|
||||||
|
|
||||||
|
// Color of the faded flares stretching off the particles
|
||||||
|
static Color_RGBA8 flareColors[5][3] = {
|
||||||
|
{ 128, 85, 82, 200 },
|
||||||
|
{ 128, 101, 82, 200 },
|
||||||
|
{ 128, 93, 82, 200 },
|
||||||
|
{ 128, 82, 98, 200 },
|
||||||
|
{ 128, 108, 82, 200 }
|
||||||
|
};
|
||||||
|
|
||||||
|
Color_RGBA8_Copy(&primColor, mainColors[ABS(actor->params) % 5]);
|
||||||
|
Color_RGBA8_Copy(&envColor, flareColors[ABS(actor->params) % 5]);
|
||||||
|
|
||||||
|
// Spawn sparkles
|
||||||
|
pos.x = Rand_CenteredFloat(23.0f) + actor->world.pos.x;
|
||||||
|
pos.y = (Rand_Centered() * 12.0f) + actor->world.pos.y;
|
||||||
|
pos.z = Rand_CenteredFloat(23.0f) + actor->world.pos.z;
|
||||||
|
velocity.y = 0.05f;
|
||||||
|
accel.y = 0.025f;
|
||||||
|
Math_Vec3f_Copy(&ripplePos, &pos);
|
||||||
|
ripplePos.y += actor->yDistToWater;
|
||||||
|
|
||||||
|
if (Rand_ZeroOne() < 0.3f) {
|
||||||
|
EffectSsKiraKira_SpawnDispersed(play, &pos, &velocity, &accel, &primColor, &envColor, 1800, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actor->bgCheckFlags & 0x20 && Rand_ZeroOne() < 0.15f) {
|
||||||
|
EffectSsGRipple_Spawn(play, &ripplePos, 100, 200, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fishsanity_OpenGreyscaleColor(PlayState* play, Color_RGBA16* color, int16_t frameOffset) {
|
||||||
|
OPEN_DISPS(play->state.gfxCtx);
|
||||||
|
gDPSetGrayscaleColor(
|
||||||
|
POLY_OPA_DISP++, color->r, color->g, color->b,
|
||||||
|
// Make color pulse, offset a bit by the actor params
|
||||||
|
ABS(255.0f * Math_CosS((play->gameplayFrames + frameOffset) * 1000)));
|
||||||
|
gSPGrayscale(POLY_OPA_DISP++, true);
|
||||||
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Fishsanity_CloseGreyscaleColor(PlayState* play) {
|
||||||
|
OPEN_DISPS(play->state.gfxCtx);
|
||||||
|
gSPGrayscale(POLY_OPA_DISP++, false);
|
||||||
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
}
|
||||||
|
}
|
210
soh/soh/Enhancements/randomizer/fishsanity.h
Normal file
210
soh/soh/Enhancements/randomizer/fishsanity.h
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
#ifndef FISHSANITY_H
|
||||||
|
#define FISHSANITY_H
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <z64.h>
|
||||||
|
#include "randomizerTypes.h"
|
||||||
|
|
||||||
|
typedef struct FishsanityPondOptions {
|
||||||
|
u8 mode;
|
||||||
|
u8 numFish;
|
||||||
|
bool ageSplit;
|
||||||
|
} FishsanityPondOptions;
|
||||||
|
|
||||||
|
typedef enum FishsanityOptionsSource {
|
||||||
|
FSO_SOURCE_RANDO,
|
||||||
|
FSO_SOURCE_CVARS
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum FishsanityCheckType {
|
||||||
|
FSC_NONE,
|
||||||
|
FSC_POND,
|
||||||
|
FSC_GROTTO,
|
||||||
|
FSC_ZD,
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
namespace Rando {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Class to provide an interface for and direct Fishsanity features
|
||||||
|
*/
|
||||||
|
class Fishsanity {
|
||||||
|
public:
|
||||||
|
Fishsanity();
|
||||||
|
~Fishsanity();
|
||||||
|
|
||||||
|
static const FishIdentity defaultIdentity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets the type of a fishsanity check
|
||||||
|
* @param rc The RandomizerCheck to categorize
|
||||||
|
* @return The check's fishsanity type, or FSC_NONE
|
||||||
|
*/
|
||||||
|
static FishsanityCheckType GetCheckType(RandomizerCheck rc);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns true if the given FishIdentity represents an actual fish
|
||||||
|
* @param fish The fish to check
|
||||||
|
*/
|
||||||
|
static bool IsFish(FishIdentity* fish);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns true if the given fish location is active
|
||||||
|
*
|
||||||
|
* @param loc The Location to check
|
||||||
|
* @param optionsSource Optionally declare from which source to pull settings
|
||||||
|
*/
|
||||||
|
bool GetFishLocationIncluded(Rando::Location* loc, FishsanityOptionsSource optionsSource = FSO_SOURCE_RANDO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the active and inactive locations in the fishing pond.
|
||||||
|
*
|
||||||
|
* @param optionsSource Optionally declare from which source to pull settings
|
||||||
|
* @return A pair of vectors, where the fist is all active pond fish checks, and the second is all inactive pond fish checks.
|
||||||
|
*/
|
||||||
|
std::pair<std::vector<RandomizerCheck>, std::vector<RandomizerCheck>> GetFishingPondLocations(FishsanityOptionsSource optionsSource = FSO_SOURCE_RANDO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get all active fishsanity locations, and all inactive fishing pond locations.
|
||||||
|
*
|
||||||
|
* @param optionsSource Optionally declare from which source to pull settings
|
||||||
|
* @return A pair of vectors, where the first is all active fishsanity checks, and the second is all inactive fishsanity checks.
|
||||||
|
*/
|
||||||
|
std::pair<std::vector<RandomizerCheck>, std::vector<RandomizerCheck>> GetFishsanityLocations(FishsanityOptionsSource optionsSource = FSO_SOURCE_RANDO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns the identity for a caught pond fish given its params.
|
||||||
|
* Not for use externally from rando, use Randomizer::IdentifyFish or Randomizer_IdentifyFish for that
|
||||||
|
*
|
||||||
|
* @param fishParams Actor parameters for the fish to identify
|
||||||
|
*/
|
||||||
|
FishIdentity IdentifyPondFish(u8 fishParams);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get fishsanity fishing pond options from the requested source
|
||||||
|
*/
|
||||||
|
FishsanityPondOptions GetOptions(FishsanityOptionsSource optionsSource = FSO_SOURCE_RANDO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Updates current pond fish according to save data
|
||||||
|
*/
|
||||||
|
void UpdateCurrentPondFish();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initializes internal state from save
|
||||||
|
*/
|
||||||
|
void InitializeFromSave();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns true if the fishing pond is shuffled
|
||||||
|
*/
|
||||||
|
bool GetPondFishShuffled();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns true if overworld fish are shuffled
|
||||||
|
*/
|
||||||
|
bool GetOverworldFishShuffled();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns true if the fishing pond is currently adult (i.e., age split is enabled and Link is adult)
|
||||||
|
*/
|
||||||
|
bool IsAdultPond();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns true if all available pond fish checks have been collected for the current age
|
||||||
|
*/
|
||||||
|
bool GetPondCleared();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns true if all available Zora's Domain fish checks have been collected
|
||||||
|
*/
|
||||||
|
bool GetDomainCleared();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Advances current fishing pond check; no effect if every fish is shuffled
|
||||||
|
* @return The new FishIdentity for the current pond, or default identity if every fish is shuffled
|
||||||
|
*/
|
||||||
|
FishIdentity AdvancePond();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set the currently held fish
|
||||||
|
* @param fish Pointer to FishIdentity to copy
|
||||||
|
*/
|
||||||
|
void SetPendingFish(FishIdentity* fish);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the currently held fish
|
||||||
|
*/
|
||||||
|
FishIdentity GetPendingFish();
|
||||||
|
|
||||||
|
private:
|
||||||
|
/**
|
||||||
|
* @brief Initialize helper statics if they have not been initialized yet
|
||||||
|
*/
|
||||||
|
void InitializeHelpers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Resolves a pond fish's FishIdentity directly from params & pond age
|
||||||
|
*
|
||||||
|
* @param params Params for Fishing actor
|
||||||
|
* @param adultPond Whether to resolve this fish as an adult check
|
||||||
|
* @return The FishIdentity for the described fish
|
||||||
|
*/
|
||||||
|
static FishIdentity GetPondFish(s16 params, bool adultPond);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Current pond fish when all pond fish are not randomized
|
||||||
|
*/
|
||||||
|
std::pair<FishIdentity, FishIdentity> mCurrPondFish;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Identity of the last-caught fish in the fishing pond minigame awaiting reward
|
||||||
|
*/
|
||||||
|
FishIdentity mPendingFish;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief True if fishsanity helpers have been initialized
|
||||||
|
*/
|
||||||
|
static bool fishsanityHelpersInit;
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////
|
||||||
|
//// Helper data structures derived from static data ////
|
||||||
|
/////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Mapping from pond fish check to the age where that check can be collected
|
||||||
|
*/
|
||||||
|
static std::unordered_map<RandomizerCheck, LinkAge> pondFishAgeMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief List of child pond fish checks
|
||||||
|
*/
|
||||||
|
static std::vector<RandomizerCheck> childPondFish;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief List of adult pond fish checks
|
||||||
|
*/
|
||||||
|
static std::vector<RandomizerCheck> adultPondFish;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
/// Returns true if pond fish should be shuffled based on fishsanity settings.
|
||||||
|
bool Randomizer_GetPondFishShuffled();
|
||||||
|
/// Returns true if overworld fish should be shuffled based on fishsanity settings.
|
||||||
|
bool Randomizer_GetOverworldFishShuffled();
|
||||||
|
/// Returns true if the adult fishing pond should be used for fishsanity.
|
||||||
|
bool Randomizer_IsAdultPond();
|
||||||
|
/// Sets the pending fish
|
||||||
|
void Randomizer_SetPendingFish(FishIdentity* fish);
|
||||||
|
/// Custom shadow draw function to add effect to uncollected fish
|
||||||
|
void Fishsanity_DrawEffShadow(Actor* actor, Lights* lights, PlayState* play);
|
||||||
|
void Fishsanity_OpenGreyscaleColor(PlayState* play, Color_RGBA16* color, int16_t frameOffset);
|
||||||
|
void Fishsanity_CloseGreyscaleColor(PlayState* play);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // FISHSANITY_H
|
@ -189,6 +189,7 @@ void Rando::StaticData::InitItemTable() {
|
|||||||
itemTable[RG_HEART_CONTAINER] = Item(RG_HEART_CONTAINER, Text{ "Heart Container", "Réceptacle de Coeur", "Herz-Container" }, ITEMTYPE_ITEM, GI_HEART_CONTAINER_2,true, &logic->HeartContainer, RHT_HEART_CONTAINER, ITEM_HEART_CONTAINER, OBJECT_GI_HEARTS, GID_HEART_CONTAINER,0xC6, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
itemTable[RG_HEART_CONTAINER] = Item(RG_HEART_CONTAINER, Text{ "Heart Container", "Réceptacle de Coeur", "Herz-Container" }, ITEMTYPE_ITEM, GI_HEART_CONTAINER_2,true, &logic->HeartContainer, RHT_HEART_CONTAINER, ITEM_HEART_CONTAINER, OBJECT_GI_HEARTS, GID_HEART_CONTAINER,0xC6, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_NONE);
|
||||||
itemTable[RG_ICE_TRAP] = Item(RG_ICE_TRAP, Text{ "Ice Trap", "Piège de Glace", "Eisfalle" }, ITEMTYPE_ITEM, RG_ICE_TRAP, false, &logic->noVariable, RHT_ICE_TRAP, RG_ICE_TRAP, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
itemTable[RG_ICE_TRAP] = Item(RG_ICE_TRAP, Text{ "Ice Trap", "Piège de Glace", "Eisfalle" }, ITEMTYPE_ITEM, RG_ICE_TRAP, false, &logic->noVariable, RHT_ICE_TRAP, RG_ICE_TRAP, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_MILK] = Item(RG_MILK, Text{ "Milk", "Lait", "Milch" }, ITEMTYPE_ITEM, GI_MILK, false, &logic->noVariable, RHT_NONE, ITEM_MILK, OBJECT_GI_MILK, GID_MILK, 0x98, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
itemTable[RG_MILK] = Item(RG_MILK, Text{ "Milk", "Lait", "Milch" }, ITEMTYPE_ITEM, GI_MILK, false, &logic->noVariable, RHT_NONE, ITEM_MILK, OBJECT_GI_MILK, GID_MILK, 0x98, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
|
itemTable[RG_FISH] = Item(RG_FISH, Text{ "Fish", "Poisson", "Pez" }, ITEMTYPE_ITEM, GI_FISH, false, &logic->noVariable, RHT_NONE, ITEM_FISH, OBJECT_GI_FISH, GID_FISH, 0x47, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
// Refills
|
// Refills
|
||||||
itemTable[RG_BOMBS_5] = Item(RG_BOMBS_5, Text{ "Bombs (5)", "Bombes (5)", "Bomben (5)" }, ITEMTYPE_REFILL, GI_BOMBS_5, false, &logic->noVariable, RHT_BOMBS_5, ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
itemTable[RG_BOMBS_5] = Item(RG_BOMBS_5, Text{ "Bombs (5)", "Bombes (5)", "Bomben (5)" }, ITEMTYPE_REFILL, GI_BOMBS_5, false, &logic->noVariable, RHT_BOMBS_5, ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
itemTable[RG_BOMBS_10] = Item(RG_BOMBS_10, Text{ "Bombs (10)", "Bombes (10)", "Bomben (10)" }, ITEMTYPE_REFILL, GI_BOMBS_10, false, &logic->noVariable, RHT_BOMBS_10, ITEM_BOMBS_10, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
itemTable[RG_BOMBS_10] = Item(RG_BOMBS_10, Text{ "Bombs (10)", "Bombes (10)", "Bomben (10)" }, ITEMTYPE_REFILL, GI_BOMBS_10, false, &logic->noVariable, RHT_BOMBS_10, ITEM_BOMBS_10, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT, ITEM_CATEGORY_JUNK, MOD_NONE);
|
||||||
@ -260,6 +261,8 @@ void Rando::StaticData::InitItemTable() {
|
|||||||
itemTable[RG_TWINROVA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
itemTable[RG_TWINROVA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||||
itemTable[RG_GANON_SOUL] = Item(RG_GANON_SOUL, Text{ "Ganon's Soul", "", "" }, ITEMTYPE_ITEM, 0xE8, true, &logic->CanSummonGanon, RHT_GANON_SOUL, RG_GANON_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
itemTable[RG_GANON_SOUL] = Item(RG_GANON_SOUL, Text{ "Ganon's Soul", "", "" }, ITEMTYPE_ITEM, 0xE8, true, &logic->CanSummonGanon, RHT_GANON_SOUL, RG_GANON_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_GANON_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
itemTable[RG_GANON_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||||
|
itemTable[RG_FISHING_POLE] = Item(RG_FISHING_POLE, Text{ "Fishing Pole", "Canne à Pêche", "Caña de Pescar" }, ITEMTYPE_ITEM, RG_FISHING_POLE, true, &logic->FishingPole, RHT_FISHING_POLE, RG_FISHING_POLE, OBJECT_GI_FISH, GID_FISHING_POLE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
|
itemTable[RG_FISHING_POLE].SetCustomDrawFunc(Randomizer_DrawFishingPoleGI);
|
||||||
|
|
||||||
itemTable[RG_OCARINA_A_BUTTON] = Item(RG_OCARINA_A_BUTTON, Text{ "Ocarina A Button", "Touche A de l'Ocarina", "Botón A de Ocarina" }, ITEMTYPE_ITEM, GI_MAP, true, &logic->OcarinaAButton, RHT_OCARINA_A_BUTTON, RG_OCARINA_A_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
itemTable[RG_OCARINA_A_BUTTON] = Item(RG_OCARINA_A_BUTTON, Text{ "Ocarina A Button", "Touche A de l'Ocarina", "Botón A de Ocarina" }, ITEMTYPE_ITEM, GI_MAP, true, &logic->OcarinaAButton, RHT_OCARINA_A_BUTTON, RG_OCARINA_A_BUTTON, OBJECT_GI_MAP, GID_STONE_OF_AGONY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||||
itemTable[RG_OCARINA_A_BUTTON].SetCustomDrawFunc(Randomizer_DrawOcarinaButton);
|
itemTable[RG_OCARINA_A_BUTTON].SetCustomDrawFunc(Randomizer_DrawOcarinaButton);
|
||||||
|
@ -55,6 +55,10 @@ class SpoilerCollectionCheck {
|
|||||||
return SpoilerCollectionCheck(SPOILER_CHK_COW, scene, flag);
|
return SpoilerCollectionCheck(SPOILER_CHK_COW, scene, flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static auto Fish(const uint8_t flag, const uint8_t scene = SCENE_FISHING_POND) {
|
||||||
|
return SpoilerCollectionCheck(SPOILER_CHK_FISH, scene, flag);
|
||||||
|
}
|
||||||
|
|
||||||
static auto Fishing(const uint8_t bit) {
|
static auto Fishing(const uint8_t bit) {
|
||||||
return SpoilerCollectionCheck(SPOILER_CHK_MINIGAME, 0x00, bit);
|
return SpoilerCollectionCheck(SPOILER_CHK_MINIGAME, 0x00, bit);
|
||||||
}
|
}
|
||||||
|
@ -516,7 +516,25 @@ std::vector<RandomizerCheck> Rando::StaticData::otherHintLocations = {
|
|||||||
RC_GREG_HINT,
|
RC_GREG_HINT,
|
||||||
RC_SARIA_SONG_HINT,
|
RC_SARIA_SONG_HINT,
|
||||||
RC_ALTAR_HINT_CHILD,
|
RC_ALTAR_HINT_CHILD,
|
||||||
RC_ALTAR_HINT_ADULT
|
RC_ALTAR_HINT_ADULT,
|
||||||
|
RC_FISHING_POLE_HINT
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<RandomizerCheck> Rando::StaticData::pondFishLocations = {
|
||||||
|
RC_LH_CHILD_FISH_1, RC_LH_CHILD_FISH_2, RC_LH_CHILD_FISH_3, RC_LH_CHILD_FISH_4, RC_LH_CHILD_FISH_5,
|
||||||
|
RC_LH_CHILD_FISH_6, RC_LH_CHILD_FISH_7, RC_LH_CHILD_FISH_8, RC_LH_CHILD_FISH_9, RC_LH_CHILD_FISH_10,
|
||||||
|
RC_LH_CHILD_FISH_11, RC_LH_CHILD_FISH_12, RC_LH_CHILD_FISH_13, RC_LH_CHILD_FISH_14, RC_LH_CHILD_FISH_15,
|
||||||
|
RC_LH_CHILD_LOACH_1, RC_LH_CHILD_LOACH_2, RC_LH_ADULT_FISH_1, RC_LH_ADULT_FISH_2, RC_LH_ADULT_FISH_3,
|
||||||
|
RC_LH_ADULT_FISH_4, RC_LH_ADULT_FISH_5, RC_LH_ADULT_FISH_6, RC_LH_ADULT_FISH_7, RC_LH_ADULT_FISH_8,
|
||||||
|
RC_LH_ADULT_FISH_9, RC_LH_ADULT_FISH_10, RC_LH_ADULT_FISH_11, RC_LH_ADULT_FISH_12, RC_LH_ADULT_FISH_13,
|
||||||
|
RC_LH_ADULT_FISH_14, RC_LH_ADULT_FISH_15, RC_LH_ADULT_LOACH
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<RandomizerCheck> Rando::StaticData::overworldFishLocations = {
|
||||||
|
RC_DMC_UPPER_GROTTO_FISH, RC_DMT_STORMS_GROTTO_FISH, RC_HF_SOUTHEAST_GROTTO_FISH,
|
||||||
|
RC_HF_NEAR_MARKET_GROTTO_FISH, RC_HF_OPEN_GROTTO_FISH, RC_KAK_OPEN_GROTTO_FISH,
|
||||||
|
RC_KF_STORMS_GROTTO_FISH, RC_LW_NEAR_SHORTCUTS_GROTTO_FISH, RC_ZR_OPEN_GROTTO_FISH,
|
||||||
|
RC_ZD_FISH_1, RC_ZD_FISH_2, RC_ZD_FISH_3, RC_ZD_FISH_4, RC_ZD_FISH_5
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -1372,6 +1390,62 @@ void Rando::StaticData::InitLocationTable() {
|
|||||||
locationTable[RC_GC_SHOP_ITEM_7] = Location::Base(RC_GC_SHOP_ITEM_7, RCQUEST_BOTH, RCTYPE_SHOP, RCAREA_GORON_CITY, ACTOR_EN_GIRLA, SCENE_GORON_SHOP, 0x06, 0x36, "Shop Item 7", "GC Shop Item 7", RHT_GC_SHOP_ITEM_7, RG_BUY_RED_POTION_40, { Category::cShop }, SpoilerCollectionCheck::ShopItem(0x2E, 6), SpoilerCollectionCheckGroup::GROUP_GORON_CITY);
|
locationTable[RC_GC_SHOP_ITEM_7] = Location::Base(RC_GC_SHOP_ITEM_7, RCQUEST_BOTH, RCTYPE_SHOP, RCAREA_GORON_CITY, ACTOR_EN_GIRLA, SCENE_GORON_SHOP, 0x06, 0x36, "Shop Item 7", "GC Shop Item 7", RHT_GC_SHOP_ITEM_7, RG_BUY_RED_POTION_40, { Category::cShop }, SpoilerCollectionCheck::ShopItem(0x2E, 6), SpoilerCollectionCheckGroup::GROUP_GORON_CITY);
|
||||||
locationTable[RC_GC_SHOP_ITEM_8] = Location::Base(RC_GC_SHOP_ITEM_8, RCQUEST_BOTH, RCTYPE_SHOP, RCAREA_GORON_CITY, ACTOR_EN_GIRLA, SCENE_GORON_SHOP, 0x07, 0x37, "Shop Item 8", "GC Shop Item 8", RHT_GC_SHOP_ITEM_8, RG_BUY_HEART, { Category::cShop }, SpoilerCollectionCheck::ShopItem(0x2E, 7), SpoilerCollectionCheckGroup::GROUP_GORON_CITY);
|
locationTable[RC_GC_SHOP_ITEM_8] = Location::Base(RC_GC_SHOP_ITEM_8, RCQUEST_BOTH, RCTYPE_SHOP, RCAREA_GORON_CITY, ACTOR_EN_GIRLA, SCENE_GORON_SHOP, 0x07, 0x37, "Shop Item 8", "GC Shop Item 8", RHT_GC_SHOP_ITEM_8, RG_BUY_HEART, { Category::cShop }, SpoilerCollectionCheck::ShopItem(0x2E, 7), SpoilerCollectionCheckGroup::GROUP_GORON_CITY);
|
||||||
|
|
||||||
|
/* +--------------+
|
||||||
|
| FISHSANITY |
|
||||||
|
+--------------+ */
|
||||||
|
|
||||||
|
// Randomizer Check Randomizer Check Quest Type Area Actor ID Scene ID Params Flags Short Name Spoiler Name Hint Text Key Vanilla Item Categories Spoiler Collection Check Collection Check Group
|
||||||
|
locationTable[RC_LH_CHILD_FISH_1] = Location::Base(RC_LH_CHILD_FISH_1, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 100, 0x00, "Child Pond Fish 1", "LH Child Pond Fish 1", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_2] = Location::Base(RC_LH_CHILD_FISH_2, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 101, 0x00, "Child Pond Fish 2", "LH Child Pond Fish 2", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_3] = Location::Base(RC_LH_CHILD_FISH_3, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 102, 0x00, "Child Pond Fish 3", "LH Child Pond Fish 3", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_4] = Location::Base(RC_LH_CHILD_FISH_4, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 103, 0x00, "Child Pond Fish 4", "LH Child Pond Fish 4", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_5] = Location::Base(RC_LH_CHILD_FISH_5, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 104, 0x00, "Child Pond Fish 5", "LH Child Pond Fish 5", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_6] = Location::Base(RC_LH_CHILD_FISH_6, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 105, 0x00, "Child Pond Fish 6", "LH Child Pond Fish 6", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_7] = Location::Base(RC_LH_CHILD_FISH_7, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 106, 0x00, "Child Pond Fish 7", "LH Child Pond Fish 7", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_8] = Location::Base(RC_LH_CHILD_FISH_8, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 107, 0x00, "Child Pond Fish 8", "LH Child Pond Fish 8", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_9] = Location::Base(RC_LH_CHILD_FISH_9, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 108, 0x00, "Child Pond Fish 9", "LH Child Pond Fish 9", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_10] = Location::Base(RC_LH_CHILD_FISH_10, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 109, 0x00, "Child Pond Fish 10", "LH Child Pond Fish 10", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_11] = Location::Base(RC_LH_CHILD_FISH_11, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 110, 0x00, "Child Pond Fish 11", "LH Child Pond Fish 11", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_12] = Location::Base(RC_LH_CHILD_FISH_12, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 111, 0x00, "Child Pond Fish 12", "LH Child Pond Fish 12", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_13] = Location::Base(RC_LH_CHILD_FISH_13, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 112, 0x00, "Child Pond Fish 13", "LH Child Pond Fish 13", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_14] = Location::Base(RC_LH_CHILD_FISH_14, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 113, 0x00, "Child Pond Fish 14", "LH Child Pond Fish 14", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_FISH_15] = Location::Base(RC_LH_CHILD_FISH_15, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 114, 0x00, "Child Pond Fish 15", "LH Child Pond Fish 15", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_LOACH_1] = Location::Base(RC_LH_CHILD_LOACH_1, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 115, 0x00, "Child Pond Loach 1", "LH Child Pond Loach 1", RHT_LH_HYRULE_LOACH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_CHILD_LOACH_2] = Location::Base(RC_LH_CHILD_LOACH_2, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 116, 0x00, "Child Pond Loach 2", "LH Child Pond Loach 2", RHT_LH_HYRULE_LOACH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_1] = Location::Base(RC_LH_ADULT_FISH_1, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 100, 0x00, "Adult Pond Fish 1", "LH Adult Pond Fish 1", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_2] = Location::Base(RC_LH_ADULT_FISH_2, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 101, 0x00, "Adult Pond Fish 2", "LH Adult Pond Fish 2", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_3] = Location::Base(RC_LH_ADULT_FISH_3, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 102, 0x00, "Adult Pond Fish 3", "LH Adult Pond Fish 3", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_4] = Location::Base(RC_LH_ADULT_FISH_4, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 103, 0x00, "Adult Pond Fish 4", "LH Adult Pond Fish 4", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_5] = Location::Base(RC_LH_ADULT_FISH_5, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 104, 0x00, "Adult Pond Fish 5", "LH Adult Pond Fish 5", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_6] = Location::Base(RC_LH_ADULT_FISH_6, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 105, 0x00, "Adult Pond Fish 6", "LH Adult Pond Fish 6", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_7] = Location::Base(RC_LH_ADULT_FISH_7, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 106, 0x00, "Adult Pond Fish 7", "LH Adult Pond Fish 7", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_8] = Location::Base(RC_LH_ADULT_FISH_8, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 107, 0x00, "Adult Pond Fish 8", "LH Adult Pond Fish 8", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_9] = Location::Base(RC_LH_ADULT_FISH_9, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 108, 0x00, "Adult Pond Fish 9", "LH Adult Pond Fish 9", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_10] = Location::Base(RC_LH_ADULT_FISH_10, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 109, 0x00, "Adult Pond Fish 10", "LH Adult Pond Fish 10", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_11] = Location::Base(RC_LH_ADULT_FISH_11, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 110, 0x00, "Adult Pond Fish 11", "LH Adult Pond Fish 11", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_12] = Location::Base(RC_LH_ADULT_FISH_12, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 111, 0x00, "Adult Pond Fish 12", "LH Adult Pond Fish 12", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_13] = Location::Base(RC_LH_ADULT_FISH_13, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 112, 0x00, "Adult Pond Fish 13", "LH Adult Pond Fish 13", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_14] = Location::Base(RC_LH_ADULT_FISH_14, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 113, 0x00, "Adult Pond Fish 14", "LH Adult Pond Fish 14", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_FISH_15] = Location::Base(RC_LH_ADULT_FISH_15, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 114, 0x00, "Adult Pond Fish 15", "LH Adult Pond Fish 15", RHT_LH_POND_FISH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
locationTable[RC_LH_ADULT_LOACH] = Location::Base(RC_LH_ADULT_LOACH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, 115, 0x00, "Adult Pond Loach", "LH Adult Pond Loach", RHT_LH_HYRULE_LOACH, RG_NONE, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF), SpoilerCollectionCheckGroup::GROUP_LAKE_HYLIA);
|
||||||
|
// Grotto fish
|
||||||
|
locationTable[RC_KF_STORMS_GROTTO_FISH] = Location::Base(RC_KF_STORMS_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_KOKIRI_FOREST, ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Storms Grotto Fish", "KF Storms Grotto Fish", RHT_KF_STORMS_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x2C, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_KOKIRI_FOREST);
|
||||||
|
locationTable[RC_LW_NEAR_SHORTCUTS_GROTTO_FISH] = Location::Base(RC_LW_NEAR_SHORTCUTS_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_LOST_WOODS, ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Near Shortcuts Grotto Fish", "LW Near Shortcuts Grotto Fish", RHT_LW_NEAR_SHORTCUTS_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x14, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_LOST_WOODS);
|
||||||
|
locationTable[RC_HF_SOUTHEAST_GROTTO_FISH] = Location::Base(RC_HF_SOUTHEAST_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_HYRULE_FIELD, ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Southeast Grotto Fish", "HF Southeast Grotto Fish", RHT_HF_SOUTHEAST_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x22, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_HYRULE_FIELD);
|
||||||
|
locationTable[RC_HF_OPEN_GROTTO_FISH] = Location::Base(RC_HF_OPEN_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_HYRULE_FIELD, ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Open Grotto Fish", "HF Open Grotto Fish", RHT_HF_OPEN_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x03, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_HYRULE_FIELD);
|
||||||
|
locationTable[RC_HF_NEAR_MARKET_GROTTO_FISH] = Location::Base(RC_HF_NEAR_MARKET_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_HYRULE_FIELD, ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Near Market Grotto Fish", "HF Near Market Grotto Fish", RHT_HF_NEAR_MARKET_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x00, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_HYRULE_FIELD);
|
||||||
|
locationTable[RC_KAK_OPEN_GROTTO_FISH] = Location::Base(RC_KAK_OPEN_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_KAKARIKO_VILLAGE, ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Open Grotto Fish", "Kak Open Grotto Fish", RHT_KAK_OPEN_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x28, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_KAKARIKO);
|
||||||
|
locationTable[RC_DMT_STORMS_GROTTO_FISH] = Location::Base(RC_DMT_STORMS_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_DEATH_MOUNTAIN_TRAIL, ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Storms Grotto Fish", "DMT Storms Grotto Fish", RHT_DMT_STORMS_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x57, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_DEATH_MOUNTAIN);
|
||||||
|
locationTable[RC_DMC_UPPER_GROTTO_FISH] = Location::Base(RC_DMC_UPPER_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_DEATH_MOUNTAIN_CRATER,ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Upper Grotto Fish", "DMC Upper Grotto Fish", RHT_DMC_UPPER_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x7A, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_DEATH_MOUNTAIN);
|
||||||
|
locationTable[RC_ZR_OPEN_GROTTO_FISH] = Location::Base(RC_ZR_OPEN_GROTTO_FISH, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_ZORAS_RIVER, ACTOR_EN_FISH, SCENE_GROTTOS, 1, 0x00, "Open Grotto Fish", "ZR Open Grotto Fish", RHT_ZR_OPEN_GROTTO_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0x29, SCENE_GROTTOS), SpoilerCollectionCheckGroup::GROUP_ZORAS_RIVER);
|
||||||
|
// Zora's Domain fish
|
||||||
|
locationTable[RC_ZD_FISH_1] = Location::Base(RC_ZD_FISH_1, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_ZORAS_DOMAIN, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 0, 0x00, "Fish 1", "ZD Fish 1", RHT_ZD_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF, SCENE_ZORAS_DOMAIN), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN);
|
||||||
|
locationTable[RC_ZD_FISH_2] = Location::Base(RC_ZD_FISH_2, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_ZORAS_DOMAIN, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 1, 0x00, "Fish 2", "ZD Fish 2", RHT_ZD_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF, SCENE_ZORAS_DOMAIN), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN);
|
||||||
|
locationTable[RC_ZD_FISH_3] = Location::Base(RC_ZD_FISH_3, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_ZORAS_DOMAIN, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 2, 0x00, "Fish 3", "ZD Fish 3", RHT_ZD_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF, SCENE_ZORAS_DOMAIN), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN);
|
||||||
|
locationTable[RC_ZD_FISH_4] = Location::Base(RC_ZD_FISH_4, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_ZORAS_DOMAIN, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 3, 0x00, "Fish 4", "ZD Fish 4", RHT_ZD_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF, SCENE_ZORAS_DOMAIN), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN);
|
||||||
|
locationTable[RC_ZD_FISH_5] = Location::Base(RC_ZD_FISH_5, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_ZORAS_DOMAIN, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 4, 0x00, "Fish 5", "ZD Fish 5", RHT_ZD_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF, SCENE_ZORAS_DOMAIN), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN);
|
||||||
|
|
||||||
|
|
||||||
// Gossip Stones
|
// Gossip Stones
|
||||||
// RandomizerCheck Randomizer Check Quest Area Scene Params Flag Short Name Spoiler name Categories
|
// RandomizerCheck Randomizer Check Quest Area Scene Params Flag Short Name Spoiler name Categories
|
||||||
locationTable[RC_DMC_GOSSIP_STONE] = Location::HintStone(RC_DMC_GOSSIP_STONE, RCQUEST_BOTH, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, 14341, 0x05, "Gossip Stone", "DMC Gossip Stone", {});
|
locationTable[RC_DMC_GOSSIP_STONE] = Location::HintStone(RC_DMC_GOSSIP_STONE, RCQUEST_BOTH, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, 14341, 0x05, "Gossip Stone", "DMC Gossip Stone", {});
|
||||||
@ -1424,6 +1498,7 @@ void Rando::StaticData::InitLocationTable() {
|
|||||||
locationTable[RC_SARIA_SONG_HINT] = Location::OtherHint(RC_SARIA_SONG_HINT, RCQUEST_BOTH, RCTYPE_GOSSIP_STONE, RCAREA_KOKIRI_FOREST, ACTOR_ID_MAX, SCENE_ID_MAX, "Sarias Song Hint", "Magic Hint Via Saria's Song");
|
locationTable[RC_SARIA_SONG_HINT] = Location::OtherHint(RC_SARIA_SONG_HINT, RCQUEST_BOTH, RCTYPE_GOSSIP_STONE, RCAREA_KOKIRI_FOREST, ACTOR_ID_MAX, SCENE_ID_MAX, "Sarias Song Hint", "Magic Hint Via Saria's Song");
|
||||||
locationTable[RC_ALTAR_HINT_CHILD] = Location::OtherHint(RC_ALTAR_HINT_CHILD, RCQUEST_BOTH, RCTYPE_GOSSIP_STONE, RCAREA_MARKET, ACTOR_ID_MAX, SCENE_TEMPLE_OF_TIME, "Child Altar Hint", "ToT Child Altar Text");
|
locationTable[RC_ALTAR_HINT_CHILD] = Location::OtherHint(RC_ALTAR_HINT_CHILD, RCQUEST_BOTH, RCTYPE_GOSSIP_STONE, RCAREA_MARKET, ACTOR_ID_MAX, SCENE_TEMPLE_OF_TIME, "Child Altar Hint", "ToT Child Altar Text");
|
||||||
locationTable[RC_ALTAR_HINT_ADULT] = Location::OtherHint(RC_ALTAR_HINT_ADULT, RCQUEST_BOTH, RCTYPE_GOSSIP_STONE, RCAREA_MARKET, ACTOR_ID_MAX, SCENE_TEMPLE_OF_TIME, "Adult Altar Hint", "ToT Adult Altar Text");
|
locationTable[RC_ALTAR_HINT_ADULT] = Location::OtherHint(RC_ALTAR_HINT_ADULT, RCQUEST_BOTH, RCTYPE_GOSSIP_STONE, RCAREA_MARKET, ACTOR_ID_MAX, SCENE_TEMPLE_OF_TIME, "Adult Altar Hint", "ToT Adult Altar Text");
|
||||||
|
locationTable[RC_FISHING_POLE_HINT] = Location::OtherHint(RC_FISHING_POLE_HINT,RCQUEST_BOTH, RCTYPE_GOSSIP_STONE, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, "Fishing Pole Hint","Fishing Pole Hint");
|
||||||
|
|
||||||
locationTable[RC_TRIFORCE_COMPLETED] = Location::Reward(RC_TRIFORCE_COMPLETED, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_MARKET, ACTOR_ID_MAX, SCENE_ID_MAX, 0x00, 0x00, "Completed Triforce", "Completed Triforce", RHT_NONE, RG_NONE, {}, SpoilerCollectionCheck::None(), SpoilerCollectionCheckGroup::GROUP_NO_GROUP);
|
locationTable[RC_TRIFORCE_COMPLETED] = Location::Reward(RC_TRIFORCE_COMPLETED, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_MARKET, ACTOR_ID_MAX, SCENE_ID_MAX, 0x00, 0x00, "Completed Triforce", "Completed Triforce", RHT_NONE, RG_NONE, {}, SpoilerCollectionCheck::None(), SpoilerCollectionCheckGroup::GROUP_NO_GROUP);
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
@ -57,6 +57,7 @@ namespace Rando {
|
|||||||
(itemName == RG_OCARINA_C_RIGHT_BUTTON && OcarinaCRightButton) ||
|
(itemName == RG_OCARINA_C_RIGHT_BUTTON && OcarinaCRightButton) ||
|
||||||
(itemName == RG_OCARINA_C_DOWN_BUTTON && OcarinaCDownButton) ||
|
(itemName == RG_OCARINA_C_DOWN_BUTTON && OcarinaCDownButton) ||
|
||||||
(itemName == RG_OCARINA_C_UP_BUTTON && OcarinaCUpButton) ||
|
(itemName == RG_OCARINA_C_UP_BUTTON && OcarinaCUpButton) ||
|
||||||
|
(itemName == RG_FISHING_POLE && FishingPole) ||
|
||||||
(itemName == RG_ZELDAS_LULLABY && ZeldasLullaby) ||
|
(itemName == RG_ZELDAS_LULLABY && ZeldasLullaby) ||
|
||||||
(itemName == RG_EPONAS_SONG && EponasSong) ||
|
(itemName == RG_EPONAS_SONG && EponasSong) ||
|
||||||
(itemName == RG_SARIAS_SONG && SariasSong) ||
|
(itemName == RG_SARIAS_SONG && SariasSong) ||
|
||||||
@ -150,6 +151,11 @@ namespace Rando {
|
|||||||
case RG_PRELUDE_OF_LIGHT:
|
case RG_PRELUDE_OF_LIGHT:
|
||||||
return Ocarina && OcarinaCLeftButton && OcarinaCRightButton && OcarinaCUpButton;
|
return Ocarina && OcarinaCLeftButton && OcarinaCRightButton && OcarinaCUpButton;
|
||||||
|
|
||||||
|
// Misc. Items
|
||||||
|
// TODO: Once child wallet shuffle is added, this will need to be updated to account for the fishing pond entry fee.
|
||||||
|
case RG_FISHING_POLE:
|
||||||
|
return true; // as long as you have enough rubies
|
||||||
|
|
||||||
// Magic items
|
// Magic items
|
||||||
default:
|
default:
|
||||||
return MagicMeter && (IsMagicItem(itemName) || (IsMagicArrow(itemName) && CanUse(RG_FAIRY_BOW)));
|
return MagicMeter && (IsMagicItem(itemName) || (IsMagicArrow(itemName) && CanUse(RG_FAIRY_BOW)));
|
||||||
@ -325,6 +331,9 @@ namespace Rando {
|
|||||||
CanOpenStormGrotto = CanUse(RG_SONG_OF_STORMS) && (ShardOfAgony || ctx->GetTrickOption(RT_GROTTOS_WITHOUT_AGONY));
|
CanOpenStormGrotto = CanUse(RG_SONG_OF_STORMS) && (ShardOfAgony || ctx->GetTrickOption(RT_GROTTOS_WITHOUT_AGONY));
|
||||||
HookshotOrBoomerang = CanUse(RG_HOOKSHOT) || CanUse(RG_BOOMERANG);
|
HookshotOrBoomerang = CanUse(RG_HOOKSHOT) || CanUse(RG_BOOMERANG);
|
||||||
CanGetNightTimeGS = (CanUse(RG_SUNS_SONG) || !ctx->GetOption(RSK_SKULLS_SUNS_SONG));
|
CanGetNightTimeGS = (CanUse(RG_SUNS_SONG) || !ctx->GetOption(RSK_SKULLS_SUNS_SONG));
|
||||||
|
CanFish = CanUse(RG_FISHING_POLE) || !ctx->GetOption(RSK_SHUFFLE_FISHING_POLE);
|
||||||
|
CanGetChildFish = CanFish && (IsChild || (IsAdult && !ctx->GetOption(RSK_FISHSANITY_AGE_SPLIT)));
|
||||||
|
CanGetAdultFish = CanFish && IsAdult && ctx->GetOption(RSK_FISHSANITY_AGE_SPLIT);
|
||||||
|
|
||||||
GuaranteeTradePath = ctx->GetOption(RSK_SHUFFLE_INTERIOR_ENTRANCES) || ctx->GetOption(RSK_SHUFFLE_OVERWORLD_ENTRANCES) || ctx->GetTrickOption(RT_DMT_BOLERO_BIGGORON) || CanBlastOrSmash || StopGCRollingGoronAsAdult;
|
GuaranteeTradePath = ctx->GetOption(RSK_SHUFFLE_INTERIOR_ENTRANCES) || ctx->GetOption(RSK_SHUFFLE_OVERWORLD_ENTRANCES) || ctx->GetTrickOption(RT_DMT_BOLERO_BIGGORON) || CanBlastOrSmash || StopGCRollingGoronAsAdult;
|
||||||
//GuaranteeHint = (hints == "Mask" && MaskofTruth) || (hints == "Agony") || (hints != "Mask" && hints != "Agony");
|
//GuaranteeHint = (hints == "Mask" && MaskofTruth) || (hints == "Agony") || (hints != "Mask" && hints != "Agony");
|
||||||
@ -743,6 +752,10 @@ namespace Rando {
|
|||||||
CanOpenStormGrotto = false;
|
CanOpenStormGrotto = false;
|
||||||
BigPoeKill = false;
|
BigPoeKill = false;
|
||||||
HookshotOrBoomerang = false;
|
HookshotOrBoomerang = false;
|
||||||
|
CanGetChildFish = false;
|
||||||
|
CanGetAdultFish = false;
|
||||||
|
FishingPole = false;
|
||||||
|
CanFish = false;
|
||||||
|
|
||||||
BaseHearts = ctx->GetOption(RSK_STARTING_HEARTS).Value<uint8_t>() + 1;
|
BaseHearts = ctx->GetOption(RSK_STARTING_HEARTS).Value<uint8_t>() + 1;
|
||||||
Hearts = 0;
|
Hearts = 0;
|
||||||
|
@ -295,6 +295,10 @@ class Logic {
|
|||||||
bool BigPoeKill = false;
|
bool BigPoeKill = false;
|
||||||
bool HookshotOrBoomerang = false;
|
bool HookshotOrBoomerang = false;
|
||||||
bool CanGetNightTimeGS = false;
|
bool CanGetNightTimeGS = false;
|
||||||
|
bool FishingPole = false;
|
||||||
|
bool CanGetChildFish = false;
|
||||||
|
bool CanGetAdultFish = false;
|
||||||
|
bool CanFish = false;
|
||||||
|
|
||||||
uint8_t OcarinaButtons = 0;
|
uint8_t OcarinaButtons = 0;
|
||||||
uint8_t BaseHearts = 0;
|
uint8_t BaseHearts = 0;
|
||||||
|
@ -233,6 +233,9 @@ void Settings::CreateOptionDescriptions() {
|
|||||||
"\n"
|
"\n"
|
||||||
"The Gerudo Card is required to enter the Gerudo Training Grounds, opening "
|
"The Gerudo Card is required to enter the Gerudo Training Grounds, opening "
|
||||||
"the gate to Haunted Wasteland and the Horseback Archery minigame.";
|
"the gate to Haunted Wasteland and the Horseback Archery minigame.";
|
||||||
|
mOptionDescriptions[RSK_SHUFFLE_FISHING_POLE] = "Shuffles the fishing pole into the item pool.\n"
|
||||||
|
"\n"
|
||||||
|
"The fishing pole is required to play the fishing pond minigame.";
|
||||||
mOptionDescriptions[RSK_SHOPSANITY] = "Off - All shop items will be the same as vanilla.\n"
|
mOptionDescriptions[RSK_SHOPSANITY] = "Off - All shop items will be the same as vanilla.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"0 Items - Vanilla shop items will be shuffled among different shops.\n"
|
"0 Items - Vanilla shop items will be shuffled among different shops.\n"
|
||||||
@ -250,6 +253,17 @@ void Settings::CreateOptionDescriptions() {
|
|||||||
mOptionDescriptions[RSK_SHOPSANITY_PRICES_AFFORDABLE] =
|
mOptionDescriptions[RSK_SHOPSANITY_PRICES_AFFORDABLE] =
|
||||||
"Affordable prices per tier: starter = 10, adult = 105, giant = 205, tycoon = 505\n\n"
|
"Affordable prices per tier: starter = 10, adult = 105, giant = 205, tycoon = 505\n\n"
|
||||||
"Use this to enable wallet tier locking, but make shop items not as expensive as they could be.";
|
"Use this to enable wallet tier locking, but make shop items not as expensive as they could be.";
|
||||||
|
mOptionDescriptions[RSK_FISHSANITY] = "Off - Fish will not be shuffled. No changes will be made to fishing behavior.\n\n"
|
||||||
|
"Shuffle Fishing Pond - The fishing pond's fish will be shuffled. Catching a fish in the fishing pond will grant a reward.\n\n"
|
||||||
|
"Shuffle Overworld Fish - Fish in generic grottos and Zora's Domain will be shuffled. Catching a fish in a bottle will give a reward.\n\n"
|
||||||
|
"Shuffle Both - Both overworld fish and fish in the fishing pond will be shuffled.";
|
||||||
|
mOptionDescriptions[RSK_FISHSANITY_POND_COUNT] = "The number of fish to randomize in the fishing pool.\n\n"
|
||||||
|
"If set to maximum, each fish will have a unique check, including a Hyrule Loach which appears only as child, and "
|
||||||
|
"uncaught fish will be given a visual indicator to distinguish from already-caught fish.\n\n"
|
||||||
|
"Otherwise, any fish caught in the pond will give a reward, until all rewards have been given.";
|
||||||
|
mOptionDescriptions[RSK_FISHSANITY_AGE_SPLIT] = "Enabling this will split the fishing pond fish by age, making fishing pond fish grant different rewards as child and adult.\n\n"
|
||||||
|
"If disabled, then the child pond will be shuffled and shared between both ages.\n\n"
|
||||||
|
"Note that, as child, there is a second loach available in the pond!";
|
||||||
mOptionDescriptions[RSK_SHUFFLE_SCRUBS] =
|
mOptionDescriptions[RSK_SHUFFLE_SCRUBS] =
|
||||||
"Off - Scrubs will not be shuffled. The 3 Scrubs that give one-time items in the vanilla game "
|
"Off - Scrubs will not be shuffled. The 3 Scrubs that give one-time items in the vanilla game "
|
||||||
"(PoH, Deku Nut capacity, and Deku Stick capacity) will have random items.\n"
|
"(PoH, Deku Nut capacity, and Deku Stick capacity) will have random items.\n"
|
||||||
@ -485,6 +499,7 @@ void Settings::CreateOptionDescriptions() {
|
|||||||
"Talking to the chest game owner after buying a key will tell you the location of Greg the Green Rupee.";
|
"Talking to the chest game owner after buying a key will tell you the location of Greg the Green Rupee.";
|
||||||
mOptionDescriptions[RSK_SARIA_HINT] = "Talking to Saria either in person or through Saria's Song will tell you the "
|
mOptionDescriptions[RSK_SARIA_HINT] = "Talking to Saria either in person or through Saria's Song will tell you the "
|
||||||
"location of a progressive magic meter.";
|
"location of a progressive magic meter.";
|
||||||
|
mOptionDescriptions[RSK_FISHING_POLE_HINT] = "Talking to the fishing pond owner without the fishing pole will tell you its location.";
|
||||||
mOptionDescriptions[RSK_FROGS_HINT] = "Standing near the pedestal for the frogs in Zora's River will tell you the "
|
mOptionDescriptions[RSK_FROGS_HINT] = "Standing near the pedestal for the frogs in Zora's River will tell you the "
|
||||||
"reward for the frogs' ocarina game.";
|
"reward for the frogs' ocarina game.";
|
||||||
mOptionDescriptions[RSK_BIGGORON_HINT] = "Talking to Biggoron will tell you the item he will give you in exchange for the Claim Check.";
|
mOptionDescriptions[RSK_BIGGORON_HINT] = "Talking to Biggoron will tell you the item he will give you in exchange for the Claim Check.";
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "trial.h"
|
#include "trial.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "soh/util.h"
|
#include "soh/util.h"
|
||||||
|
#include "fishsanity.h"
|
||||||
|
|
||||||
extern "C" uint32_t ResourceMgr_IsGameMasterQuest();
|
extern "C" uint32_t ResourceMgr_IsGameMasterQuest();
|
||||||
extern "C" uint32_t ResourceMgr_IsSceneMasterQuest(s16 sceneNum);
|
extern "C" uint32_t ResourceMgr_IsSceneMasterQuest(s16 sceneNum);
|
||||||
@ -464,6 +465,20 @@ void Randomizer::LoadHintMessages() {
|
|||||||
"Komm wieder sobald du deinen eigenen&Bogen hast, um einen %rspeziellen Preis%w zu&erhalten!",
|
"Komm wieder sobald du deinen eigenen&Bogen hast, um einen %rspeziellen Preis%w zu&erhalten!",
|
||||||
"J'aurai %rune autre récompense%w pour toi&lorsque tu auras ton propre arc."));
|
"J'aurai %rune autre récompense%w pour toi&lorsque tu auras ton propre arc."));
|
||||||
|
|
||||||
|
// Fishing pond pole hint
|
||||||
|
CustomMessageManager::Instance->CreateMessage(
|
||||||
|
Randomizer::randoMiscHintsTableID, TEXT_FISHING_POND_START,
|
||||||
|
CustomMessage(ctx->GetHint(RH_FISHING_POLE)->GetText().GetEnglish(),
|
||||||
|
ctx->GetHint(RH_FISHING_POLE)->GetText().GetEnglish(),
|
||||||
|
ctx->GetHint(RH_FISHING_POLE)->GetText().GetFrench())
|
||||||
|
);
|
||||||
|
CustomMessageManager::Instance->CreateMessage(
|
||||||
|
Randomizer::randoMiscHintsTableID, TEXT_FISHING_POND_START_MET,
|
||||||
|
CustomMessage(ctx->GetHint(RH_FISHING_POLE)->GetText().GetEnglish(),
|
||||||
|
ctx->GetHint(RH_FISHING_POLE)->GetText().GetEnglish(),
|
||||||
|
ctx->GetHint(RH_FISHING_POLE)->GetText().GetFrench())
|
||||||
|
);
|
||||||
|
|
||||||
// Lake Hylia water level system
|
// Lake Hylia water level system
|
||||||
CustomMessageManager::Instance->CreateMessage(Randomizer::hintMessageTableID, TEXT_LAKE_HYLIA_WATER_SWITCH_SIGN,
|
CustomMessageManager::Instance->CreateMessage(Randomizer::hintMessageTableID, TEXT_LAKE_HYLIA_WATER_SWITCH_SIGN,
|
||||||
CustomMessage("Water level control system.&Keep away!",
|
CustomMessage("Water level control system.&Keep away!",
|
||||||
@ -731,6 +746,7 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
|||||||
|
|
||||||
// Bottle Refills
|
// Bottle Refills
|
||||||
case RG_MILK:
|
case RG_MILK:
|
||||||
|
case RG_FISH:
|
||||||
case RG_RED_POTION_REFILL:
|
case RG_RED_POTION_REFILL:
|
||||||
case RG_GREEN_POTION_REFILL:
|
case RG_GREEN_POTION_REFILL:
|
||||||
case RG_BLUE_POTION_REFILL:
|
case RG_BLUE_POTION_REFILL:
|
||||||
@ -782,6 +798,8 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
|||||||
case RG_MAGIC_SINGLE:
|
case RG_MAGIC_SINGLE:
|
||||||
case RG_MAGIC_DOUBLE:
|
case RG_MAGIC_DOUBLE:
|
||||||
return gSaveContext.magicLevel < 2 ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
return gSaveContext.magicLevel < 2 ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
|
case RG_FISHING_POLE:
|
||||||
|
return !Flags_GetRandomizerInf(RAND_INF_FISHING_POLE_FOUND) ? CAN_OBTAIN : CANT_OBTAIN_ALREADY_HAVE;
|
||||||
|
|
||||||
// Songs
|
// Songs
|
||||||
case RG_ZELDAS_LULLABY:
|
case RG_ZELDAS_LULLABY:
|
||||||
@ -1123,6 +1141,7 @@ GetItemID Randomizer::GetItemIdFromRandomizerGet(RandomizerGet randoGet, GetItem
|
|||||||
case RG_BLUE_POTION_REFILL:
|
case RG_BLUE_POTION_REFILL:
|
||||||
case RG_BUY_BLUE_POTION:
|
case RG_BUY_BLUE_POTION:
|
||||||
return GI_POTION_BLUE;
|
return GI_POTION_BLUE;
|
||||||
|
case RG_FISH:
|
||||||
case RG_BUY_FISH:
|
case RG_BUY_FISH:
|
||||||
return GI_FISH;
|
return GI_FISH;
|
||||||
case RG_BUY_BLUE_FIRE:
|
case RG_BUY_BLUE_FIRE:
|
||||||
@ -1318,6 +1337,7 @@ bool Randomizer::IsItemVanilla(RandomizerGet randoGet) {
|
|||||||
case RG_PIECE_OF_HEART:
|
case RG_PIECE_OF_HEART:
|
||||||
case RG_HEART_CONTAINER:
|
case RG_HEART_CONTAINER:
|
||||||
case RG_MILK:
|
case RG_MILK:
|
||||||
|
case RG_FISH:
|
||||||
case RG_BOMBS_5:
|
case RG_BOMBS_5:
|
||||||
case RG_BOMBS_10:
|
case RG_BOMBS_10:
|
||||||
case RG_BOMBS_20:
|
case RG_BOMBS_20:
|
||||||
@ -1520,9 +1540,57 @@ std::map<RandomizerCheck, RandomizerInf> rcToRandomizerInf = {
|
|||||||
{ RC_LH_ADULT_FISHING, RAND_INF_ADULT_FISHING },
|
{ RC_LH_ADULT_FISHING, RAND_INF_ADULT_FISHING },
|
||||||
{ RC_MARKET_10_BIG_POES, RAND_INF_10_BIG_POES },
|
{ RC_MARKET_10_BIG_POES, RAND_INF_10_BIG_POES },
|
||||||
{ RC_KAK_100_GOLD_SKULLTULA_REWARD, RAND_INF_KAK_100_GOLD_SKULLTULA_REWARD },
|
{ RC_KAK_100_GOLD_SKULLTULA_REWARD, RAND_INF_KAK_100_GOLD_SKULLTULA_REWARD },
|
||||||
|
{ RC_LH_CHILD_FISH_1, RAND_INF_CHILD_FISH_1 },
|
||||||
|
{ RC_LH_CHILD_FISH_2, RAND_INF_CHILD_FISH_2 },
|
||||||
|
{ RC_LH_CHILD_FISH_3, RAND_INF_CHILD_FISH_3 },
|
||||||
|
{ RC_LH_CHILD_FISH_4, RAND_INF_CHILD_FISH_4 },
|
||||||
|
{ RC_LH_CHILD_FISH_5, RAND_INF_CHILD_FISH_5 },
|
||||||
|
{ RC_LH_CHILD_FISH_6, RAND_INF_CHILD_FISH_6 },
|
||||||
|
{ RC_LH_CHILD_FISH_7, RAND_INF_CHILD_FISH_7 },
|
||||||
|
{ RC_LH_CHILD_FISH_8, RAND_INF_CHILD_FISH_8 },
|
||||||
|
{ RC_LH_CHILD_FISH_9, RAND_INF_CHILD_FISH_9 },
|
||||||
|
{ RC_LH_CHILD_FISH_10, RAND_INF_CHILD_FISH_10 },
|
||||||
|
{ RC_LH_CHILD_FISH_11, RAND_INF_CHILD_FISH_11 },
|
||||||
|
{ RC_LH_CHILD_FISH_12, RAND_INF_CHILD_FISH_12 },
|
||||||
|
{ RC_LH_CHILD_FISH_13, RAND_INF_CHILD_FISH_13 },
|
||||||
|
{ RC_LH_CHILD_FISH_14, RAND_INF_CHILD_FISH_14 },
|
||||||
|
{ RC_LH_CHILD_FISH_15, RAND_INF_CHILD_FISH_15 },
|
||||||
|
{ RC_LH_CHILD_LOACH_1, RAND_INF_CHILD_LOACH_1 },
|
||||||
|
{ RC_LH_CHILD_LOACH_2, RAND_INF_CHILD_LOACH_2 },
|
||||||
|
{ RC_LH_ADULT_FISH_1, RAND_INF_ADULT_FISH_1 },
|
||||||
|
{ RC_LH_ADULT_FISH_2, RAND_INF_ADULT_FISH_2 },
|
||||||
|
{ RC_LH_ADULT_FISH_3, RAND_INF_ADULT_FISH_3 },
|
||||||
|
{ RC_LH_ADULT_FISH_4, RAND_INF_ADULT_FISH_4 },
|
||||||
|
{ RC_LH_ADULT_FISH_5, RAND_INF_ADULT_FISH_5 },
|
||||||
|
{ RC_LH_ADULT_FISH_6, RAND_INF_ADULT_FISH_6 },
|
||||||
|
{ RC_LH_ADULT_FISH_7, RAND_INF_ADULT_FISH_7 },
|
||||||
|
{ RC_LH_ADULT_FISH_8, RAND_INF_ADULT_FISH_8 },
|
||||||
|
{ RC_LH_ADULT_FISH_9, RAND_INF_ADULT_FISH_9 },
|
||||||
|
{ RC_LH_ADULT_FISH_10, RAND_INF_ADULT_FISH_10 },
|
||||||
|
{ RC_LH_ADULT_FISH_11, RAND_INF_ADULT_FISH_11 },
|
||||||
|
{ RC_LH_ADULT_FISH_12, RAND_INF_ADULT_FISH_12 },
|
||||||
|
{ RC_LH_ADULT_FISH_13, RAND_INF_ADULT_FISH_13 },
|
||||||
|
{ RC_LH_ADULT_FISH_14, RAND_INF_ADULT_FISH_14 },
|
||||||
|
{ RC_LH_ADULT_FISH_15, RAND_INF_ADULT_FISH_15 },
|
||||||
|
{ RC_LH_ADULT_LOACH, RAND_INF_ADULT_LOACH },
|
||||||
|
{ RC_ZR_OPEN_GROTTO_FISH, RAND_INF_GROTTO_FISH_ZR_OPEN_GROTTO },
|
||||||
|
{ RC_DMC_UPPER_GROTTO_FISH, RAND_INF_GROTTO_FISH_DMC_UPPER_GROTTO },
|
||||||
|
{ RC_DMT_STORMS_GROTTO_FISH, RAND_INF_GROTTO_FISH_DMT_STORMS_GROTTO },
|
||||||
|
{ RC_KAK_OPEN_GROTTO_FISH, RAND_INF_GROTTO_FISH_KAK_OPEN_GROTTO },
|
||||||
|
{ RC_HF_NEAR_MARKET_GROTTO_FISH, RAND_INF_GROTTO_FISH_HF_NEAR_MARKET_GROTTO },
|
||||||
|
{ RC_HF_OPEN_GROTTO_FISH, RAND_INF_GROTTO_FISH_HF_OPEN_GROTTO },
|
||||||
|
{ RC_HF_SOUTHEAST_GROTTO_FISH, RAND_INF_GROTTO_FISH_HF_SOUTHEAST_GROTTO },
|
||||||
|
{ RC_LW_NEAR_SHORTCUTS_GROTTO_FISH, RAND_INF_GROTTO_FISH_LW_NEAR_SHORTCUTS_GROTTO },
|
||||||
|
{ RC_KF_STORMS_GROTTO_FISH, RAND_INF_GROTTO_FISH_KF_STORMS_GROTTO },
|
||||||
|
{ RC_ZD_FISH_1, RAND_INF_ZD_FISH_1 },
|
||||||
|
{ RC_ZD_FISH_2, RAND_INF_ZD_FISH_2 },
|
||||||
|
{ RC_ZD_FISH_3, RAND_INF_ZD_FISH_3 },
|
||||||
|
{ RC_ZD_FISH_4, RAND_INF_ZD_FISH_4 },
|
||||||
|
{ RC_ZD_FISH_5, RAND_INF_ZD_FISH_5 },
|
||||||
};
|
};
|
||||||
|
|
||||||
Rando::Location* Randomizer::GetCheckObjectFromActor(s16 actorId, s16 sceneNum, s32 actorParams = 0x00) {
|
Rando::Location* Randomizer::GetCheckObjectFromActor(s16 actorId, s16 sceneNum, s32 actorParams = 0x00) {
|
||||||
|
auto fs = OTRGlobals::Instance->gRandoContext->GetFishsanity();
|
||||||
RandomizerCheck specialRc = RC_UNKNOWN_CHECK;
|
RandomizerCheck specialRc = RC_UNKNOWN_CHECK;
|
||||||
// TODO: Migrate these special cases into table, or at least document why they are special
|
// TODO: Migrate these special cases into table, or at least document why they are special
|
||||||
switch(sceneNum) {
|
switch(sceneNum) {
|
||||||
@ -1620,6 +1688,15 @@ Rando::Location* Randomizer::GetCheckObjectFromActor(s16 actorId, s16 sceneNum,
|
|||||||
specialRc = RC_DODONGOS_CAVERN_GOSSIP_STONE;
|
specialRc = RC_DODONGOS_CAVERN_GOSSIP_STONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SCENE_GROTTOS:
|
||||||
|
// Grotto fish are identified by respawn data
|
||||||
|
if (actorId == ACTOR_EN_FISH && actorParams == 1) {
|
||||||
|
int8_t data = gSaveContext.respawn[RESPAWN_MODE_RETURN].data;
|
||||||
|
if (Rando::StaticData::randomizerGrottoFishMap.contains(data)) {
|
||||||
|
specialRc = Rando::StaticData::randomizerGrottoFishMap[data];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (specialRc != RC_UNKNOWN_CHECK) {
|
if (specialRc != RC_UNKNOWN_CHECK) {
|
||||||
@ -1727,6 +1804,27 @@ CowIdentity Randomizer::IdentifyCow(s32 sceneNum, s32 posX, s32 posZ) {
|
|||||||
return cowIdentity;
|
return cowIdentity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FishIdentity Randomizer::IdentifyFish(s32 sceneNum, s32 actorParams) {
|
||||||
|
struct FishIdentity fishIdentity;
|
||||||
|
|
||||||
|
fishIdentity.randomizerInf = RAND_INF_MAX;
|
||||||
|
fishIdentity.randomizerCheck = RC_UNKNOWN_CHECK;
|
||||||
|
|
||||||
|
// Fishsanity will determine what the identity of the fish should be
|
||||||
|
if (sceneNum == SCENE_FISHING_POND) {
|
||||||
|
return OTRGlobals::Instance->gRandoContext->GetFishsanity()->IdentifyPondFish(actorParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
Rando::Location* location = GetCheckObjectFromActor(ACTOR_EN_FISH, sceneNum, actorParams);
|
||||||
|
|
||||||
|
if (location->GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
|
||||||
|
fishIdentity.randomizerInf = rcToRandomizerInf[location->GetRandomizerCheck()];
|
||||||
|
fishIdentity.randomizerCheck = location->GetRandomizerCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
return fishIdentity;
|
||||||
|
}
|
||||||
|
|
||||||
u8 Randomizer::GetRandoSettingValue(RandomizerSettingKey randoSettingKey) {
|
u8 Randomizer::GetRandoSettingValue(RandomizerSettingKey randoSettingKey) {
|
||||||
return Rando::Context::GetInstance()->GetOption(randoSettingKey).GetSelectedOptionIndex();
|
return Rando::Context::GetInstance()->GetOption(randoSettingKey).GetSelectedOptionIndex();
|
||||||
}
|
}
|
||||||
@ -2557,6 +2655,32 @@ CustomMessage Randomizer::GetSariaMessage(u16 originalTextId) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CustomMessage Randomizer::GetFishingPondOwnerMessage(u16 originalTextId) {
|
||||||
|
CustomMessage hintMessageEntry = CustomMessageManager::Instance->RetrieveMessage(Randomizer::randoMiscHintsTableID, TEXT_FISHING_POND_START);
|
||||||
|
CustomMessage messageEntry = CustomMessage(
|
||||||
|
"Sorry, but the pond is closed.&I've lost my good %rfishing pole%w...&Can't go fishing without it!",
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
);
|
||||||
|
|
||||||
|
if (Rando::Context::GetInstance()->GetOption(RSK_FISHING_POLE_HINT)) {
|
||||||
|
messageEntry = messageEntry + hintMessageEntry;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if the fishing pond guy doesnt remember me i will cry :(
|
||||||
|
if (originalTextId == TEXT_FISHING_POND_START_MET) {
|
||||||
|
messageEntry = CustomMessage(
|
||||||
|
"Hey, mister! I remember you!&It's been a long time!^",
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
) + messageEntry;
|
||||||
|
}
|
||||||
|
|
||||||
|
messageEntry.Format();
|
||||||
|
|
||||||
|
return messageEntry;
|
||||||
|
}
|
||||||
|
|
||||||
CustomMessage Randomizer::GetMerchantMessage(RandomizerInf randomizerInf, u16 textId, bool mysterious) {
|
CustomMessage Randomizer::GetMerchantMessage(RandomizerInf randomizerInf, u16 textId, bool mysterious) {
|
||||||
auto ctx = Rando::Context::GetInstance();
|
auto ctx = Rando::Context::GetInstance();
|
||||||
CustomMessage messageEntry = CustomMessageManager::Instance->RetrieveMessage(Randomizer::merchantMessageTableID, textId);
|
CustomMessage messageEntry = CustomMessageManager::Instance->RetrieveMessage(Randomizer::merchantMessageTableID, textId);
|
||||||
@ -3055,7 +3179,7 @@ CustomMessage Randomizer::GetGoronMessage(u16 index) {
|
|||||||
void Randomizer::CreateCustomMessages() {
|
void Randomizer::CreateCustomMessages() {
|
||||||
// RANDTODO: Translate into french and german and replace GIMESSAGE_UNTRANSLATED
|
// RANDTODO: Translate into french and german and replace GIMESSAGE_UNTRANSLATED
|
||||||
// with GIMESSAGE(getItemID, itemID, english, german, french).
|
// with GIMESSAGE(getItemID, itemID, english, german, french).
|
||||||
const std::array<GetItemMessage, 71> getItemMessages = {{
|
const std::array<GetItemMessage, 72> getItemMessages = {{
|
||||||
GIMESSAGE(RG_GREG_RUPEE, ITEM_MASK_GORON,
|
GIMESSAGE(RG_GREG_RUPEE, ITEM_MASK_GORON,
|
||||||
"You found %gGreg%w!",
|
"You found %gGreg%w!",
|
||||||
"%gGreg%w! Du hast ihn wirklich gefunden!",
|
"%gGreg%w! Du hast ihn wirklich gefunden!",
|
||||||
@ -3321,6 +3445,7 @@ void Randomizer::CreateCustomMessages() {
|
|||||||
"You got the %y\xa6%r button for the&Ocarina%w! You can now use it&while playing songs!",
|
"You got the %y\xa6%r button for the&Ocarina%w! You can now use it&while playing songs!",
|
||||||
"Der %y\xa6%r Knopf%w!&Du kannst ihn nun zum Spielen&von Liedern auf der %rOkarina%w&verwenden!",
|
"Der %y\xa6%r Knopf%w!&Du kannst ihn nun zum Spielen&von Liedern auf der %rOkarina%w&verwenden!",
|
||||||
"Vous trouvez la %rtouche %y\xa6%r de&l'Ocarina%w! Vous pouvez&maintenant l'utiliser lorsque&vous en jouez!"),
|
"Vous trouvez la %rtouche %y\xa6%r de&l'Ocarina%w! Vous pouvez&maintenant l'utiliser lorsque&vous en jouez!"),
|
||||||
|
GIMESSAGE_UNTRANSLATED(RG_FISHING_POLE, ITEM_FISHING_POLE, "You found a lost %rFishing Pole%w!&Time to hit the pond!"),
|
||||||
}};
|
}};
|
||||||
CreateGetItemMessages(&getItemMessages);
|
CreateGetItemMessages(&getItemMessages);
|
||||||
CreateRupeeMessages();
|
CreateRupeeMessages();
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <soh/Enhancements/custom-message/CustomMessageManager.h>
|
#include <soh/Enhancements/custom-message/CustomMessageManager.h>
|
||||||
#include "soh/Enhancements/item-tables/ItemTableTypes.h"
|
#include "soh/Enhancements/item-tables/ItemTableTypes.h"
|
||||||
#include "../custom-message/CustomMessageTypes.h"
|
#include "../custom-message/CustomMessageTypes.h"
|
||||||
|
#include "soh/Enhancements/randomizer/fishsanity.h"
|
||||||
|
|
||||||
#define MAX_SEED_STRING_SIZE 1024
|
#define MAX_SEED_STRING_SIZE 1024
|
||||||
#define NUM_TRIFORCE_PIECE_MESSAGES 6
|
#define NUM_TRIFORCE_PIECE_MESSAGES 6
|
||||||
@ -53,6 +54,7 @@ class Randomizer {
|
|||||||
ScrubIdentity IdentifyScrub(s32 sceneNum, s32 actorParams, s32 respawnData);
|
ScrubIdentity IdentifyScrub(s32 sceneNum, s32 actorParams, s32 respawnData);
|
||||||
ShopItemIdentity IdentifyShopItem(s32 sceneNum, u8 slotIndex);
|
ShopItemIdentity IdentifyShopItem(s32 sceneNum, u8 slotIndex);
|
||||||
CowIdentity IdentifyCow(s32 sceneNum, s32 posX, s32 posZ);
|
CowIdentity IdentifyCow(s32 sceneNum, s32 posX, s32 posZ);
|
||||||
|
FishIdentity IdentifyFish(s32 sceneNum, s32 actorParams);
|
||||||
GetItemEntry GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogItemId, bool checkObtainability = true);
|
GetItemEntry GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogItemId, bool checkObtainability = true);
|
||||||
GetItemEntry GetItemFromActor(s16 actorId, s16 sceneNum, s16 actorParams, GetItemID ogItemId, bool checkObtainability = true);
|
GetItemEntry GetItemFromActor(s16 actorId, s16 sceneNum, s16 actorParams, GetItemID ogItemId, bool checkObtainability = true);
|
||||||
GetItemID GetItemIdFromRandomizerGet(RandomizerGet randoGet, GetItemID ogItemId);
|
GetItemID GetItemIdFromRandomizerGet(RandomizerGet randoGet, GetItemID ogItemId);
|
||||||
@ -62,6 +64,7 @@ class Randomizer {
|
|||||||
CustomMessage ReplaceWithItemName(CustomMessage message, std::string&& toReplace, RandomizerCheck hintedCheck);
|
CustomMessage ReplaceWithItemName(CustomMessage message, std::string&& toReplace, RandomizerCheck hintedCheck);
|
||||||
CustomMessage GetMiscHintMessage(TextIDs textToGet, RandomizerCheck hintedCheck, RandomizerCheck otherCheck = RC_UNKNOWN_CHECK);
|
CustomMessage GetMiscHintMessage(TextIDs textToGet, RandomizerCheck hintedCheck, RandomizerCheck otherCheck = RC_UNKNOWN_CHECK);
|
||||||
CustomMessage GetSariaMessage(u16 originalTextId);
|
CustomMessage GetSariaMessage(u16 originalTextId);
|
||||||
|
CustomMessage GetFishingPondOwnerMessage(u16 originalTextId);
|
||||||
CustomMessage GetMerchantMessage(RandomizerInf randomizerInf, u16 textId, bool mysterious = false);
|
CustomMessage GetMerchantMessage(RandomizerInf randomizerInf, u16 textId, bool mysterious = false);
|
||||||
RandomizerCheck GetCheckFromActor(s16 actorId, s16 sceneNum, s16 actorParams);
|
RandomizerCheck GetCheckFromActor(s16 actorId, s16 sceneNum, s16 actorParams);
|
||||||
CustomMessage GetCursedSkullMessage(s16 params, RandomizerCheck hintedCheck);
|
CustomMessage GetCursedSkullMessage(s16 params, RandomizerCheck hintedCheck);
|
||||||
|
@ -112,6 +112,7 @@ typedef enum {
|
|||||||
RCTYPE_BOSS_HEART_OR_OTHER_REWARD, // Boss heart container or lesser dungeon rewards (lens, ice arrow)
|
RCTYPE_BOSS_HEART_OR_OTHER_REWARD, // Boss heart container or lesser dungeon rewards (lens, ice arrow)
|
||||||
RCTYPE_DUNGEON_REWARD, // Dungeon rewards (blue warps)
|
RCTYPE_DUNGEON_REWARD, // Dungeon rewards (blue warps)
|
||||||
RCTYPE_OCARINA, // Ocarina locations
|
RCTYPE_OCARINA, // Ocarina locations
|
||||||
|
RCTYPE_FISH,
|
||||||
} RandomizerCheckType;
|
} RandomizerCheckType;
|
||||||
|
|
||||||
typedef enum { RCQUEST_VANILLA, RCQUEST_MQ, RCQUEST_BOTH } RandomizerCheckQuest;
|
typedef enum { RCQUEST_VANILLA, RCQUEST_MQ, RCQUEST_BOTH } RandomizerCheckQuest;
|
||||||
@ -905,7 +906,40 @@ typedef enum {
|
|||||||
RC_ZF_GS_HIDDEN_CAVE,
|
RC_ZF_GS_HIDDEN_CAVE,
|
||||||
RC_LH_UNDERWATER_ITEM,
|
RC_LH_UNDERWATER_ITEM,
|
||||||
RC_LH_CHILD_FISHING,
|
RC_LH_CHILD_FISHING,
|
||||||
|
RC_LH_CHILD_FISH_1,
|
||||||
|
RC_LH_CHILD_FISH_2,
|
||||||
|
RC_LH_CHILD_FISH_3,
|
||||||
|
RC_LH_CHILD_FISH_4,
|
||||||
|
RC_LH_CHILD_FISH_5,
|
||||||
|
RC_LH_CHILD_FISH_6,
|
||||||
|
RC_LH_CHILD_FISH_7,
|
||||||
|
RC_LH_CHILD_FISH_8,
|
||||||
|
RC_LH_CHILD_FISH_9,
|
||||||
|
RC_LH_CHILD_FISH_10,
|
||||||
|
RC_LH_CHILD_FISH_11,
|
||||||
|
RC_LH_CHILD_FISH_12,
|
||||||
|
RC_LH_CHILD_FISH_13,
|
||||||
|
RC_LH_CHILD_FISH_14,
|
||||||
|
RC_LH_CHILD_FISH_15,
|
||||||
|
RC_LH_CHILD_LOACH_1,
|
||||||
|
RC_LH_CHILD_LOACH_2,
|
||||||
RC_LH_ADULT_FISHING,
|
RC_LH_ADULT_FISHING,
|
||||||
|
RC_LH_ADULT_FISH_1,
|
||||||
|
RC_LH_ADULT_FISH_2,
|
||||||
|
RC_LH_ADULT_FISH_3,
|
||||||
|
RC_LH_ADULT_FISH_4,
|
||||||
|
RC_LH_ADULT_FISH_5,
|
||||||
|
RC_LH_ADULT_FISH_6,
|
||||||
|
RC_LH_ADULT_FISH_7,
|
||||||
|
RC_LH_ADULT_FISH_8,
|
||||||
|
RC_LH_ADULT_FISH_9,
|
||||||
|
RC_LH_ADULT_FISH_10,
|
||||||
|
RC_LH_ADULT_FISH_11,
|
||||||
|
RC_LH_ADULT_FISH_12,
|
||||||
|
RC_LH_ADULT_FISH_13,
|
||||||
|
RC_LH_ADULT_FISH_14,
|
||||||
|
RC_LH_ADULT_FISH_15,
|
||||||
|
RC_LH_ADULT_LOACH,
|
||||||
RC_LH_LAB_DIVE,
|
RC_LH_LAB_DIVE,
|
||||||
RC_LH_TRADE_FROG,
|
RC_LH_TRADE_FROG,
|
||||||
RC_LH_FREESTANDING_POH,
|
RC_LH_FREESTANDING_POH,
|
||||||
@ -1401,6 +1435,21 @@ typedef enum {
|
|||||||
RC_SARIA_SONG_HINT,
|
RC_SARIA_SONG_HINT,
|
||||||
RC_ALTAR_HINT_CHILD,
|
RC_ALTAR_HINT_CHILD,
|
||||||
RC_ALTAR_HINT_ADULT,
|
RC_ALTAR_HINT_ADULT,
|
||||||
|
RC_FISHING_POLE_HINT,
|
||||||
|
RC_DMC_UPPER_GROTTO_FISH,
|
||||||
|
RC_DMT_STORMS_GROTTO_FISH,
|
||||||
|
RC_HF_SOUTHEAST_GROTTO_FISH,
|
||||||
|
RC_HF_NEAR_MARKET_GROTTO_FISH,
|
||||||
|
RC_HF_OPEN_GROTTO_FISH,
|
||||||
|
RC_KAK_OPEN_GROTTO_FISH,
|
||||||
|
RC_KF_STORMS_GROTTO_FISH,
|
||||||
|
RC_LW_NEAR_SHORTCUTS_GROTTO_FISH,
|
||||||
|
RC_ZR_OPEN_GROTTO_FISH,
|
||||||
|
RC_ZD_FISH_1,
|
||||||
|
RC_ZD_FISH_2,
|
||||||
|
RC_ZD_FISH_3,
|
||||||
|
RC_ZD_FISH_4,
|
||||||
|
RC_ZD_FISH_5,
|
||||||
RC_MAX
|
RC_MAX
|
||||||
} RandomizerCheck;
|
} RandomizerCheck;
|
||||||
|
|
||||||
@ -1807,6 +1856,7 @@ typedef enum {
|
|||||||
RG_HEART_CONTAINER,
|
RG_HEART_CONTAINER,
|
||||||
RG_ICE_TRAP,
|
RG_ICE_TRAP,
|
||||||
RG_MILK,
|
RG_MILK,
|
||||||
|
RG_FISH,
|
||||||
RG_BOMBS_5,
|
RG_BOMBS_5,
|
||||||
RG_BOMBS_10,
|
RG_BOMBS_10,
|
||||||
RG_BOMBS_20,
|
RG_BOMBS_20,
|
||||||
@ -1872,6 +1922,7 @@ typedef enum {
|
|||||||
RG_OCARINA_C_DOWN_BUTTON,
|
RG_OCARINA_C_DOWN_BUTTON,
|
||||||
RG_OCARINA_C_LEFT_BUTTON,
|
RG_OCARINA_C_LEFT_BUTTON,
|
||||||
RG_OCARINA_C_RIGHT_BUTTON,
|
RG_OCARINA_C_RIGHT_BUTTON,
|
||||||
|
RG_FISHING_POLE,
|
||||||
RG_HINT,
|
RG_HINT,
|
||||||
RG_TYCOON_WALLET,
|
RG_TYCOON_WALLET,
|
||||||
RG_FAIRY_OCARINA,
|
RG_FAIRY_OCARINA,
|
||||||
@ -1959,6 +2010,7 @@ typedef enum {
|
|||||||
RH_ALTAR_CHILD,
|
RH_ALTAR_CHILD,
|
||||||
RH_ALTAR_ADULT,
|
RH_ALTAR_ADULT,
|
||||||
RH_SARIA,
|
RH_SARIA,
|
||||||
|
RH_FISHING_POLE,
|
||||||
RH_SHEIK_LIGHT_ARROWS,
|
RH_SHEIK_LIGHT_ARROWS,
|
||||||
RH_MINUET_WARP_LOC,
|
RH_MINUET_WARP_LOC,
|
||||||
RH_BOLERO_WARP_LOC,
|
RH_BOLERO_WARP_LOC,
|
||||||
@ -2183,6 +2235,7 @@ typedef enum {
|
|||||||
RHT_KF_MIDOS_BOTTOM_RIGHT_CHEST,
|
RHT_KF_MIDOS_BOTTOM_RIGHT_CHEST,
|
||||||
RHT_KF_KOKIRI_SWORD_CHEST,
|
RHT_KF_KOKIRI_SWORD_CHEST,
|
||||||
RHT_KF_STORMS_GROTTO_CHEST,
|
RHT_KF_STORMS_GROTTO_CHEST,
|
||||||
|
RHT_KF_STORMS_GROTTO_FISH,
|
||||||
RHT_KF_LINKS_HOUSE_COW,
|
RHT_KF_LINKS_HOUSE_COW,
|
||||||
RHT_KF_GS_KNOW_IT_ALL_HOUSE,
|
RHT_KF_GS_KNOW_IT_ALL_HOUSE,
|
||||||
RHT_KF_GS_BEAN_PATCH,
|
RHT_KF_GS_BEAN_PATCH,
|
||||||
@ -2199,6 +2252,7 @@ typedef enum {
|
|||||||
RHT_LW_OCARINA_MEMORY_GAME,
|
RHT_LW_OCARINA_MEMORY_GAME,
|
||||||
RHT_LW_TARGET_IN_WOODS,
|
RHT_LW_TARGET_IN_WOODS,
|
||||||
RHT_LW_NEAR_SHORTCUTS_GROTTO_CHEST,
|
RHT_LW_NEAR_SHORTCUTS_GROTTO_CHEST,
|
||||||
|
RHT_LW_NEAR_SHORTCUTS_GROTTO_FISH,
|
||||||
RHT_LW_TRADE_COJIRO,
|
RHT_LW_TRADE_COJIRO,
|
||||||
RHT_DEKU_THEATER_SKULL_MASK,
|
RHT_DEKU_THEATER_SKULL_MASK,
|
||||||
RHT_DEKU_THEATER_MASK_OF_TRUTH,
|
RHT_DEKU_THEATER_MASK_OF_TRUTH,
|
||||||
@ -2218,9 +2272,12 @@ typedef enum {
|
|||||||
RHT_SFM_GS,
|
RHT_SFM_GS,
|
||||||
RHT_HF_OCARINA_OF_TIME_ITEM,
|
RHT_HF_OCARINA_OF_TIME_ITEM,
|
||||||
RHT_HF_NEAR_MARKET_GROTTO_CHEST,
|
RHT_HF_NEAR_MARKET_GROTTO_CHEST,
|
||||||
|
RHT_HF_NEAR_MARKET_GROTTO_FISH,
|
||||||
RHT_HF_TEKTITE_GROTTO_FREESTANDING_POH,
|
RHT_HF_TEKTITE_GROTTO_FREESTANDING_POH,
|
||||||
RHT_HF_SOUTHEAST_GROTTO_CHEST,
|
RHT_HF_SOUTHEAST_GROTTO_CHEST,
|
||||||
|
RHT_HF_SOUTHEAST_GROTTO_FISH,
|
||||||
RHT_HF_OPEN_GROTTO_CHEST,
|
RHT_HF_OPEN_GROTTO_CHEST,
|
||||||
|
RHT_HF_OPEN_GROTTO_FISH,
|
||||||
RHT_HF_DEKU_SCRUB_GROTTO,
|
RHT_HF_DEKU_SCRUB_GROTTO,
|
||||||
RHT_HF_COW_GROTTO_COW,
|
RHT_HF_COW_GROTTO_COW,
|
||||||
RHT_HF_GS_COW_GROTTO,
|
RHT_HF_GS_COW_GROTTO,
|
||||||
@ -2288,6 +2345,7 @@ typedef enum {
|
|||||||
RHT_KAK_WINDMILL_FREESTANDING_POH,
|
RHT_KAK_WINDMILL_FREESTANDING_POH,
|
||||||
RHT_KAK_MAN_ON_ROOF,
|
RHT_KAK_MAN_ON_ROOF,
|
||||||
RHT_KAK_OPEN_GROTTO_CHEST,
|
RHT_KAK_OPEN_GROTTO_CHEST,
|
||||||
|
RHT_KAK_OPEN_GROTTO_FISH,
|
||||||
RHT_KAK_REDEAD_GROTTO_CHEST,
|
RHT_KAK_REDEAD_GROTTO_CHEST,
|
||||||
RHT_KAK_SHOOTING_GALLERY_REWARD,
|
RHT_KAK_SHOOTING_GALLERY_REWARD,
|
||||||
RHT_KAK_TRADE_ODD_MUSHROOM,
|
RHT_KAK_TRADE_ODD_MUSHROOM,
|
||||||
@ -2334,6 +2392,7 @@ typedef enum {
|
|||||||
RHT_DMT_FREESTANDING_POH,
|
RHT_DMT_FREESTANDING_POH,
|
||||||
RHT_DMT_CHEST,
|
RHT_DMT_CHEST,
|
||||||
RHT_DMT_STORMS_GROTTO_CHEST,
|
RHT_DMT_STORMS_GROTTO_CHEST,
|
||||||
|
RHT_DMT_STORMS_GROTTO_FISH,
|
||||||
RHT_DMT_TRADE_BROKEN_SWORD,
|
RHT_DMT_TRADE_BROKEN_SWORD,
|
||||||
RHT_DMT_TRADE_EYEDROPS,
|
RHT_DMT_TRADE_EYEDROPS,
|
||||||
RHT_DMT_TRADE_CLAIM_CHECK,
|
RHT_DMT_TRADE_CLAIM_CHECK,
|
||||||
@ -2367,6 +2426,7 @@ typedef enum {
|
|||||||
RHT_DMC_VOLCANO_FREESTANDING_POH,
|
RHT_DMC_VOLCANO_FREESTANDING_POH,
|
||||||
RHT_DMC_WALL_FREESTANDING_POH,
|
RHT_DMC_WALL_FREESTANDING_POH,
|
||||||
RHT_DMC_UPPER_GROTTO_CHEST,
|
RHT_DMC_UPPER_GROTTO_CHEST,
|
||||||
|
RHT_DMC_UPPER_GROTTO_FISH,
|
||||||
RHT_DMC_GREAT_FAIRY_REWARD,
|
RHT_DMC_GREAT_FAIRY_REWARD,
|
||||||
RHT_DMC_DEKU_SCRUB,
|
RHT_DMC_DEKU_SCRUB,
|
||||||
RHT_DMC_DEKU_SCRUB_GROTTO_LEFT,
|
RHT_DMC_DEKU_SCRUB_GROTTO_LEFT,
|
||||||
@ -2376,6 +2436,7 @@ typedef enum {
|
|||||||
RHT_DMC_GS_BEAN_PATCH,
|
RHT_DMC_GS_BEAN_PATCH,
|
||||||
RHT_ZR_MAGIC_BEAN_SALESMAN,
|
RHT_ZR_MAGIC_BEAN_SALESMAN,
|
||||||
RHT_ZR_OPEN_GROTTO_CHEST,
|
RHT_ZR_OPEN_GROTTO_CHEST,
|
||||||
|
RHT_ZR_OPEN_GROTTO_FISH,
|
||||||
RHT_ZR_FROGS_ZELDAS_LULLABY,
|
RHT_ZR_FROGS_ZELDAS_LULLABY,
|
||||||
RHT_ZR_FROGS_EPONAS_SONG,
|
RHT_ZR_FROGS_EPONAS_SONG,
|
||||||
RHT_ZR_FROGS_SARIAS_SONG,
|
RHT_ZR_FROGS_SARIAS_SONG,
|
||||||
@ -2404,6 +2465,7 @@ typedef enum {
|
|||||||
RHT_ZD_SHOP_ITEM_6,
|
RHT_ZD_SHOP_ITEM_6,
|
||||||
RHT_ZD_SHOP_ITEM_7,
|
RHT_ZD_SHOP_ITEM_7,
|
||||||
RHT_ZD_SHOP_ITEM_8,
|
RHT_ZD_SHOP_ITEM_8,
|
||||||
|
RHT_ZD_FISH,
|
||||||
RHT_ZF_GREAT_FAIRY_REWARD,
|
RHT_ZF_GREAT_FAIRY_REWARD,
|
||||||
RHT_ZF_ICEBERG_FREESTANDING_POH,
|
RHT_ZF_ICEBERG_FREESTANDING_POH,
|
||||||
RHT_ZF_BOTTOM_FREESTANDING_POH,
|
RHT_ZF_BOTTOM_FREESTANDING_POH,
|
||||||
@ -2413,6 +2475,8 @@ typedef enum {
|
|||||||
RHT_LH_UNDERWATER_ITEM,
|
RHT_LH_UNDERWATER_ITEM,
|
||||||
RHT_LH_CHILD_FISHING,
|
RHT_LH_CHILD_FISHING,
|
||||||
RHT_LH_ADULT_FISHING,
|
RHT_LH_ADULT_FISHING,
|
||||||
|
RHT_LH_POND_FISH,
|
||||||
|
RHT_LH_HYRULE_LOACH,
|
||||||
RHT_LH_LAB_DIVE,
|
RHT_LH_LAB_DIVE,
|
||||||
RHT_LH_TRADE_FROG,
|
RHT_LH_TRADE_FROG,
|
||||||
RHT_LH_FREESTANDING_POH,
|
RHT_LH_FREESTANDING_POH,
|
||||||
@ -3094,6 +3158,7 @@ typedef enum {
|
|||||||
RHT_OCARINA_C_DOWN_BUTTON,
|
RHT_OCARINA_C_DOWN_BUTTON,
|
||||||
RHT_OCARINA_C_LEFT_BUTTON,
|
RHT_OCARINA_C_LEFT_BUTTON,
|
||||||
RHT_OCARINA_C_RIGHT_BUTTON,
|
RHT_OCARINA_C_RIGHT_BUTTON,
|
||||||
|
RHT_FISHING_POLE,
|
||||||
RHT_EPONA,
|
RHT_EPONA,
|
||||||
// Entrances
|
// Entrances
|
||||||
RHT_DESERT_COLOSSUS_TO_COLOSSUS_GROTTO,
|
RHT_DESERT_COLOSSUS_TO_COLOSSUS_GROTTO,
|
||||||
@ -3284,6 +3349,8 @@ typedef enum {
|
|||||||
RHT_WARP_CHOICE,
|
RHT_WARP_CHOICE,
|
||||||
RHT_FROGS_HINT01,
|
RHT_FROGS_HINT01,
|
||||||
RHT_FROGS_HINT02,
|
RHT_FROGS_HINT02,
|
||||||
|
RHT_FISHING_POLE_HINT01,
|
||||||
|
RHT_FISHING_POLE_HINT02,
|
||||||
// Ganon Line
|
// Ganon Line
|
||||||
RHT_GANON_LINE01,
|
RHT_GANON_LINE01,
|
||||||
RHT_GANON_LINE02,
|
RHT_GANON_LINE02,
|
||||||
@ -3453,6 +3520,7 @@ typedef enum {
|
|||||||
RSK_HBA_HINT,
|
RSK_HBA_HINT,
|
||||||
RSK_WARP_SONG_HINTS,
|
RSK_WARP_SONG_HINTS,
|
||||||
RSK_SCRUB_TEXT_HINT,
|
RSK_SCRUB_TEXT_HINT,
|
||||||
|
RSK_FISHING_POLE_HINT,
|
||||||
RSK_HINT_CLARITY,
|
RSK_HINT_CLARITY,
|
||||||
RSK_HINT_DISTRIBUTION,
|
RSK_HINT_DISTRIBUTION,
|
||||||
RSK_SHUFFLE_MAPANDCOMPASS,
|
RSK_SHUFFLE_MAPANDCOMPASS,
|
||||||
@ -3538,6 +3606,10 @@ typedef enum {
|
|||||||
RSK_TRIFORCE_HUNT_PIECES_TOTAL,
|
RSK_TRIFORCE_HUNT_PIECES_TOTAL,
|
||||||
RSK_TRIFORCE_HUNT_PIECES_REQUIRED,
|
RSK_TRIFORCE_HUNT_PIECES_REQUIRED,
|
||||||
RSK_SHUFFLE_BOSS_SOULS,
|
RSK_SHUFFLE_BOSS_SOULS,
|
||||||
|
RSK_FISHSANITY,
|
||||||
|
RSK_FISHSANITY_POND_COUNT,
|
||||||
|
RSK_FISHSANITY_AGE_SPLIT,
|
||||||
|
RSK_SHUFFLE_FISHING_POLE,
|
||||||
RSK_MAX
|
RSK_MAX
|
||||||
} RandomizerSettingKey;
|
} RandomizerSettingKey;
|
||||||
|
|
||||||
@ -3668,6 +3740,14 @@ typedef enum {
|
|||||||
RO_BOSS_SOULS_ON_PLUS_GANON,
|
RO_BOSS_SOULS_ON_PLUS_GANON,
|
||||||
} RandoOptionBossSouls;
|
} RandoOptionBossSouls;
|
||||||
|
|
||||||
|
//Fishsanity settings (off, pond only, grottos only, both)
|
||||||
|
typedef enum {
|
||||||
|
RO_FISHSANITY_OFF,
|
||||||
|
RO_FISHSANITY_POND,
|
||||||
|
RO_FISHSANITY_OVERWORLD,
|
||||||
|
RO_FISHSANITY_BOTH
|
||||||
|
} RandoOptionsFishsanity;
|
||||||
|
|
||||||
//Any Dungeon Item (start with, vanilla, own dungeon, any dungeon,
|
//Any Dungeon Item (start with, vanilla, own dungeon, any dungeon,
|
||||||
//overworld, anywhere)
|
//overworld, anywhere)
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -3918,6 +3998,11 @@ typedef struct CowIdentity {
|
|||||||
RandomizerCheck randomizerCheck;
|
RandomizerCheck randomizerCheck;
|
||||||
} CowIdentity;
|
} CowIdentity;
|
||||||
|
|
||||||
|
typedef struct FishIdentity {
|
||||||
|
RandomizerInf randomizerInf;
|
||||||
|
RandomizerCheck randomizerCheck;
|
||||||
|
} FishIdentity;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
TRACKER_WINDOW_FLOATING,
|
TRACKER_WINDOW_FLOATING,
|
||||||
TRACKER_WINDOW_WINDOW
|
TRACKER_WINDOW_WINDOW
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <libultraship/bridge.h>
|
#include <libultraship/bridge.h>
|
||||||
#include "z64.h"
|
#include "z64.h"
|
||||||
|
#include "fishsanity.h"
|
||||||
|
|
||||||
std::map<RandomizerCheckArea, std::string> rcAreaNames = {
|
std::map<RandomizerCheckArea, std::string> rcAreaNames = {
|
||||||
{ RCAREA_KOKIRI_FOREST, "Kokiri Forest" },
|
{ RCAREA_KOKIRI_FOREST, "Kokiri Forest" },
|
||||||
@ -153,6 +154,7 @@ void RandomizerCheckObjects::UpdateImGuiVisibility() {
|
|||||||
((CVarGetInteger("gRandomizeShuffleTokens", RO_TOKENSANITY_OFF) == RO_TOKENSANITY_DUNGEONS) &&
|
((CVarGetInteger("gRandomizeShuffleTokens", RO_TOKENSANITY_OFF) == RO_TOKENSANITY_DUNGEONS) &&
|
||||||
RandomizerCheckObjects::AreaIsDungeon(location.GetArea()))) &&
|
RandomizerCheckObjects::AreaIsDungeon(location.GetArea()))) &&
|
||||||
(location.GetRCType() != RCTYPE_COW || CVarGetInteger("gRandomizeShuffleCows", RO_GENERIC_NO)) &&
|
(location.GetRCType() != RCTYPE_COW || CVarGetInteger("gRandomizeShuffleCows", RO_GENERIC_NO)) &&
|
||||||
|
(location.GetRCType() != RCTYPE_FISH || ctx->GetFishsanity()->GetFishLocationIncluded(&location, FSO_SOURCE_CVARS)) &&
|
||||||
(location.GetRCType() != RCTYPE_ADULT_TRADE ||
|
(location.GetRCType() != RCTYPE_ADULT_TRADE ||
|
||||||
CVarGetInteger("gRandomizeShuffleAdultTrade", RO_GENERIC_NO)) &&
|
CVarGetInteger("gRandomizeShuffleAdultTrade", RO_GENERIC_NO)) &&
|
||||||
(location.GetRandomizerCheck() != RC_KF_KOKIRI_SWORD_CHEST ||
|
(location.GetRandomizerCheck() != RC_KF_KOKIRI_SWORD_CHEST ||
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "soh/Enhancements/game-interactor/GameInteractor.h"
|
#include "soh/Enhancements/game-interactor/GameInteractor.h"
|
||||||
#include "z64item.h"
|
#include "z64item.h"
|
||||||
#include "randomizerTypes.h"
|
#include "randomizerTypes.h"
|
||||||
|
#include "fishsanity.h"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "variables.h"
|
#include "variables.h"
|
||||||
@ -76,6 +77,10 @@ bool showLinksPocket;
|
|||||||
bool fortressFast;
|
bool fortressFast;
|
||||||
bool fortressNormal;
|
bool fortressNormal;
|
||||||
|
|
||||||
|
u8 fishsanityMode;
|
||||||
|
u8 fishsanityPondCount;
|
||||||
|
bool fishsanityAgeSplit;
|
||||||
|
|
||||||
// persistent during gameplay
|
// persistent during gameplay
|
||||||
bool initialized;
|
bool initialized;
|
||||||
bool doAreaScroll;
|
bool doAreaScroll;
|
||||||
@ -119,6 +124,7 @@ RandomizerCheck lastLocationChecked = RC_UNKNOWN_CHECK;
|
|||||||
RandomizerCheckArea previousArea = RCAREA_INVALID;
|
RandomizerCheckArea previousArea = RCAREA_INVALID;
|
||||||
RandomizerCheckArea currentArea = RCAREA_INVALID;
|
RandomizerCheckArea currentArea = RCAREA_INVALID;
|
||||||
OSContPad* trackerButtonsPressed;
|
OSContPad* trackerButtonsPressed;
|
||||||
|
std::unordered_map<RandomizerCheck, std::string> checkNameOverrides;
|
||||||
|
|
||||||
void BeginFloatWindows(std::string UniqueName, bool& open, ImGuiWindowFlags flags = 0);
|
void BeginFloatWindows(std::string UniqueName, bool& open, ImGuiWindowFlags flags = 0);
|
||||||
bool CompareChecks(RandomizerCheck, RandomizerCheck);
|
bool CompareChecks(RandomizerCheck, RandomizerCheck);
|
||||||
@ -415,6 +421,7 @@ bool HasItemBeenCollected(RandomizerCheck rc) {
|
|||||||
case SpoilerCollectionCheckType::SPOILER_CHK_MERCHANT:
|
case SpoilerCollectionCheckType::SPOILER_CHK_MERCHANT:
|
||||||
case SpoilerCollectionCheckType::SPOILER_CHK_SHOP_ITEM:
|
case SpoilerCollectionCheckType::SPOILER_CHK_SHOP_ITEM:
|
||||||
case SpoilerCollectionCheckType::SPOILER_CHK_COW:
|
case SpoilerCollectionCheckType::SPOILER_CHK_COW:
|
||||||
|
case SpoilerCollectionCheckType::SPOILER_CHK_FISH:
|
||||||
case SpoilerCollectionCheckType::SPOILER_CHK_SCRUB:
|
case SpoilerCollectionCheckType::SPOILER_CHK_SCRUB:
|
||||||
case SpoilerCollectionCheckType::SPOILER_CHK_RANDOMIZER_INF:
|
case SpoilerCollectionCheckType::SPOILER_CHK_RANDOMIZER_INF:
|
||||||
case SpoilerCollectionCheckType::SPOILER_CHK_MASTER_SWORD:
|
case SpoilerCollectionCheckType::SPOILER_CHK_MASTER_SWORD:
|
||||||
@ -473,6 +480,14 @@ void CheckTrackerLoadGame(int32_t fileNum) {
|
|||||||
if (areaChecksGotten[entry2->GetArea()] != 0 || RandomizerCheckObjects::AreaIsOverworld(entry2->GetArea())) {
|
if (areaChecksGotten[entry2->GetArea()] != 0 || RandomizerCheckObjects::AreaIsOverworld(entry2->GetArea())) {
|
||||||
areasSpoiled |= (1 << entry2->GetArea());
|
areasSpoiled |= (1 << entry2->GetArea());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create check name overrides for child pond fish if age split is disabled
|
||||||
|
if (fishsanityMode != RO_FISHSANITY_OFF && fishsanityMode != RO_FISHSANITY_OVERWORLD && entry.GetRCType() == RCTYPE_FISH && entry.GetScene() == SCENE_FISHING_POND &&
|
||||||
|
entry.GetActorParams() != 116 && !fishsanityAgeSplit) {
|
||||||
|
if (entry.GetShortName().starts_with("Child")) {
|
||||||
|
checkNameOverrides[rc] = entry.GetShortName().substr(6);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_LINKS_POCKET) != RO_LINKS_POCKET_NOTHING && IS_RANDO) {
|
if (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_LINKS_POCKET) != RO_LINKS_POCKET_NOTHING && IS_RANDO) {
|
||||||
s8 startingAge = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_STARTING_AGE);
|
s8 startingAge = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_STARTING_AGE);
|
||||||
@ -736,6 +751,7 @@ void CheckTrackerFlagSet(int16_t flagType, int32_t flag) {
|
|||||||
(scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_MERCHANT ||
|
(scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_MERCHANT ||
|
||||||
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_SHOP_ITEM ||
|
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_SHOP_ITEM ||
|
||||||
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_COW ||
|
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_COW ||
|
||||||
|
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_FISH ||
|
||||||
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_SCRUB ||
|
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_SCRUB ||
|
||||||
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_MASTER_SWORD ||
|
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_MASTER_SWORD ||
|
||||||
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_RANDOMIZER_INF)) {
|
scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_RANDOMIZER_INF)) {
|
||||||
@ -1161,6 +1177,10 @@ void LoadSettings() {
|
|||||||
fortressNormal = true;
|
fortressNormal = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fishsanityMode = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY);
|
||||||
|
fishsanityPondCount = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_POND_COUNT);
|
||||||
|
fishsanityAgeSplit = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_AGE_SPLIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsVisibleInCheckTracker(RandomizerCheck rc) {
|
bool IsVisibleInCheckTracker(RandomizerCheck rc) {
|
||||||
@ -1194,6 +1214,7 @@ bool IsVisibleInCheckTracker(RandomizerCheck rc) {
|
|||||||
(showDungeonTokens && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))
|
(showDungeonTokens && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))
|
||||||
) &&
|
) &&
|
||||||
(loc->GetRCType() != RCTYPE_COW || showCows) &&
|
(loc->GetRCType() != RCTYPE_COW || showCows) &&
|
||||||
|
(loc->GetRCType() != RCTYPE_FISH || OTRGlobals::Instance->gRandoContext->GetFishsanity()->GetFishLocationIncluded(loc)) &&
|
||||||
(loc->GetRCType() != RCTYPE_ADULT_TRADE ||
|
(loc->GetRCType() != RCTYPE_ADULT_TRADE ||
|
||||||
showAdultTrade ||
|
showAdultTrade ||
|
||||||
rc == RC_KAK_ANJU_AS_ADULT || // adult trade checks that are always shuffled
|
rc == RC_KAK_ANJU_AS_ADULT || // adult trade checks that are always shuffled
|
||||||
@ -1375,7 +1396,12 @@ void DrawLocation(RandomizerCheck rc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Main Text
|
//Main Text
|
||||||
|
if (checkNameOverrides.contains(loc->GetRandomizerCheck())) {
|
||||||
|
txt = checkNameOverrides[loc->GetRandomizerCheck()];
|
||||||
|
} else {
|
||||||
txt = loc->GetShortName();
|
txt = loc->GetShortName();
|
||||||
|
}
|
||||||
|
|
||||||
if (lastLocationChecked == loc->GetRandomizerCheck()) {
|
if (lastLocationChecked == loc->GetRandomizerCheck()) {
|
||||||
txt = "* " + txt;
|
txt = "* " + txt;
|
||||||
}
|
}
|
||||||
|
@ -156,8 +156,43 @@ typedef enum {
|
|||||||
|
|
||||||
|
|
||||||
RAND_INF_TOT_MASTER_SWORD,
|
RAND_INF_TOT_MASTER_SWORD,
|
||||||
|
|
||||||
RAND_INF_CHILD_FISHING,
|
RAND_INF_CHILD_FISHING,
|
||||||
|
RAND_INF_CHILD_FISH_1,
|
||||||
|
RAND_INF_CHILD_FISH_2,
|
||||||
|
RAND_INF_CHILD_FISH_3,
|
||||||
|
RAND_INF_CHILD_FISH_4,
|
||||||
|
RAND_INF_CHILD_FISH_5,
|
||||||
|
RAND_INF_CHILD_FISH_6,
|
||||||
|
RAND_INF_CHILD_FISH_7,
|
||||||
|
RAND_INF_CHILD_FISH_8,
|
||||||
|
RAND_INF_CHILD_FISH_9,
|
||||||
|
RAND_INF_CHILD_FISH_10,
|
||||||
|
RAND_INF_CHILD_FISH_11,
|
||||||
|
RAND_INF_CHILD_FISH_12,
|
||||||
|
RAND_INF_CHILD_FISH_13,
|
||||||
|
RAND_INF_CHILD_FISH_14,
|
||||||
|
RAND_INF_CHILD_FISH_15,
|
||||||
|
RAND_INF_CHILD_LOACH_1,
|
||||||
|
RAND_INF_CHILD_LOACH_2,
|
||||||
RAND_INF_ADULT_FISHING,
|
RAND_INF_ADULT_FISHING,
|
||||||
|
RAND_INF_ADULT_FISH_1,
|
||||||
|
RAND_INF_ADULT_FISH_2,
|
||||||
|
RAND_INF_ADULT_FISH_3,
|
||||||
|
RAND_INF_ADULT_FISH_4,
|
||||||
|
RAND_INF_ADULT_FISH_5,
|
||||||
|
RAND_INF_ADULT_FISH_6,
|
||||||
|
RAND_INF_ADULT_FISH_7,
|
||||||
|
RAND_INF_ADULT_FISH_8,
|
||||||
|
RAND_INF_ADULT_FISH_9,
|
||||||
|
RAND_INF_ADULT_FISH_10,
|
||||||
|
RAND_INF_ADULT_FISH_11,
|
||||||
|
RAND_INF_ADULT_FISH_12,
|
||||||
|
RAND_INF_ADULT_FISH_13,
|
||||||
|
RAND_INF_ADULT_FISH_14,
|
||||||
|
RAND_INF_ADULT_FISH_15,
|
||||||
|
RAND_INF_ADULT_LOACH,
|
||||||
|
|
||||||
RAND_INF_10_BIG_POES,
|
RAND_INF_10_BIG_POES,
|
||||||
RAND_INF_GRANT_GANONS_BOSSKEY,
|
RAND_INF_GRANT_GANONS_BOSSKEY,
|
||||||
|
|
||||||
@ -177,6 +212,24 @@ typedef enum {
|
|||||||
RAND_INF_HAS_OCARINA_C_LEFT,
|
RAND_INF_HAS_OCARINA_C_LEFT,
|
||||||
RAND_INF_HAS_OCARINA_C_RIGHT,
|
RAND_INF_HAS_OCARINA_C_RIGHT,
|
||||||
|
|
||||||
|
RAND_INF_GROTTO_FISH_ZR_OPEN_GROTTO,
|
||||||
|
RAND_INF_GROTTO_FISH_DMC_UPPER_GROTTO,
|
||||||
|
RAND_INF_GROTTO_FISH_DMT_STORMS_GROTTO,
|
||||||
|
RAND_INF_GROTTO_FISH_KAK_OPEN_GROTTO,
|
||||||
|
RAND_INF_GROTTO_FISH_HF_NEAR_MARKET_GROTTO,
|
||||||
|
RAND_INF_GROTTO_FISH_HF_OPEN_GROTTO,
|
||||||
|
RAND_INF_GROTTO_FISH_HF_SOUTHEAST_GROTTO,
|
||||||
|
RAND_INF_GROTTO_FISH_LW_NEAR_SHORTCUTS_GROTTO,
|
||||||
|
RAND_INF_GROTTO_FISH_KF_STORMS_GROTTO,
|
||||||
|
|
||||||
|
RAND_INF_FISHING_POLE_FOUND,
|
||||||
|
|
||||||
|
RAND_INF_ZD_FISH_1,
|
||||||
|
RAND_INF_ZD_FISH_2,
|
||||||
|
RAND_INF_ZD_FISH_3,
|
||||||
|
RAND_INF_ZD_FISH_4,
|
||||||
|
RAND_INF_ZD_FISH_5,
|
||||||
|
|
||||||
// If you add anything to this list, you need to update the size of randomizerInf in z64save.h to be ceil(RAND_INF_MAX / 16)
|
// If you add anything to this list, you need to update the size of randomizerInf in z64save.h to be ceil(RAND_INF_MAX / 16)
|
||||||
|
|
||||||
RAND_INF_MAX,
|
RAND_INF_MAX,
|
||||||
|
@ -108,6 +108,10 @@ std::vector<ItemTrackerItem> ocarinaButtonItems = {
|
|||||||
ITEM_TRACKER_ITEM_CUSTOM(RG_OCARINA_C_RIGHT_BUTTON, ITEM_OCARINA_TIME, ITEM_OCARINA_TIME, 0, DrawItem ),
|
ITEM_TRACKER_ITEM_CUSTOM(RG_OCARINA_C_RIGHT_BUTTON, ITEM_OCARINA_TIME, ITEM_OCARINA_TIME, 0, DrawItem ),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::vector<ItemTrackerItem> fishingPoleItems = {
|
||||||
|
ITEM_TRACKER_ITEM(ITEM_FISHING_POLE, 0, DrawItem)
|
||||||
|
};
|
||||||
|
|
||||||
std::vector<ItemTrackerDungeon> itemTrackerDungeonsWithMapsHorizontal = {
|
std::vector<ItemTrackerDungeon> itemTrackerDungeonsWithMapsHorizontal = {
|
||||||
{ SCENE_DEKU_TREE, { ITEM_DUNGEON_MAP, ITEM_COMPASS } },
|
{ SCENE_DEKU_TREE, { ITEM_DUNGEON_MAP, ITEM_COMPASS } },
|
||||||
{ SCENE_DODONGOS_CAVERN, { ITEM_DUNGEON_MAP, ITEM_COMPASS } },
|
{ SCENE_DODONGOS_CAVERN, { ITEM_DUNGEON_MAP, ITEM_COMPASS } },
|
||||||
@ -726,6 +730,11 @@ void DrawItem(ItemTrackerItem item) {
|
|||||||
hasItem = Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_RIGHT);
|
hasItem = Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_RIGHT);
|
||||||
itemName = "Ocarina C Right Button";
|
itemName = "Ocarina C Right Button";
|
||||||
break;
|
break;
|
||||||
|
case ITEM_FISHING_POLE:
|
||||||
|
actualItemId = item.id;
|
||||||
|
hasItem = IS_RANDO && Flags_GetRandomizerInf(RAND_INF_FISHING_POLE_FOUND);
|
||||||
|
itemName = "Fishing Pole";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GameInteractor::IsSaveLoaded() && (hasItem && item.id != actualItemId && actualItemTrackerItemMap.find(actualItemId) != actualItemTrackerItemMap.end())) {
|
if (GameInteractor::IsSaveLoaded() && (hasItem && item.id != actualItemId && actualItemTrackerItemMap.find(actualItemId) != actualItemTrackerItemMap.end())) {
|
||||||
@ -1054,26 +1063,23 @@ void UpdateVectors() {
|
|||||||
// and misc isn't on the main window,
|
// and misc isn't on the main window,
|
||||||
// and it doesn't already have greg, add him
|
// and it doesn't already have greg, add him
|
||||||
if (CVarGetInteger("gItemTrackerGregDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MISC_WINDOW &&
|
if (CVarGetInteger("gItemTrackerGregDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MISC_WINDOW &&
|
||||||
CVarGetInteger("gItemTrackerMiscItemsDisplayType", SECTION_DISPLAY_MAIN_WINDOW) != SECTION_DISPLAY_MAIN_WINDOW &&
|
CVarGetInteger("gItemTrackerMiscItemsDisplayType", SECTION_DISPLAY_MAIN_WINDOW) != SECTION_DISPLAY_MAIN_WINDOW) {
|
||||||
std::none_of(miscItems.begin(), miscItems.end(), [](ItemTrackerItem item){return item.id == ITEM_RUPEE_GREEN;})) {
|
if (std::none_of(miscItems.begin(), miscItems.end(), [](ItemTrackerItem item) { return item.id == ITEM_RUPEE_GREEN; }))
|
||||||
|
|
||||||
miscItems.insert(miscItems.end(), gregItems.begin(), gregItems.end());
|
miscItems.insert(miscItems.end(), gregItems.begin(), gregItems.end());
|
||||||
} else {
|
} else {
|
||||||
for (auto it = miscItems.begin(); it != miscItems.end();) {
|
miscItems.erase(std::remove_if(miscItems.begin(), miscItems.end(), [](ItemTrackerItem i) { return i.id == ITEM_RUPEE_GREEN; }), miscItems.end());
|
||||||
if (it->id == ITEM_RUPEE_GREEN) {
|
|
||||||
miscItems.erase(it);
|
|
||||||
} else {
|
|
||||||
it++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool newRowAdded = false;
|
||||||
// if we're adding greg to the main window
|
// if we're adding greg to the main window
|
||||||
if (CVarGetInteger("gItemTrackerGregDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MAIN_WINDOW) {
|
if (CVarGetInteger("gItemTrackerGregDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MAIN_WINDOW) {
|
||||||
|
if (!newRowAdded) {
|
||||||
// insert empty items until we're on a new row for greg
|
// insert empty items until we're on a new row for greg
|
||||||
while (mainWindowItems.size() % 6) {
|
while (mainWindowItems.size() % 6) {
|
||||||
mainWindowItems.push_back(ITEM_TRACKER_ITEM(ITEM_NONE, 0, DrawItem));
|
mainWindowItems.push_back(ITEM_TRACKER_ITEM(ITEM_NONE, 0, DrawItem));
|
||||||
}
|
}
|
||||||
|
newRowAdded = true;
|
||||||
|
}
|
||||||
|
|
||||||
// add greg
|
// add greg
|
||||||
mainWindowItems.insert(mainWindowItems.end(), gregItems.begin(), gregItems.end());
|
mainWindowItems.insert(mainWindowItems.end(), gregItems.begin(), gregItems.end());
|
||||||
@ -1082,16 +1088,37 @@ void UpdateVectors() {
|
|||||||
// If we're adding triforce pieces to the main window
|
// If we're adding triforce pieces to the main window
|
||||||
if (CVarGetInteger("gItemTrackerTriforcePiecesDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW) {
|
if (CVarGetInteger("gItemTrackerTriforcePiecesDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW) {
|
||||||
// If Greg isn't on the main window, add empty items to place the triforce pieces on a new row.
|
// If Greg isn't on the main window, add empty items to place the triforce pieces on a new row.
|
||||||
if (CVarGetInteger("gItemTrackerGregDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) != SECTION_DISPLAY_EXTENDED_MAIN_WINDOW) {
|
if (!newRowAdded) {
|
||||||
while (mainWindowItems.size() % 6) {
|
while (mainWindowItems.size() % 6) {
|
||||||
mainWindowItems.push_back(ITEM_TRACKER_ITEM(ITEM_NONE, 0, DrawItem));
|
mainWindowItems.push_back(ITEM_TRACKER_ITEM(ITEM_NONE, 0, DrawItem));
|
||||||
}
|
}
|
||||||
|
newRowAdded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add triforce pieces
|
// Add triforce pieces
|
||||||
mainWindowItems.insert(mainWindowItems.end(), triforcePieces.begin(), triforcePieces.end());
|
mainWindowItems.insert(mainWindowItems.end(), triforcePieces.begin(), triforcePieces.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if misc is separate and fishing pole isn't added, add fishing pole to misc
|
||||||
|
if (CVarGetInteger("gItemTrackerFishingPoleDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MISC_WINDOW &&
|
||||||
|
CVarGetInteger("gItemTrackerMiscItemsDisplayType", SECTION_DISPLAY_MAIN_WINDOW) != SECTION_DISPLAY_MAIN_WINDOW) {
|
||||||
|
if (std::none_of(miscItems.begin(), miscItems.end(), [](ItemTrackerItem item) { return item.id == ITEM_FISHING_POLE; }))
|
||||||
|
miscItems.insert(miscItems.end(), fishingPoleItems.begin(), fishingPoleItems.end());
|
||||||
|
} else {
|
||||||
|
miscItems.erase(std::remove_if(miscItems.begin(), miscItems.end(), [](ItemTrackerItem i) { return i.id == ITEM_FISHING_POLE; }), miscItems.end());
|
||||||
|
}
|
||||||
|
// add fishing pole to main window
|
||||||
|
if (CVarGetInteger("gItemTrackerFishingPoleDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MAIN_WINDOW) {
|
||||||
|
if (!newRowAdded) {
|
||||||
|
while (mainWindowItems.size() % 6) {
|
||||||
|
mainWindowItems.push_back(ITEM_TRACKER_ITEM(ITEM_NONE, 0, DrawItem));
|
||||||
|
}
|
||||||
|
newRowAdded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainWindowItems.insert(mainWindowItems.end(), fishingPoleItems.begin(), fishingPoleItems.end());
|
||||||
|
}
|
||||||
|
|
||||||
//If we're adding boss souls to the main window...
|
//If we're adding boss souls to the main window...
|
||||||
if (CVarGetInteger("gItemTrackerBossSoulsDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW) {
|
if (CVarGetInteger("gItemTrackerBossSoulsDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW) {
|
||||||
//...add empty items on the main window to get the souls on their own row. (Too many to sit with Greg/Triforce pieces)
|
//...add empty items on the main window to get the souls on their own row. (Too many to sit with Greg/Triforce pieces)
|
||||||
@ -1138,6 +1165,7 @@ void ItemTrackerWindow::DrawElement() {
|
|||||||
(CVarGetInteger("gItemTrackerDungeonItemsDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW) ||
|
(CVarGetInteger("gItemTrackerDungeonItemsDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW) ||
|
||||||
(CVarGetInteger("gItemTrackerGregDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MAIN_WINDOW) ||
|
(CVarGetInteger("gItemTrackerGregDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MAIN_WINDOW) ||
|
||||||
(CVarGetInteger("gItemTrackerTriforcePiecesDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW) ||
|
(CVarGetInteger("gItemTrackerTriforcePiecesDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW) ||
|
||||||
|
(CVarGetInteger("gItemTrackerFishingPoleDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_MAIN_WINDOW) ||
|
||||||
(CVarGetInteger("gItemTrackerNotesDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW)
|
(CVarGetInteger("gItemTrackerNotesDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_MAIN_WINDOW)
|
||||||
) {
|
) {
|
||||||
BeginFloatingWindows("Item Tracker##main window");
|
BeginFloatingWindows("Item Tracker##main window");
|
||||||
@ -1226,6 +1254,12 @@ void ItemTrackerWindow::DrawElement() {
|
|||||||
EndFloatingWindows();
|
EndFloatingWindows();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CVarGetInteger("gItemTrackerFishingPoleDisplayType", SECTION_DISPLAY_EXTENDED_HIDDEN) == SECTION_DISPLAY_EXTENDED_SEPARATE) {
|
||||||
|
BeginFloatingWindows("Fishing Pole Tracker");
|
||||||
|
DrawItemsInRows(fishingPoleItems);
|
||||||
|
EndFloatingWindows();
|
||||||
|
}
|
||||||
|
|
||||||
if (CVarGetInteger("gItemTrackerNotesDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_SEPARATE && CVarGetInteger("gItemTrackerDisplayType", TRACKER_DISPLAY_ALWAYS) == TRACKER_DISPLAY_ALWAYS) {
|
if (CVarGetInteger("gItemTrackerNotesDisplayType", SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_SEPARATE && CVarGetInteger("gItemTrackerDisplayType", TRACKER_DISPLAY_ALWAYS) == TRACKER_DISPLAY_ALWAYS) {
|
||||||
ImGui::SetNextWindowSize(ImVec2(400,300), ImGuiCond_FirstUseEver);
|
ImGui::SetNextWindowSize(ImVec2(400,300), ImGuiCond_FirstUseEver);
|
||||||
BeginFloatingWindows("Personal Notes", ImGuiWindowFlags_NoFocusOnAppearing);
|
BeginFloatingWindows("Personal Notes", ImGuiWindowFlags_NoFocusOnAppearing);
|
||||||
@ -1373,6 +1407,10 @@ void ItemTrackerSettingsWindow::DrawElement() {
|
|||||||
shouldUpdateVectors = true;
|
shouldUpdateVectors = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (UIWidgets::LabeledRightAlignedEnhancementCombobox("Fishing Pole", "gItemTrackerFishingPoleDisplayType", extendedDisplayTypes, SECTION_DISPLAY_EXTENDED_HIDDEN)) {
|
||||||
|
shouldUpdateVectors = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (CVarGetInteger("gItemTrackerDisplayType", TRACKER_DISPLAY_ALWAYS) == TRACKER_DISPLAY_ALWAYS) {
|
if (CVarGetInteger("gItemTrackerDisplayType", TRACKER_DISPLAY_ALWAYS) == TRACKER_DISPLAY_ALWAYS) {
|
||||||
if (UIWidgets::LabeledRightAlignedEnhancementCombobox("Personal notes", "gItemTrackerNotesDisplayType", displayTypes, SECTION_DISPLAY_HIDDEN)) {
|
if (UIWidgets::LabeledRightAlignedEnhancementCombobox("Personal notes", "gItemTrackerNotesDisplayType", displayTypes, SECTION_DISPLAY_HIDDEN)) {
|
||||||
shouldUpdateVectors = true;
|
shouldUpdateVectors = true;
|
||||||
|
@ -108,6 +108,7 @@ void Settings::CreateOptions() {
|
|||||||
mOptions[RSK_SHUFFLE_OCARINA_BUTTONS] = Option::Bool("Shuffle Ocarina Buttons", "gRandomizeShuffleOcarinaButtons", mOptionDescriptions[RSK_SHUFFLE_OCARINA_BUTTONS]);
|
mOptions[RSK_SHUFFLE_OCARINA_BUTTONS] = Option::Bool("Shuffle Ocarina Buttons", "gRandomizeShuffleOcarinaButtons", mOptionDescriptions[RSK_SHUFFLE_OCARINA_BUTTONS]);
|
||||||
mOptions[RSK_SHUFFLE_WEIRD_EGG] = Option::Bool("Shuffle Weird Egg", "gRandomizeShuffleWeirdEgg", mOptionDescriptions[RSK_SHUFFLE_WEIRD_EGG]);
|
mOptions[RSK_SHUFFLE_WEIRD_EGG] = Option::Bool("Shuffle Weird Egg", "gRandomizeShuffleWeirdEgg", mOptionDescriptions[RSK_SHUFFLE_WEIRD_EGG]);
|
||||||
mOptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD] = Option::Bool("Shuffle Gerudo Membership Card", "gRandomizeShuffleGerudoToken", mOptionDescriptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD]);
|
mOptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD] = Option::Bool("Shuffle Gerudo Membership Card", "gRandomizeShuffleGerudoToken", mOptionDescriptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD]);
|
||||||
|
mOptions[RSK_SHUFFLE_FISHING_POLE] = Option::Bool("Shuffle Fishing Pole", "gRandomizeShuffleFishingPole", mOptionDescriptions[RSK_SHUFFLE_FISHING_POLE]);
|
||||||
mOptions[RSK_SHUFFLE_MAGIC_BEANS] = Option::Bool("Shuffle Magic Beans", "gRandomizeShuffleBeans", mOptionDescriptions[RSK_SHUFFLE_MAGIC_BEANS]);
|
mOptions[RSK_SHUFFLE_MAGIC_BEANS] = Option::Bool("Shuffle Magic Beans", "gRandomizeShuffleBeans", mOptionDescriptions[RSK_SHUFFLE_MAGIC_BEANS]);
|
||||||
mOptions[RSK_SHUFFLE_MERCHANTS] = Option::U8("Shuffle Merchants", {"Off", "On (No Hints)", "On (With Hints)"}, OptionCategory::Setting, "gRandomizeShuffleMerchants", mOptionDescriptions[RSK_SHUFFLE_MERCHANTS], WidgetType::Combobox, RO_SHUFFLE_MERCHANTS_OFF);
|
mOptions[RSK_SHUFFLE_MERCHANTS] = Option::U8("Shuffle Merchants", {"Off", "On (No Hints)", "On (With Hints)"}, OptionCategory::Setting, "gRandomizeShuffleMerchants", mOptionDescriptions[RSK_SHUFFLE_MERCHANTS], WidgetType::Combobox, RO_SHUFFLE_MERCHANTS_OFF);
|
||||||
mOptions[RSK_SHUFFLE_FROG_SONG_RUPEES] = Option::Bool("Shuffle Frog Song Rupees", "gRandomizeShuffleFrogSongRupees", mOptionDescriptions[RSK_SHUFFLE_FROG_SONG_RUPEES]);
|
mOptions[RSK_SHUFFLE_FROG_SONG_RUPEES] = Option::Bool("Shuffle Frog Song Rupees", "gRandomizeShuffleFrogSongRupees", mOptionDescriptions[RSK_SHUFFLE_FROG_SONG_RUPEES]);
|
||||||
@ -115,6 +116,9 @@ void Settings::CreateOptions() {
|
|||||||
mOptions[RSK_SHUFFLE_CHEST_MINIGAME] = Option::U8("Shuffle Chest Minigame", {"Off", "On (Separate)", "On (Pack)"});
|
mOptions[RSK_SHUFFLE_CHEST_MINIGAME] = Option::U8("Shuffle Chest Minigame", {"Off", "On (Separate)", "On (Pack)"});
|
||||||
mOptions[RSK_SHUFFLE_100_GS_REWARD] = Option::Bool("Shuffle 100 GS Reward", "gRandomizeShuffle100GSReward", mOptionDescriptions[RSK_SHUFFLE_100_GS_REWARD], IMFLAG_SEPARATOR_BOTTOM, WidgetType::Checkbox, RO_GENERIC_OFF);
|
mOptions[RSK_SHUFFLE_100_GS_REWARD] = Option::Bool("Shuffle 100 GS Reward", "gRandomizeShuffle100GSReward", mOptionDescriptions[RSK_SHUFFLE_100_GS_REWARD], IMFLAG_SEPARATOR_BOTTOM, WidgetType::Checkbox, RO_GENERIC_OFF);
|
||||||
mOptions[RSK_SHUFFLE_BOSS_SOULS] = Option::U8("Shuffle Boss Souls", {"Off", "On", "On + Ganon"}, OptionCategory::Setting, "gRandomizeShuffleBossSouls", mOptionDescriptions[RSK_SHUFFLE_BOSS_SOULS], WidgetType::Combobox);
|
mOptions[RSK_SHUFFLE_BOSS_SOULS] = Option::U8("Shuffle Boss Souls", {"Off", "On", "On + Ganon"}, OptionCategory::Setting, "gRandomizeShuffleBossSouls", mOptionDescriptions[RSK_SHUFFLE_BOSS_SOULS], WidgetType::Combobox);
|
||||||
|
mOptions[RSK_FISHSANITY] = Option::U8("Fishsanity", {"Off", "Shuffle Fishing Pond", "Shuffle Overworld Fish", "Shuffle Both"}, OptionCategory::Setting, "gRandomizeFishsanity", mOptionDescriptions[RSK_FISHSANITY], WidgetType::Combobox, RO_FISHSANITY_OFF);
|
||||||
|
mOptions[RSK_FISHSANITY_POND_COUNT] = Option::U8("Pond Fish Count", {NumOpts(0,17,1)}, OptionCategory::Setting, "gRandomizeFishsanityPondCount", mOptionDescriptions[RSK_FISHSANITY_POND_COUNT], WidgetType::Slider, 0, true, IMFLAG_NONE);
|
||||||
|
mOptions[RSK_FISHSANITY_AGE_SPLIT] = Option::Bool("Pond Age Split", "gRandomizeFishsanityAgeSplit", mOptionDescriptions[RSK_FISHSANITY_AGE_SPLIT]);
|
||||||
mOptions[RSK_SHUFFLE_MAPANDCOMPASS] = Option::U8("Maps/Compasses", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeStartingMapsCompasses", mOptionDescriptions[RSK_SHUFFLE_MAPANDCOMPASS], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
mOptions[RSK_SHUFFLE_MAPANDCOMPASS] = Option::U8("Maps/Compasses", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeStartingMapsCompasses", mOptionDescriptions[RSK_SHUFFLE_MAPANDCOMPASS], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
||||||
mOptions[RSK_KEYSANITY] = Option::U8("Small Keys", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeKeysanity", mOptionDescriptions[RSK_KEYSANITY], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
mOptions[RSK_KEYSANITY] = Option::U8("Small Keys", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeKeysanity", mOptionDescriptions[RSK_KEYSANITY], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
||||||
mOptions[RSK_GERUDO_KEYS] = Option::U8("Gerudo Fortress Keys", {"Vanilla", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeGerudoKeys", mOptionDescriptions[RSK_GERUDO_KEYS], WidgetType::Combobox, RO_GERUDO_KEYS_VANILLA);
|
mOptions[RSK_GERUDO_KEYS] = Option::U8("Gerudo Fortress Keys", {"Vanilla", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeGerudoKeys", mOptionDescriptions[RSK_GERUDO_KEYS], WidgetType::Combobox, RO_GERUDO_KEYS_VANILLA);
|
||||||
@ -154,6 +158,7 @@ void Settings::CreateOptions() {
|
|||||||
mOptions[RSK_DAMPES_DIARY_HINT] = Option::Bool("Dampe's Diary Hint", "gRandomizeDampeHint", mOptionDescriptions[RSK_DAMPES_DIARY_HINT], IMFLAG_NONE);
|
mOptions[RSK_DAMPES_DIARY_HINT] = Option::Bool("Dampe's Diary Hint", "gRandomizeDampeHint", mOptionDescriptions[RSK_DAMPES_DIARY_HINT], IMFLAG_NONE);
|
||||||
mOptions[RSK_GREG_HINT] = Option::Bool("Greg the Green Rupee Hint", "gRandomizeGregHint", mOptionDescriptions[RSK_GREG_HINT], IMFLAG_NONE);
|
mOptions[RSK_GREG_HINT] = Option::Bool("Greg the Green Rupee Hint", "gRandomizeGregHint", mOptionDescriptions[RSK_GREG_HINT], IMFLAG_NONE);
|
||||||
mOptions[RSK_SARIA_HINT] = Option::Bool("Saria's Hint", "gRandomizeSariaHint", mOptionDescriptions[RSK_SARIA_HINT], IMFLAG_NONE);
|
mOptions[RSK_SARIA_HINT] = Option::Bool("Saria's Hint", "gRandomizeSariaHint", mOptionDescriptions[RSK_SARIA_HINT], IMFLAG_NONE);
|
||||||
|
mOptions[RSK_FISHING_POLE_HINT] = Option::Bool("Fishing Pole Hint", "gRandomizeFishingPoleHint", mOptionDescriptions[RSK_FISHING_POLE_HINT], IMFLAG_NONE);
|
||||||
mOptions[RSK_FROGS_HINT] = Option::Bool("Frog Ocarina Game Hint", "gRandomizeFrogsHint", mOptionDescriptions[RSK_FROGS_HINT], IMFLAG_NONE);
|
mOptions[RSK_FROGS_HINT] = Option::Bool("Frog Ocarina Game Hint", "gRandomizeFrogsHint", mOptionDescriptions[RSK_FROGS_HINT], IMFLAG_NONE);
|
||||||
mOptions[RSK_BIGGORON_HINT] = Option::Bool("Biggoron's Hint", "gRandomizeBiggoronHint", mOptionDescriptions[RSK_BIGGORON_HINT], IMFLAG_NONE);
|
mOptions[RSK_BIGGORON_HINT] = Option::Bool("Biggoron's Hint", "gRandomizeBiggoronHint", mOptionDescriptions[RSK_BIGGORON_HINT], IMFLAG_NONE);
|
||||||
mOptions[RSK_BIG_POES_HINT] = Option::Bool("Big Poes Hint", "gRandomizeBigPoesHint", mOptionDescriptions[RSK_BIG_POES_HINT], IMFLAG_NONE);
|
mOptions[RSK_BIG_POES_HINT] = Option::Bool("Big Poes Hint", "gRandomizeBigPoesHint", mOptionDescriptions[RSK_BIG_POES_HINT], IMFLAG_NONE);
|
||||||
@ -645,12 +650,16 @@ void Settings::CreateOptions() {
|
|||||||
&mOptions[RSK_SHUFFLE_OCARINA],
|
&mOptions[RSK_SHUFFLE_OCARINA],
|
||||||
&mOptions[RSK_SHUFFLE_OCARINA_BUTTONS],
|
&mOptions[RSK_SHUFFLE_OCARINA_BUTTONS],
|
||||||
&mOptions[RSK_SHUFFLE_WEIRD_EGG],
|
&mOptions[RSK_SHUFFLE_WEIRD_EGG],
|
||||||
&mOptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD]
|
&mOptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD],
|
||||||
|
&mOptions[RSK_SHUFFLE_FISHING_POLE],
|
||||||
}, false, WidgetContainerType::COLUMN);
|
}, false, WidgetContainerType::COLUMN);
|
||||||
mOptionGroups[RSG_SHUFFLE_NPCS_IMGUI] = OptionGroup::SubGroup("Shuffle NPCs & Merchants", {
|
mOptionGroups[RSG_SHUFFLE_NPCS_IMGUI] = OptionGroup::SubGroup("Shuffle NPCs & Merchants", {
|
||||||
&mOptions[RSK_SHOPSANITY],
|
&mOptions[RSK_SHOPSANITY],
|
||||||
&mOptions[RSK_SHOPSANITY_PRICES],
|
&mOptions[RSK_SHOPSANITY_PRICES],
|
||||||
&mOptions[RSK_SHOPSANITY_PRICES_AFFORDABLE],
|
&mOptions[RSK_SHOPSANITY_PRICES_AFFORDABLE],
|
||||||
|
&mOptions[RSK_FISHSANITY],
|
||||||
|
&mOptions[RSK_FISHSANITY_POND_COUNT],
|
||||||
|
&mOptions[RSK_FISHSANITY_AGE_SPLIT],
|
||||||
&mOptions[RSK_SHUFFLE_SCRUBS],
|
&mOptions[RSK_SHUFFLE_SCRUBS],
|
||||||
&mOptions[RSK_SHUFFLE_COWS],
|
&mOptions[RSK_SHUFFLE_COWS],
|
||||||
&mOptions[RSK_SHUFFLE_MAGIC_BEANS],
|
&mOptions[RSK_SHUFFLE_MAGIC_BEANS],
|
||||||
@ -719,6 +728,7 @@ void Settings::CreateOptions() {
|
|||||||
&mOptions[RSK_CHICKENS_HINT],
|
&mOptions[RSK_CHICKENS_HINT],
|
||||||
&mOptions[RSK_MALON_HINT],
|
&mOptions[RSK_MALON_HINT],
|
||||||
&mOptions[RSK_HBA_HINT],
|
&mOptions[RSK_HBA_HINT],
|
||||||
|
&mOptions[RSK_FISHING_POLE_HINT],
|
||||||
&mOptions[RSK_WARP_SONG_HINTS],
|
&mOptions[RSK_WARP_SONG_HINTS],
|
||||||
&mOptions[RSK_SCRUB_TEXT_HINT],
|
&mOptions[RSK_SCRUB_TEXT_HINT],
|
||||||
&mOptions[RSK_KAK_10_SKULLS_HINT],
|
&mOptions[RSK_KAK_10_SKULLS_HINT],
|
||||||
@ -843,6 +853,10 @@ void Settings::CreateOptions() {
|
|||||||
&mOptions[RSK_SHOPSANITY],
|
&mOptions[RSK_SHOPSANITY],
|
||||||
&mOptions[RSK_SHOPSANITY_PRICES],
|
&mOptions[RSK_SHOPSANITY_PRICES],
|
||||||
&mOptions[RSK_SHOPSANITY_PRICES_AFFORDABLE],
|
&mOptions[RSK_SHOPSANITY_PRICES_AFFORDABLE],
|
||||||
|
&mOptions[RSK_FISHSANITY],
|
||||||
|
&mOptions[RSK_FISHSANITY_POND_COUNT],
|
||||||
|
&mOptions[RSK_FISHSANITY_AGE_SPLIT],
|
||||||
|
&mOptions[RSK_SHUFFLE_FISHING_POLE],
|
||||||
&mOptions[RSK_SHUFFLE_TOKENS],
|
&mOptions[RSK_SHUFFLE_TOKENS],
|
||||||
&mOptions[RSK_SHUFFLE_SCRUBS],
|
&mOptions[RSK_SHUFFLE_SCRUBS],
|
||||||
&mOptions[RSK_SHUFFLE_COWS],
|
&mOptions[RSK_SHUFFLE_COWS],
|
||||||
@ -946,6 +960,7 @@ void Settings::CreateOptions() {
|
|||||||
&mOptions[RSK_KAK_50_SKULLS_HINT],
|
&mOptions[RSK_KAK_50_SKULLS_HINT],
|
||||||
&mOptions[RSK_KAK_100_SKULLS_HINT],
|
&mOptions[RSK_KAK_100_SKULLS_HINT],
|
||||||
&mOptions[RSK_SCRUB_TEXT_HINT],
|
&mOptions[RSK_SCRUB_TEXT_HINT],
|
||||||
|
&mOptions[RSK_FISHING_POLE_HINT],
|
||||||
// TODO: Compasses show Reward/WOTH, Maps show Dungeon Mode, Starting Time
|
// TODO: Compasses show Reward/WOTH, Maps show Dungeon Mode, Starting Time
|
||||||
&mOptions[RSK_DAMAGE_MULTIPLIER],
|
&mOptions[RSK_DAMAGE_MULTIPLIER],
|
||||||
&mOptions[RSK_BLUE_FIRE_ARROWS],
|
&mOptions[RSK_BLUE_FIRE_ARROWS],
|
||||||
@ -1019,6 +1034,9 @@ void Settings::CreateOptions() {
|
|||||||
&mOptions[RSK_SHOPSANITY],
|
&mOptions[RSK_SHOPSANITY],
|
||||||
&mOptions[RSK_SHOPSANITY_PRICES],
|
&mOptions[RSK_SHOPSANITY_PRICES],
|
||||||
&mOptions[RSK_SHOPSANITY_PRICES_AFFORDABLE],
|
&mOptions[RSK_SHOPSANITY_PRICES_AFFORDABLE],
|
||||||
|
&mOptions[RSK_FISHSANITY],
|
||||||
|
&mOptions[RSK_FISHSANITY_POND_COUNT],
|
||||||
|
&mOptions[RSK_FISHSANITY_AGE_SPLIT],
|
||||||
&mOptions[RSK_SHUFFLE_SCRUBS],
|
&mOptions[RSK_SHUFFLE_SCRUBS],
|
||||||
&mOptions[RSK_SHUFFLE_COWS],
|
&mOptions[RSK_SHUFFLE_COWS],
|
||||||
&mOptions[RSK_SHUFFLE_MAGIC_BEANS],
|
&mOptions[RSK_SHUFFLE_MAGIC_BEANS],
|
||||||
@ -1056,6 +1074,10 @@ void Settings::CreateOptions() {
|
|||||||
{ "Shuffle Settings:Shopsanity", RSK_SHOPSANITY },
|
{ "Shuffle Settings:Shopsanity", RSK_SHOPSANITY },
|
||||||
{ "Shuffle Settings:Shopsanity Prices", RSK_SHOPSANITY_PRICES },
|
{ "Shuffle Settings:Shopsanity Prices", RSK_SHOPSANITY_PRICES },
|
||||||
{ "Shuffle Settings:Affordable Prices", RSK_SHOPSANITY_PRICES_AFFORDABLE },
|
{ "Shuffle Settings:Affordable Prices", RSK_SHOPSANITY_PRICES_AFFORDABLE },
|
||||||
|
{ "Shuffle Settings:Fishsanity", RSK_FISHSANITY },
|
||||||
|
{ "Shuffle Settings:Pond Fish Count", RSK_FISHSANITY_POND_COUNT },
|
||||||
|
{ "Shuffle Settings:Split Pond Fish", RSK_FISHSANITY_AGE_SPLIT },
|
||||||
|
{ "Shuffle Settings:Shuffle Fishing Pole", RSK_SHUFFLE_FISHING_POLE },
|
||||||
{ "Shuffle Settings:Scrub Shuffle", RSK_SHUFFLE_SCRUBS },
|
{ "Shuffle Settings:Scrub Shuffle", RSK_SHUFFLE_SCRUBS },
|
||||||
{ "Shuffle Settings:Shuffle Cows", RSK_SHUFFLE_COWS },
|
{ "Shuffle Settings:Shuffle Cows", RSK_SHUFFLE_COWS },
|
||||||
{ "Shuffle Settings:Tokensanity", RSK_SHUFFLE_TOKENS },
|
{ "Shuffle Settings:Tokensanity", RSK_SHUFFLE_TOKENS },
|
||||||
@ -1147,6 +1169,7 @@ void Settings::CreateOptions() {
|
|||||||
{ "Miscellaneous Settings:Big Poes Hint", RSK_BIG_POES_HINT },
|
{ "Miscellaneous Settings:Big Poes Hint", RSK_BIG_POES_HINT },
|
||||||
{ "Miscellaneous Settings:Warp Song Hints", RSK_WARP_SONG_HINTS },
|
{ "Miscellaneous Settings:Warp Song Hints", RSK_WARP_SONG_HINTS },
|
||||||
{ "Miscellaneous Settings:Scrub Hint Text", RSK_SCRUB_TEXT_HINT },
|
{ "Miscellaneous Settings:Scrub Hint Text", RSK_SCRUB_TEXT_HINT },
|
||||||
|
{ "Miscellaneous Settings:Fishing Pole Hint", RSK_FISHING_POLE_HINT },
|
||||||
{ "Miscellaneous Settings:Hint Distribution", RSK_HINT_DISTRIBUTION },
|
{ "Miscellaneous Settings:Hint Distribution", RSK_HINT_DISTRIBUTION },
|
||||||
{ "Miscellaneous Settings:Blue Fire Arrows", RSK_BLUE_FIRE_ARROWS },
|
{ "Miscellaneous Settings:Blue Fire Arrows", RSK_BLUE_FIRE_ARROWS },
|
||||||
{ "Miscellaneous Settings:Sunlight Arrows", RSK_SUNLIGHT_ARROWS },
|
{ "Miscellaneous Settings:Sunlight Arrows", RSK_SUNLIGHT_ARROWS },
|
||||||
@ -1526,6 +1549,25 @@ void Settings::UpdateOptionProperties() {
|
|||||||
mOptions[RSK_SHOPSANITY_PRICES_AFFORDABLE].Unhide();
|
mOptions[RSK_SHOPSANITY_PRICES_AFFORDABLE].Unhide();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// Hide fishing pond settings if we aren't shuffling the fishing pond
|
||||||
|
switch (CVarGetInteger("gRandomizeFishsanity", RO_FISHSANITY_OFF)) {
|
||||||
|
case RO_FISHSANITY_POND:
|
||||||
|
case RO_FISHSANITY_BOTH:
|
||||||
|
mOptions[RSK_FISHSANITY].RemoveFlag(IMFLAG_SEPARATOR_BOTTOM);
|
||||||
|
mOptions[RSK_FISHSANITY_POND_COUNT].Unhide();
|
||||||
|
mOptions[RSK_FISHSANITY_AGE_SPLIT].Unhide();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mOptions[RSK_FISHSANITY].AddFlag(IMFLAG_SEPARATOR_BOTTOM);
|
||||||
|
mOptions[RSK_FISHSANITY_POND_COUNT].Hide();
|
||||||
|
mOptions[RSK_FISHSANITY_AGE_SPLIT].Hide();
|
||||||
|
}
|
||||||
|
// Disable fishing pole hint if the fishing pole is not shuffled
|
||||||
|
if (CVarGetInteger("gRandomizeShuffleFishingPole", RO_GENERIC_OFF)) {
|
||||||
|
mOptions[RSK_FISHING_POLE_HINT].Enable();
|
||||||
|
} else {
|
||||||
|
mOptions[RSK_FISHING_POLE_HINT].Disable("This option is disabled since the fishing pole is not shuffled.");
|
||||||
|
}
|
||||||
// Shuffle 100 GS Reward - Force-Enabled if Ganon's Boss Key is on the 100 GS Reward
|
// Shuffle 100 GS Reward - Force-Enabled if Ganon's Boss Key is on the 100 GS Reward
|
||||||
if (CVarGetInteger("gRandomizeShuffleGanonBossKey", RO_GANON_BOSS_KEY_VANILLA) == RO_GANON_BOSS_KEY_KAK_TOKENS) {
|
if (CVarGetInteger("gRandomizeShuffleGanonBossKey", RO_GANON_BOSS_KEY_VANILLA) == RO_GANON_BOSS_KEY_KAK_TOKENS) {
|
||||||
mOptions[RSK_SHUFFLE_100_GS_REWARD].Disable("This option is force-enabled because \"Ganon's Boss Key\" is set to \"100 GS Reward.\"", UIWidgets::CheckboxGraphics::Checkmark);
|
mOptions[RSK_SHUFFLE_100_GS_REWARD].Disable("This option is force-enabled because \"Ganon's Boss Key\" is set to \"100 GS Reward.\"", UIWidgets::CheckboxGraphics::Checkmark);
|
||||||
@ -2116,6 +2158,7 @@ void Settings::ParseJson(nlohmann::json spoilerFileJson) {
|
|||||||
case RSK_LACS_TOKEN_COUNT:
|
case RSK_LACS_TOKEN_COUNT:
|
||||||
case RSK_KEYRINGS_RANDOM_COUNT:
|
case RSK_KEYRINGS_RANDOM_COUNT:
|
||||||
case RSK_CUCCO_COUNT:
|
case RSK_CUCCO_COUNT:
|
||||||
|
case RSK_FISHSANITY_POND_COUNT:
|
||||||
case RSK_STARTING_SKULLTULA_TOKEN:
|
case RSK_STARTING_SKULLTULA_TOKEN:
|
||||||
numericValueString = it.value();
|
numericValueString = it.value();
|
||||||
mOptions[index].SetSelectedIndex(std::stoi(numericValueString));
|
mOptions[index].SetSelectedIndex(std::stoi(numericValueString));
|
||||||
@ -2178,6 +2221,9 @@ void Settings::ParseJson(nlohmann::json spoilerFileJson) {
|
|||||||
mOptions[index].SetSelectedIndex(RO_SCRUBS_RANDOM);
|
mOptions[index].SetSelectedIndex(RO_SCRUBS_RANDOM);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case RSK_SHUFFLE_FISHING_POLE:
|
||||||
|
case RSK_FISHSANITY_AGE_SPLIT:
|
||||||
|
case RSK_FISHING_POLE_HINT:
|
||||||
case RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD:
|
case RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD:
|
||||||
case RSK_SHUFFLE_COWS:
|
case RSK_SHUFFLE_COWS:
|
||||||
case RSK_SHUFFLE_ADULT_TRADE:
|
case RSK_SHUFFLE_ADULT_TRADE:
|
||||||
@ -2290,6 +2336,17 @@ void Settings::ParseJson(nlohmann::json spoilerFileJson) {
|
|||||||
mOptions[index].SetSelectedIndex(RO_AMMO_DROPS_OFF);
|
mOptions[index].SetSelectedIndex(RO_AMMO_DROPS_OFF);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case RSK_FISHSANITY:
|
||||||
|
if (it.value() == "Off") {
|
||||||
|
mOptions[index].SetSelectedIndex(RO_FISHSANITY_OFF);
|
||||||
|
} else if (it.value() == "Shuffle Fishing Pond") {
|
||||||
|
mOptions[index].SetSelectedIndex(RO_FISHSANITY_POND);
|
||||||
|
} else if (it.value() == "Shuffle Overworld Fish") {
|
||||||
|
mOptions[index].SetSelectedIndex(RO_FISHSANITY_OVERWORLD);
|
||||||
|
} else if (it.value() == "Shuffle Both") {
|
||||||
|
mOptions[index].SetSelectedIndex(RO_FISHSANITY_BOTH);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case RSK_SHUFFLE_BOSS_SOULS:
|
case RSK_SHUFFLE_BOSS_SOULS:
|
||||||
if (it.value() == "Off") {
|
if (it.value() == "Off") {
|
||||||
mOptions[index].SetSelectedIndex(RO_BOSS_SOULS_OFF);
|
mOptions[index].SetSelectedIndex(RO_BOSS_SOULS_OFF);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
#include <unordered_map>
|
||||||
#include "randomizerTypes.h"
|
#include "randomizerTypes.h"
|
||||||
#include "item.h"
|
#include "item.h"
|
||||||
#include "location.h"
|
#include "location.h"
|
||||||
@ -32,6 +33,10 @@ class StaticData {
|
|||||||
static std::vector<RandomizerCheck> scrubLocations;
|
static std::vector<RandomizerCheck> scrubLocations;
|
||||||
static std::vector<RandomizerCheck> gossipStoneLocations;
|
static std::vector<RandomizerCheck> gossipStoneLocations;
|
||||||
static std::vector<RandomizerCheck> otherHintLocations;
|
static std::vector<RandomizerCheck> otherHintLocations;
|
||||||
|
static std::vector<RandomizerCheck> pondFishLocations;
|
||||||
|
static std::vector<RandomizerCheck> overworldFishLocations;
|
||||||
|
static std::array<std::pair<RandomizerCheck, RandomizerCheck>, 17> randomizerFishingPondFish;
|
||||||
|
static std::unordered_map<int8_t, RandomizerCheck> randomizerGrottoFishMap;
|
||||||
StaticData();
|
StaticData();
|
||||||
~StaticData();
|
~StaticData();
|
||||||
};
|
};
|
||||||
|
@ -2387,6 +2387,9 @@ extern "C" CowIdentity Randomizer_IdentifyCow(s32 sceneNum, s32 posX, s32 posZ)
|
|||||||
return OTRGlobals::Instance->gRandomizer->IdentifyCow(sceneNum, posX, posZ);
|
return OTRGlobals::Instance->gRandomizer->IdentifyCow(sceneNum, posX, posZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" FishIdentity Randomizer_IdentifyFish(s32 sceneNum, s32 actorParams) {
|
||||||
|
return OTRGlobals::Instance->gRandomizer->IdentifyFish(sceneNum, actorParams);
|
||||||
|
}
|
||||||
extern "C" GetItemEntry ItemTable_Retrieve(int16_t getItemID) {
|
extern "C" GetItemEntry ItemTable_Retrieve(int16_t getItemID) {
|
||||||
GetItemEntry giEntry = ItemTableManager::Instance->RetrieveItemEntry(MOD_NONE, getItemID);
|
GetItemEntry giEntry = ItemTableManager::Instance->RetrieveItemEntry(MOD_NONE, getItemID);
|
||||||
return giEntry;
|
return giEntry;
|
||||||
@ -2415,6 +2418,10 @@ extern "C" GetItemEntry Randomizer_GetItemFromKnownCheckWithoutObtainabilityChec
|
|||||||
return OTRGlobals::Instance->gRandomizer->GetItemFromKnownCheck(randomizerCheck, ogId, false);
|
return OTRGlobals::Instance->gRandomizer->GetItemFromKnownCheck(randomizerCheck, ogId, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" RandomizerInf Randomizer_GetRandomizerInfFromCheck(RandomizerCheck randomizerCheck) {
|
||||||
|
return OTRGlobals::Instance->gRandomizer->GetRandomizerInfFromCheck(randomizerCheck);
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" ItemObtainability Randomizer_GetItemObtainabilityFromRandomizerCheck(RandomizerCheck randomizerCheck) {
|
extern "C" ItemObtainability Randomizer_GetItemObtainabilityFromRandomizerCheck(RandomizerCheck randomizerCheck) {
|
||||||
return OTRGlobals::Instance->gRandomizer->GetItemObtainabilityFromRandomizerCheck(randomizerCheck);
|
return OTRGlobals::Instance->gRandomizer->GetItemObtainabilityFromRandomizerCheck(randomizerCheck);
|
||||||
}
|
}
|
||||||
@ -2614,6 +2621,9 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) {
|
|||||||
messageEntry = OTRGlobals::Instance->gRandomizer->GetGoronMessage(choice);
|
messageEntry = OTRGlobals::Instance->gRandomizer->GetGoronMessage(choice);
|
||||||
} else if (Randomizer_GetSettingValue(RSK_FROGS_HINT) && textId == TEXT_FROGS_UNDERWATER) {
|
} else if (Randomizer_GetSettingValue(RSK_FROGS_HINT) && textId == TEXT_FROGS_UNDERWATER) {
|
||||||
messageEntry = OTRGlobals::Instance->gRandomizer->GetMiscHintMessage(TEXT_FROGS_UNDERWATER, RC_ZR_FROGS_OCARINA_GAME);
|
messageEntry = OTRGlobals::Instance->gRandomizer->GetMiscHintMessage(TEXT_FROGS_UNDERWATER, RC_ZR_FROGS_OCARINA_GAME);
|
||||||
|
} else if (Randomizer_GetSettingValue(RSK_FISHING_POLE_HINT) && !Flags_GetRandomizerInf(RAND_INF_FISHING_POLE_FOUND) &&
|
||||||
|
(textId == TEXT_FISHING_POND_START || textId == TEXT_FISHING_POND_START_MET)) {
|
||||||
|
messageEntry = OTRGlobals::Instance->gRandomizer->GetFishingPondOwnerMessage(textId);
|
||||||
} else if (Randomizer_GetSettingValue(RSK_SARIA_HINT) &&
|
} else if (Randomizer_GetSettingValue(RSK_SARIA_HINT) &&
|
||||||
(gPlayState->sceneNum == SCENE_SACRED_FOREST_MEADOW && textId == TEXT_SARIA_SFM) || (textId >= TEXT_SARIAS_SONG_FACE_TO_FACE && textId <= TEXT_SARIAS_SONG_CHANNELING_POWER)) {
|
(gPlayState->sceneNum == SCENE_SACRED_FOREST_MEADOW && textId == TEXT_SARIA_SFM) || (textId >= TEXT_SARIAS_SONG_FACE_TO_FACE && textId <= TEXT_SARIAS_SONG_CHANNELING_POWER)) {
|
||||||
messageEntry = OTRGlobals::Instance->gRandomizer->GetSariaMessage(textId);
|
messageEntry = OTRGlobals::Instance->gRandomizer->GetSariaMessage(textId);
|
||||||
|
@ -156,6 +156,7 @@ RandomizerCheck Randomizer_GetCheckFromActor(s16 actorId, s16 sceneNum, s16 acto
|
|||||||
ScrubIdentity Randomizer_IdentifyScrub(s32 sceneNum, s32 actorParams, s32 respawnData);
|
ScrubIdentity Randomizer_IdentifyScrub(s32 sceneNum, s32 actorParams, s32 respawnData);
|
||||||
ShopItemIdentity Randomizer_IdentifyShopItem(s32 sceneNum, u8 slotIndex);
|
ShopItemIdentity Randomizer_IdentifyShopItem(s32 sceneNum, u8 slotIndex);
|
||||||
CowIdentity Randomizer_IdentifyCow(s32 sceneNum, s32 posX, s32 posZ);
|
CowIdentity Randomizer_IdentifyCow(s32 sceneNum, s32 posX, s32 posZ);
|
||||||
|
FishIdentity Randomizer_IdentifyFish(s32 sceneNum, s32 actorParams);
|
||||||
void Randomizer_ParseSpoiler(const char* fileLoc);
|
void Randomizer_ParseSpoiler(const char* fileLoc);
|
||||||
void Randomizer_LoadHintMessages();
|
void Randomizer_LoadHintMessages();
|
||||||
void Randomizer_LoadMerchantMessages();
|
void Randomizer_LoadMerchantMessages();
|
||||||
@ -164,6 +165,7 @@ GetItemEntry Randomizer_GetItemFromActor(s16 actorId, s16 sceneNum, s16 actorPar
|
|||||||
GetItemEntry Randomizer_GetItemFromActorWithoutObtainabilityCheck(s16 actorId, s16 sceneNum, s16 actorParams, GetItemID ogId);
|
GetItemEntry Randomizer_GetItemFromActorWithoutObtainabilityCheck(s16 actorId, s16 sceneNum, s16 actorParams, GetItemID ogId);
|
||||||
GetItemEntry Randomizer_GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId);
|
GetItemEntry Randomizer_GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId);
|
||||||
GetItemEntry Randomizer_GetItemFromKnownCheckWithoutObtainabilityCheck(RandomizerCheck randomizerCheck, GetItemID ogId);
|
GetItemEntry Randomizer_GetItemFromKnownCheckWithoutObtainabilityCheck(RandomizerCheck randomizerCheck, GetItemID ogId);
|
||||||
|
RandomizerInf Randomizer_GetRandomizerInfFromCheck(RandomizerCheck randomizerCheck);
|
||||||
ItemObtainability Randomizer_GetItemObtainabilityFromRandomizerCheck(RandomizerCheck randomizerCheck);
|
ItemObtainability Randomizer_GetItemObtainabilityFromRandomizerCheck(RandomizerCheck randomizerCheck);
|
||||||
void Randomizer_GenerateSeed();
|
void Randomizer_GenerateSeed();
|
||||||
uint8_t Randomizer_IsSeedGenerated();
|
uint8_t Randomizer_IsSeedGenerated();
|
||||||
|
@ -272,6 +272,9 @@ void SaveManager::LoadRandomizerVersion2() {
|
|||||||
std::string sariaText;
|
std::string sariaText;
|
||||||
SaveManager::Instance->LoadData("sariaText", sariaText);
|
SaveManager::Instance->LoadData("sariaText", sariaText);
|
||||||
randoContext->AddHint(RH_SARIA, Text(sariaText), RC_UNKNOWN_CHECK, HINT_TYPE_STATIC, "Static");
|
randoContext->AddHint(RH_SARIA, Text(sariaText), RC_UNKNOWN_CHECK, HINT_TYPE_STATIC, "Static");
|
||||||
|
std::string fishingPoleText;
|
||||||
|
SaveManager::Instance->LoadData("fishingPoleText", fishingPoleText);
|
||||||
|
randoContext->AddHint(RH_FISHING_POLE, Text(fishingPoleText), RC_UNKNOWN_CHECK, HINT_TYPE_STATIC, "Static");
|
||||||
std::string warpMinuetText;
|
std::string warpMinuetText;
|
||||||
SaveManager::Instance->LoadData("warpMinuetText", warpMinuetText);
|
SaveManager::Instance->LoadData("warpMinuetText", warpMinuetText);
|
||||||
randoContext->AddHint(RH_MINUET_WARP_LOC, Text(warpMinuetText), RC_UNKNOWN_CHECK, HINT_TYPE_STATIC, "Static", randoContext->GetAreaFromString(warpMinuetText));
|
randoContext->AddHint(RH_MINUET_WARP_LOC, Text(warpMinuetText), RC_UNKNOWN_CHECK, HINT_TYPE_STATIC, "Static", randoContext->GetAreaFromString(warpMinuetText));
|
||||||
|
@ -871,6 +871,10 @@ void DrawEnhancementsMenu() {
|
|||||||
UIWidgets::Tooltip("When a line is stable, guarantee bite. Otherwise use default logic");
|
UIWidgets::Tooltip("When a line is stable, guarantee bite. Otherwise use default logic");
|
||||||
UIWidgets::PaddedEnhancementCheckbox("Fish Never Escape", "gFishNeverEscape", true, false, disabled, disabledTooltip);
|
UIWidgets::PaddedEnhancementCheckbox("Fish Never Escape", "gFishNeverEscape", true, false, disabled, disabledTooltip);
|
||||||
UIWidgets::Tooltip("Once a hook has been set, fish will never let go while being reeled in.");
|
UIWidgets::Tooltip("Once a hook has been set, fish will never let go while being reeled in.");
|
||||||
|
UIWidgets::PaddedEnhancementCheckbox("Loaches Always Appear", "gLoachesAlwaysAppear", true, false, disabled, disabledTooltip);
|
||||||
|
UIWidgets::Tooltip("Loaches will always appear in the fishing pond instead of every four visits.");
|
||||||
|
UIWidgets::PaddedEnhancementCheckbox("Skip Keep Confirmation", "gSkipKeepConfirmation", true, false, disabled, disabledTooltip);
|
||||||
|
UIWidgets::Tooltip("The pond owner will not ask to confirm if you want to keep a smaller fish.");
|
||||||
UIWidgets::PaddedEnhancementSliderInt("Child Minimum Weight: %d", "##cMinimumWeight", "gChildMinimumWeightFish", 3, 10, "", 10, true, true, false, disabled, disabledTooltip);
|
UIWidgets::PaddedEnhancementSliderInt("Child Minimum Weight: %d", "##cMinimumWeight", "gChildMinimumWeightFish", 3, 10, "", 10, true, true, false, disabled, disabledTooltip);
|
||||||
UIWidgets::Tooltip("The minimum weight for the unique fishing reward as a child");
|
UIWidgets::Tooltip("The minimum weight for the unique fishing reward as a child");
|
||||||
UIWidgets::PaddedEnhancementSliderInt("Adult Minimum Weight: %d", "##aMinimumWeight", "gAdultMinimumWeightFish", 6, 13, "", 13, true, true, false, disabled, disabledTooltip);
|
UIWidgets::PaddedEnhancementSliderInt("Adult Minimum Weight: %d", "##aMinimumWeight", "gAdultMinimumWeightFish", 6, 13, "", 13, true, true, false, disabled, disabledTooltip);
|
||||||
|
@ -76,6 +76,7 @@
|
|||||||
#include "objects/object_gi_dekupouch/object_gi_dekupouch.h"
|
#include "objects/object_gi_dekupouch/object_gi_dekupouch.h"
|
||||||
#include "objects/object_gi_rupy/object_gi_rupy.h"
|
#include "objects/object_gi_rupy/object_gi_rupy.h"
|
||||||
#include "objects/object_gi_sword_1/object_gi_sword_1.h"
|
#include "objects/object_gi_sword_1/object_gi_sword_1.h"
|
||||||
|
#include "objects/object_fish/object_fish.h"
|
||||||
#include "objects/object_st/object_st.h"
|
#include "objects/object_st/object_st.h"
|
||||||
|
|
||||||
#include "soh_assets.h"
|
#include "soh_assets.h"
|
||||||
@ -113,6 +114,7 @@ void GetItem_DrawJewelGoron(PlayState* play, s16 drawId);
|
|||||||
void GetItem_DrawJewelZora(PlayState* play, s16 drawId);
|
void GetItem_DrawJewelZora(PlayState* play, s16 drawId);
|
||||||
void GetItem_DrawGenericMusicNote(PlayState* play, s16 drawId);
|
void GetItem_DrawGenericMusicNote(PlayState* play, s16 drawId);
|
||||||
void GetItem_DrawTriforcePiece(PlayState* play, s16 drawId);
|
void GetItem_DrawTriforcePiece(PlayState* play, s16 drawId);
|
||||||
|
void GetItem_DrawFishingPole(PlayState* play, s16 drawId);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ void (*drawFunc)(PlayState*, s16);
|
/* 0x00 */ void (*drawFunc)(PlayState*, s16);
|
||||||
@ -388,7 +390,8 @@ DrawItemTableEntry sDrawItemTable[] = {
|
|||||||
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Sun's song
|
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Sun's song
|
||||||
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Song of time
|
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Song of time
|
||||||
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Song of storms
|
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Song of storms
|
||||||
{ GetItem_DrawTriforcePiece, { gTriforcePiece0DL } } // Triforce Piece
|
{ GetItem_DrawTriforcePiece, { gTriforcePiece0DL } }, // Triforce Piece
|
||||||
|
{ GetItem_DrawFishingPole, { gFishingPoleGiDL } }, // Fishing Pole
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1065,3 +1068,54 @@ void GetItem_DrawTriforcePiece(PlayState* play, s16 drawId) {
|
|||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GetItem_DrawFishingPole(PlayState* play, s16 drawId) {
|
||||||
|
Vec3f pos;
|
||||||
|
OPEN_DISPS(play->state.gfxCtx);
|
||||||
|
|
||||||
|
// Draw rod
|
||||||
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
|
Matrix_Scale(0.2, 0.2, 0.2, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingPoleGiDL);
|
||||||
|
|
||||||
|
// Draw lure
|
||||||
|
Matrix_Push();
|
||||||
|
Matrix_Scale(5.0f, 5.0f, 5.0f, MTXMODE_APPLY);
|
||||||
|
pos.x = 0.0f;
|
||||||
|
pos.y = -25.5f;
|
||||||
|
pos.z = -4.0f;
|
||||||
|
Matrix_Translate(pos.x, pos.y, pos.z, MTXMODE_APPLY);
|
||||||
|
Matrix_RotateZ(M_PI / -2, MTXMODE_APPLY);
|
||||||
|
Matrix_RotateY((M_PI / -2) - 0.2f, MTXMODE_APPLY);
|
||||||
|
Matrix_Scale(0.006f, 0.006f, 0.006f, MTXMODE_APPLY);
|
||||||
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureFloatDL);
|
||||||
|
|
||||||
|
// Draw hooks
|
||||||
|
Matrix_RotateY(0.2f, MTXMODE_APPLY);
|
||||||
|
Matrix_Translate(0.0f, 0.0f, -300.0f, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||||
|
Matrix_RotateZ(M_PI / 2, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||||
|
|
||||||
|
Matrix_Translate(0.0f, -2200.0f, 700.0f, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||||
|
Matrix_RotateZ(M_PI / 2, MTXMODE_APPLY);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||||
|
|
||||||
|
Matrix_Pop();
|
||||||
|
|
||||||
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
}
|
@ -2644,6 +2644,11 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
|
|||||||
return Return_Item_Entry(giEntry, RG_NONE);
|
return Return_Item_Entry(giEntry, RG_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item == RG_FISHING_POLE) {
|
||||||
|
Flags_SetRandomizerInf(RAND_INF_FISHING_POLE_FOUND);
|
||||||
|
return Return_Item_Entry(giEntry, RG_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
if (item == RG_PROGRESSIVE_BOMBCHUS) {
|
if (item == RG_PROGRESSIVE_BOMBCHUS) {
|
||||||
if (INV_CONTENT(ITEM_BOMBCHU) == ITEM_NONE) {
|
if (INV_CONTENT(ITEM_BOMBCHU) == ITEM_NONE) {
|
||||||
INV_CONTENT(ITEM_BOMBCHU) = ITEM_BOMBCHU;
|
INV_CONTENT(ITEM_BOMBCHU) = ITEM_BOMBCHU;
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "z_en_fish.h"
|
#include "z_en_fish.h"
|
||||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||||
#include "vt.h"
|
#include "vt.h"
|
||||||
|
#include "soh/Enhancements/randomizer/fishsanity.h"
|
||||||
|
|
||||||
#define FLAGS 0
|
#define FLAGS 0
|
||||||
|
|
||||||
@ -36,6 +37,7 @@ void EnFish_Unique_SwimIdle(EnFish* this, PlayState* play);
|
|||||||
static Actor* D_80A17010 = NULL;
|
static Actor* D_80A17010 = NULL;
|
||||||
static f32 D_80A17014 = 0.0f;
|
static f32 D_80A17014 = 0.0f;
|
||||||
static f32 D_80A17018 = 0.0f;
|
static f32 D_80A17018 = 0.0f;
|
||||||
|
static Color_RGBA16 fsPulseColor = { 30, 240, 200 };
|
||||||
|
|
||||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||||
{
|
{
|
||||||
@ -760,10 +762,31 @@ void EnFish_Update(Actor* thisx, PlayState* play) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// #region SOH [Randomizer]
|
||||||
|
s32 EnFish_FishsanityOverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
|
||||||
|
void* thisx) {
|
||||||
|
EnFish* this = (EnFish*)thisx;
|
||||||
|
Fishsanity_OpenGreyscaleColor(play, &fsPulseColor, ABS(this->actor.params) * 20);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnFish_FishPostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
|
||||||
|
Fishsanity_CloseGreyscaleColor(play);
|
||||||
|
}
|
||||||
|
// #endregion
|
||||||
|
|
||||||
void EnFish_Draw(Actor* thisx, PlayState* play) {
|
void EnFish_Draw(Actor* thisx, PlayState* play) {
|
||||||
EnFish* this = (EnFish*)thisx;
|
EnFish* this = (EnFish*)thisx;
|
||||||
|
|
||||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
|
// #region SOH [Randomizer]
|
||||||
|
// Modify drawing for uncollected fish, having a shadowDraw implies this is being given uncollected FX
|
||||||
|
if (IS_RANDO && Randomizer_GetOverworldFishShuffled() && this->actor.shape.shadowDraw != NULL) {
|
||||||
|
SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnFish_FishsanityOverrideLimbDraw, EnFish_FishPostLimbDraw, this);
|
||||||
|
Collider_UpdateSpheres(0, &this->collider);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// #endregion
|
||||||
SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, NULL, NULL);
|
SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, NULL, NULL);
|
||||||
Collider_UpdateSpheres(0, &this->collider);
|
Collider_UpdateSpheres(0, &this->collider);
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
@ -3,61 +3,65 @@
|
|||||||
|
|
||||||
#include <libultraship/libultra.h>
|
#include <libultraship/libultra.h>
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "soh/Enhancements/randomizer/fishsanity.h"
|
||||||
|
|
||||||
struct Fishing;
|
struct Fishing;
|
||||||
|
|
||||||
typedef struct Fishing {
|
typedef struct Fishing {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x004];
|
/* 0x014C */ char unk_14C[0x004];
|
||||||
/* 0x0150 */ u8 unk_150;
|
/* 0x0150 */ u8 isLoach;
|
||||||
/* 0x0151 */ u8 unk_151;
|
/* 0x0151 */ u8 lilyTimer; // if near lily and >0, lily moves. Move more if >20
|
||||||
/* 0x0152 */ u8 unk_152;
|
/* 0x0152 */ u8 unk_152;
|
||||||
/* 0x0154 */ s16 unk_154;
|
/* 0x0154 */ s16 unk_154;
|
||||||
/* 0x0156 */ u8 unk_156;
|
/* 0x0156 */ u8 unk_156;
|
||||||
/* 0x0157 */ u8 unk_157;
|
/* 0x0157 */ u8 unk_157;
|
||||||
/* 0x0158 */ s16 unk_158;
|
/* 0x0158 */ s16 fishState; // negative index for loach behavior
|
||||||
/* 0x015A */ s16 unk_15A;
|
/* 0x015A */ s16 fishStateNext;
|
||||||
/* 0x015C */ s16 unk_15C;
|
/* 0x015C */ s16 stateAndTimer; // fish use as timer that's AND'd, owner as talking state
|
||||||
/* 0x015E */ s16 unk_15E;
|
/* 0x015E */ s16 unk_15E;
|
||||||
/* 0x0160 */ s16 unk_160;
|
/* 0x0160 */ s16 unk_160; // fish use as rotateX, owner as index of eye texture
|
||||||
/* 0x0162 */ s16 unk_162;
|
/* 0x0162 */ s16 unk_162; // fish use as rotateY, owner as index of eye texture
|
||||||
/* 0x0164 */ s16 unk_164;
|
/* 0x0164 */ s16 unk_164; // fish use as rotateZ, owner as rotation of head
|
||||||
/* 0x0166 */ s16 unk_166;
|
/* 0x0166 */ Vec3s rotationTarget;
|
||||||
/* 0x0168 */ s16 unk_168;
|
/* 0x016C */ s16 fishLimb23RotYDelta;
|
||||||
/* 0x016A */ s16 unk_16A;
|
|
||||||
/* 0x016C */ s16 unk_16C;
|
|
||||||
/* 0x016E */ s16 unk_16E;
|
/* 0x016E */ s16 unk_16E;
|
||||||
/* 0x0170 */ s16 unk_170;
|
/* 0x0170 */ s16 fishLimbDRotZDelta;
|
||||||
/* 0x0172 */ s16 unk_172;
|
/* 0x0172 */ s16 fishLimbEFRotYDelta;
|
||||||
/* 0x0174 */ s16 unk_174;
|
/* 0x0174 */ s16 fishLimb89RotYDelta;
|
||||||
/* 0x0176 */ s16 unk_176;
|
/* 0x0176 */ s16 fishLimb4RotYDelta;
|
||||||
/* 0x0178 */ s16 unk_178;
|
/* 0x0178 */ s16 unk_178;
|
||||||
/* 0x017A */ s16 unk_17A[4];
|
/* 0x017A */ s16 timerArray[4];
|
||||||
/* 0x0184 */ f32 unk_184;
|
/* 0x0184 */ f32 unk_184;
|
||||||
/* 0x0188 */ f32 unk_188;
|
/* 0x0188 */ f32 speedTarget;
|
||||||
/* 0x018C */ f32 unk_18C;
|
/* 0x018C */ f32 fishLimbRotPhase;
|
||||||
/* 0x0190 */ f32 unk_190;
|
/* 0x0190 */ f32 unk_190; // fishLimbRotPhaseStep target
|
||||||
/* 0x0194 */ f32 unk_194;
|
/* 0x0194 */ f32 unk_194; // fishLimbRotPhaseMag target
|
||||||
/* 0x0198 */ f32 unk_198;
|
/* 0x0198 */ f32 fishLimbRotPhaseStep;
|
||||||
/* 0x019C */ f32 unk_19C;
|
/* 0x019C */ f32 fishLimbRotPhaseMag;
|
||||||
/* 0x01A0 */ s16 unk_1A0;
|
/* 0x01A0 */ s16 bumpTimer; // set when hitting a wall.
|
||||||
/* 0x01A2 */ s16 unk_1A2;
|
/* 0x01A2 */ s16 unk_1A2; // "scared" timer?
|
||||||
/* 0x01A4 */ s16 unk_1A4;
|
/* 0x01A4 */ s16 unk_1A4; // "scared" timer? set at same time as above
|
||||||
/* 0x01A8 */ f32 unk_1A8;
|
/* 0x01A8 */ f32 perception; // how easily they are drawn to the lure.
|
||||||
/* 0x01AC */ f32 unk_1AC;
|
/* 0x01AC */ f32 fishLength; // fish are (x^2*.0036+.5) lbs, loach double that.
|
||||||
/* 0x01B0 */ f32 unk_1B0;
|
/* 0x01B0 */ f32 rotationStep;
|
||||||
/* 0x01B4 */ Vec3f unk_1B4;
|
/* 0x01B4 */ Vec3f fishTargetPos;
|
||||||
/* 0x01C0 */ Vec3f fishMouthPos;
|
/* 0x01C0 */ Vec3f fishMouthPos;
|
||||||
/* 0x01CC */ s16 unk_1CC[3];
|
/* 0x01CC */ s16 loachRotYDelta[3]; // adds rotation to the loach limb 3-5.
|
||||||
/* 0x01D2 */ u8 unk_1D2;
|
/* 0x01D2 */ u8 bubbleTime; // spawn bubbles while >0
|
||||||
/* 0x01D3 */ u8 unk_1D3;
|
/* 0x01D3 */ u8 isAquariumMessage;
|
||||||
/* 0x01D4 */ u8 unk_1D4;
|
/* 0x01D4 */ u8 aquariumWaitTimer;
|
||||||
/* 0x01D5 */ u8 unk_1D5;
|
/* 0x01D5 */ u8 keepState; // case-switch and keeping or releasing a fish
|
||||||
/* 0x01D8 */ SkelAnime skelAnime;
|
/* 0x01D8 */ SkelAnime skelAnime;
|
||||||
/* 0x021C */ LightNode* lightNode;
|
/* 0x021C */ LightNode* lightNode;
|
||||||
/* 0x0220 */ LightInfo lightInfo;
|
/* 0x0220 */ LightInfo lightInfo;
|
||||||
/* 0x0230 */ ColliderJntSph collider;
|
/* 0x0230 */ ColliderJntSph collider;
|
||||||
/* 0x0250 */ ColliderJntSphElement colliderElements[12];
|
/* 0x0250 */ ColliderJntSphElement colliderElements[12];
|
||||||
|
/* */ s16 fishsanityParams;
|
||||||
} Fishing; // size = 0x0550
|
} Fishing; // size = 0x0550
|
||||||
|
|
||||||
|
#define EN_FISH_OWNER 1 // param for owner of pond. default if params<100
|
||||||
|
#define EN_FISH_PARAM 100 // param base for fish in pond.
|
||||||
|
#define EN_FISH_AQUARIUM 200 // param for record fish in tank.
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -193,7 +193,7 @@ void ObjMure_SpawnActors1(ObjMure* this, PlayState* play) {
|
|||||||
this->children[i] = Actor_Spawn(ac, play, sSpawnActorIds[this->type], spawnPos.x, spawnPos.y, spawnPos.z,
|
this->children[i] = Actor_Spawn(ac, play, sSpawnActorIds[this->type], spawnPos.x, spawnPos.y, spawnPos.z,
|
||||||
actor->world.rot.x, actor->world.rot.y, actor->world.rot.z,
|
actor->world.rot.x, actor->world.rot.y, actor->world.rot.z,
|
||||||
(this->type == 4 && i == 0) ? 1 : sSpawnParams[this->type], true);
|
(this->type == 4 && i == 0) ? 1 : sSpawnParams[this->type], true);
|
||||||
if (this->children[i] != NULL) {
|
if (this->children[i] != NULL && this->children[i]->update != NULL) {
|
||||||
this->childrenStates[i] = OBJMURE_CHILD_STATE_0;
|
this->childrenStates[i] = OBJMURE_CHILD_STATE_0;
|
||||||
this->children[i]->room = actor->room;
|
this->children[i]->room = actor->room;
|
||||||
} else {
|
} else {
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "soh/Enhancements/enhancementTypes.h"
|
#include "soh/Enhancements/enhancementTypes.h"
|
||||||
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
||||||
#include "soh/Enhancements/randomizer/randomizer_grotto.h"
|
#include "soh/Enhancements/randomizer/randomizer_grotto.h"
|
||||||
|
#include "soh/Enhancements/randomizer/fishsanity.h"
|
||||||
#include "soh/frame_interpolation.h"
|
#include "soh/frame_interpolation.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -13658,14 +13659,41 @@ void func_8084ECA4(Player* this, PlayState* play) {
|
|||||||
struct_80854554* sp24;
|
struct_80854554* sp24;
|
||||||
BottleCatchInfo* catchInfo;
|
BottleCatchInfo* catchInfo;
|
||||||
s32 temp;
|
s32 temp;
|
||||||
s32 i;
|
s32 i, j;
|
||||||
|
FishIdentity fish;
|
||||||
|
GetItemEntry gi = GET_ITEM_NONE;
|
||||||
|
RandomizerCheck rc = RC_UNKNOWN_CHECK;
|
||||||
|
u8 catchId;
|
||||||
|
|
||||||
sp24 = &D_80854554[this->unk_850];
|
|
||||||
func_8083721C(this);
|
func_8083721C(this);
|
||||||
|
|
||||||
|
// TODO: Rework the bottle rando code in vanilla behavior overhaul
|
||||||
if (LinkAnimation_Update(play, &this->skelAnime)) {
|
if (LinkAnimation_Update(play, &this->skelAnime)) {
|
||||||
if (this->unk_84F != 0) {
|
if (this->unk_84F != 0) {
|
||||||
if (this->unk_850 == 0) {
|
if (IS_RANDO && this->unk_84F < 0) {
|
||||||
|
rc = this->unk_850;
|
||||||
|
// Award rando item; this should only give us GI_NONE if something went wrong during the catch setup
|
||||||
|
gi = Randomizer_GetItemFromKnownCheck(rc, GI_NONE);
|
||||||
|
temp = Randomizer_GetRandomizerInfFromCheck(rc);
|
||||||
|
// Either we can't give an item, we can't tell if we've gotten the check, or we have definitely gotten the check
|
||||||
|
if (gi.getItemId == GI_NONE || temp == RAND_INF_MAX || Flags_GetRandomizerInf(temp)) {
|
||||||
|
this->unk_84F = 0;
|
||||||
|
if (this->interactRangeActor != NULL)
|
||||||
|
this->interactRangeActor->parent = NULL;
|
||||||
|
}
|
||||||
|
// Item get cutscene hasn't played yet
|
||||||
|
else if((this->interactRangeActor == NULL && !(this->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD)) || !Actor_HasParent(this->interactRangeActor, play)) {
|
||||||
|
// Can't guarantee that whatever we "caught" is actually going to still exist
|
||||||
|
if (GiveItemEntryWithoutActor(play, gi)) {
|
||||||
|
// have to set this flag manually to prevent interactRangeActor from being wiped out
|
||||||
|
this->stateFlags1 |= PLAYER_STATE1_ITEM_OVER_HEAD;
|
||||||
|
this->pendingFlag.flagID = temp;
|
||||||
|
this->pendingFlag.flagType = FLAG_RANDOMIZER_INF;
|
||||||
|
Flags_SetRandomizerInf(temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} else if (this->unk_850 == 0) {
|
||||||
if (CVarGetInteger("gFastDrops", 0)) {
|
if (CVarGetInteger("gFastDrops", 0)) {
|
||||||
this->unk_84F = 0;
|
this->unk_84F = 0;
|
||||||
} else {
|
} else {
|
||||||
@ -13682,6 +13710,7 @@ void func_8084ECA4(Player* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this->unk_84F == 0) {
|
if (this->unk_84F == 0) {
|
||||||
|
sp24 = &D_80854554[this->unk_850];
|
||||||
temp = this->skelAnime.curFrame - sp24->unk_08;
|
temp = this->skelAnime.curFrame - sp24->unk_08;
|
||||||
|
|
||||||
if (temp >= 0) {
|
if (temp >= 0) {
|
||||||
@ -13704,12 +13733,39 @@ void func_8084ECA4(Player* this, PlayState* play) {
|
|||||||
this->unk_84F = i + 1;
|
this->unk_84F = i + 1;
|
||||||
this->unk_850 = 0;
|
this->unk_850 = 0;
|
||||||
this->interactRangeActor->parent = &this->actor;
|
this->interactRangeActor->parent = &this->actor;
|
||||||
|
// TODO: this should probably be refactored a bit, maybe rehome some of this to rando instead
|
||||||
|
if (IS_RANDO) {
|
||||||
|
// Check if fishsanity applies for this actor
|
||||||
|
if (Randomizer_GetOverworldFishShuffled()) {
|
||||||
|
fish = Randomizer_IdentifyFish(play->sceneNum, this->interactRangeActor->params);
|
||||||
|
if (fish.randomizerCheck != RC_UNKNOWN_CHECK && !Flags_GetRandomizerInf(fish.randomizerInf)) {
|
||||||
|
gi = Randomizer_GetItemFromKnownCheck(fish.randomizerCheck, GI_FISH);
|
||||||
|
rc = fish.randomizerCheck;
|
||||||
|
// check if the item is a bottle item anyway
|
||||||
|
catchInfo = NULL;
|
||||||
|
for (j = 0; j < 4; j++) {
|
||||||
|
if (D_80854A04[j].itemId == gi.itemId) {
|
||||||
|
catchInfo = &D_80854A04[j];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vanilla behavior/rando gave a bottle item
|
||||||
|
if (!IS_RANDO || catchInfo != NULL) {
|
||||||
Player_UpdateBottleHeld(play, this, catchInfo->itemId, ABS(catchInfo->itemAction));
|
Player_UpdateBottleHeld(play, this, catchInfo->itemId, ABS(catchInfo->itemAction));
|
||||||
if (!CVarGetInteger("gFastDrops", 0)) {
|
if (!CVarGetInteger("gFastDrops", 0)) {
|
||||||
this->stateFlags1 |= PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE;
|
this->stateFlags1 |= PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE;
|
||||||
Player_AnimPlayOnceAdjusted(play, this, sp24->unk_04);
|
Player_AnimPlayOnceAdjusted(play, this, sp24->unk_04);
|
||||||
func_80835EA4(play, 4);
|
func_80835EA4(play, 4);
|
||||||
}
|
}
|
||||||
|
} else if (IS_RANDO && gi.itemId != ITEM_NONE) {
|
||||||
|
// Non-bottle item found from rando, flag for special behavior
|
||||||
|
this->unk_84F = -1;
|
||||||
|
this->unk_850 = rc;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user