Kaynağa Gözat

Resource manager re-organized. Each resource type now has it's own resource group.

Reorganization in the data folder to account for the new resource directory structure. Changes in the installer to implement those changes in the generated files. Battle model textures can now coexist along th field model ones.
Iñigo Valentin 3 yıl önce
ebeveyn
işleme
f7b6997084
70 değiştirilmiş dosya ile 459 ekleme ve 390 silme
  1. 1 1
      data/data/audio/musics/README.txt
  2. 1 1
      data/data/audio/sounds/README.txt
  3. 0 0
      data/data/config/config.cfg
  4. 0 10
      data/data/fonts.xml
  5. 10 0
      data/data/fonts/_fonts.xml
  6. 1 1
      data/data/fonts/ffvii.xml
  7. 1 1
      data/data/fonts/ffvii_digits.xml
  8. 1 1
      data/data/fonts/ffvii_en.xml
  9. 1 1
      data/data/fonts/ffvii_jp.xml
  10. 1 1
      data/data/fonts/ffvii_menu.xml
  11. 1 1
      data/data/fonts/ffvii_timer.xml
  12. 0 0
      data/data/gamedata/README.txt
  13. BIN
      data/data/images/empty.png
  14. 0 4
      data/data/maps.xml
  15. 10 0
      data/data/models/battle/characters/README.txt
  16. 10 0
      data/data/models/battle/enemies/README.txt
  17. 9 0
      data/data/models/battle/scenes/README.txt
  18. 0 0
      data/data/models/fields/README.txt
  19. 0 6
      data/data/musics.xml
  20. 0 0
      data/data/screens/_screens.xml
  21. 2 2
      data/data/screens/begin_menu/begin_menu.xml
  22. 1 1
      data/data/screens/dialog/prototypes.xml
  23. 18 18
      data/data/screens/equip_menu/equip_menu.xml
  24. 26 26
      data/data/screens/item_menu/item_menu.xml
  25. 1 1
      data/data/screens/item_menu/prototypes.xml
  26. 11 11
      data/data/screens/main_menu/main_menu.xml
  27. 2 2
      data/data/screens/main_menu/prototypes.xml
  28. 86 86
      data/data/screens/materia_menu/materia_menu.xml
  29. 3 3
      data/data/screens/name_menu/name_menu.xml
  30. 1 1
      data/data/screens/pause_menu/pause_menu.xml
  31. 8 8
      data/data/screens/prototypes.xml
  32. 3 3
      data/data/screens/save_menu/prototypes.xml
  33. 1 1
      data/data/screens/save_menu/save_menu.xml
  34. 12 12
      data/data/scripts/_scripts.xml
  35. 4 4
      data/data/scripts/menu/equip_menu.lua
  36. 5 5
      data/data/scripts/menu/item_menu.lua
  37. 1 1
      data/data/scripts/menu/main_menu.lua
  38. 10 10
      data/data/scripts/menu/materia_menu.lua
  39. 1 1
      data/data/scripts/menu/name_menu.lua
  40. 1 1
      data/data/scripts/menu/save_menu.lua
  41. 0 4
      data/data/sounds.xml
  42. 0 0
      data/data/texts/_texts.xml
  43. 1 1
      src/common/VGearsResource.h
  44. 2 2
      src/core/AudioManager.cpp
  45. 7 3
      src/core/Background2D.cpp
  46. 15 0
      src/core/Background2D.h
  47. 7 12
      src/core/BattleManager.cpp
  48. 1 1
      src/core/DebugDraw.cpp
  49. 2 3
      src/core/DebugDraw.h
  50. 1 1
      src/core/Enemy.cpp
  51. 14 1
      src/core/EntityModel.cpp
  52. 4 1
      src/core/EntityModel.h
  53. 14 2
      src/core/ScriptManager.cpp
  54. 2 2
      src/core/ScriptManagerBinds.h
  55. 2 2
      src/core/TextHandler.cpp
  56. 2 2
      src/core/UiManager.cpp
  57. 1 1
      src/core/UiManager.h
  58. 3 3
      src/core/UiSprite.cpp
  59. 2 2
      src/core/UiTextArea.cpp
  60. 2 4
      src/core/UiWidget.cpp
  61. 1 1
      src/core/XmlFontsFile.cpp
  62. 3 3
      src/core/XmlMapFile.cpp
  63. 18 14
      src/installer/BattleDataInstaller.cpp
  64. 34 26
      src/installer/DataInstaller.cpp
  65. 17 28
      src/installer/FieldDataInstaller.cpp
  66. 11 11
      src/installer/MediaDataInstaller.cpp
  67. 1 1
      src/installer/decompiler/field/instruction/FieldModuleInstruction.cpp
  68. 35 9
      src/main.cpp
  69. 5 12
      src/map/VGearsBackground2DFile.cpp
  70. 8 13
      src/map/VGearsBackground2DFile.h

+ 1 - 1
data/data/audio/music/README.txt → data/data/audio/musics/README.txt

@@ -2,5 +2,5 @@ This directory is intentionally empty. It will be populated by the data installe
 
 
 Once the data installation is complete, musics files will be installed here. They will have very
 Once the data installation is complete, musics files will be installed here. They will have very
 un-descriptive file names, and there is no metadata in them, such as titles. But, if you want to
 un-descriptive file names, and there is no metadata in them, such as titles. But, if you want to
-find a specific one, a looc at the file data/musics.xml (also generated by the installer) may help
+find a specific one, a look at the file _musics.xml (also generated by the installer) may help
 you. There, some files in this folder may be referenced by a friendlier name.
 you. There, some files in this folder may be referenced by a friendlier name.

+ 1 - 1
data/data/audio/sound/README.txt → data/data/audio/sounds/README.txt

@@ -2,5 +2,5 @@ This directory is intentionally empty. It will be populated by the data installe
 
 
 Once the data installation is complete, sound files will be installed here. They will have very
 Once the data installation is complete, sound files will be installed here. They will have very
 un-descriptive file names, and there is no metadata in them, such as titles. But, if you want to
 un-descriptive file names, and there is no metadata in them, such as titles. But, if you want to
-find a specific one, a looc at the file data/sounds.xml (also generated by the installer) may help
+find a specific one, a look at the file _sounds.xml (also generated by the installer) may help
 you. There, some files in this folder may be referenced by a friendlier name.
 you. There, some files in this folder may be referenced by a friendlier name.

+ 0 - 0
data/data/config.cfg → data/data/config/config.cfg


+ 0 - 10
data/data/fonts.xml

@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<fonts>
-    <font file_name="fonts/ffvii_en.xml" />
-    <font file_name="fonts/ffvii_jp.xml" />
-    <font file_name="fonts/ffvii_menu.xml" />
-    <font file_name="fonts/ffvii_digits.xml" />
-    <font file_name="fonts/ffvii_timer.xml" />
-    <font file_name="fonts/ffvii.xml" />
-    <font file_name="fonts/ffvii.xml" />
-</fonts>

+ 10 - 0
data/data/fonts/_fonts.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<fonts>
+    <font file_name="ffvii_en.xml" />
+    <font file_name="ffvii_jp.xml" />
+    <font file_name="ffvii_menu.xml" />
+    <font file_name="ffvii_digits.xml" />
+    <font file_name="ffvii_timer.xml" />
+    <font file_name="ffvii.xml" />
+    <font file_name="ffvii.xml" />
+</fonts>

+ 1 - 1
data/data/fonts/ffvii.xml

@@ -1,4 +1,4 @@
-<font name="FFVIIFont" language="English" image="fonts/ffvii_en.png" image_size="256 256" height="16">
+<font name="FFVIIFont" language="English" image="ffvii_en.png" image_size="256 256" height="16">
     <char name=" " x="0" y="0" width="12" height="12" pre="0" post="-9" />
     <char name=" " x="0" y="0" width="12" height="12" pre="0" post="-9" />
     <char name="!" x="12" y="0" width="12" height="12" pre="2" post="-7" />
     <char name="!" x="12" y="0" width="12" height="12" pre="2" post="-7" />
     <char name="&quot;" x="24" y="0" width="12" height="12" pre="2" post="-4" />
     <char name="&quot;" x="24" y="0" width="12" height="12" pre="2" post="-4" />

+ 1 - 1
data/data/fonts/ffvii_digits.xml

@@ -1,4 +1,4 @@
-<font name="FFVIIMenuDigits" image="fonts/ffvii_digits.png" image_size="128 8" height="8">
+<font name="FFVIIMenuDigits" image="ffvii_digits.png" image_size="128 8" height="8">
     <char name="0" x="0" y="0" width="7" height="8" pre="0" post="0" />
     <char name="0" x="0" y="0" width="7" height="8" pre="0" post="0" />
     <char name="1" x="8" y="0" width="7" height="8" pre="0" post="0" />
     <char name="1" x="8" y="0" width="7" height="8" pre="0" post="0" />
     <char name="2" x="16" y="0" width="7" height="8" pre="0" post="0" />
     <char name="2" x="16" y="0" width="7" height="8" pre="0" post="0" />

+ 1 - 1
data/data/fonts/ffvii_en.xml

@@ -1,4 +1,4 @@
-<font name="FFVIIFont" language="English" image="fonts/ffvii_en.png" image_size="256 256" height="16">
+<font name="FFVIIFont" language="English" image="ffvii_en.png" image_size="256 256" height="16">
     <char name=" " x="0" y="0" width="12" height="12" pre="0" post="-9" />
     <char name=" " x="0" y="0" width="12" height="12" pre="0" post="-9" />
     <char name="!" x="12" y="0" width="12" height="12" pre="0" post="-9" />
     <char name="!" x="12" y="0" width="12" height="12" pre="0" post="-9" />
     <char name="&quot;" x="24" y="0" width="12" height="12" pre="0" post="-6" />
     <char name="&quot;" x="24" y="0" width="12" height="12" pre="0" post="-6" />

+ 1 - 1
data/data/fonts/ffvii_jp.xml

@@ -1,4 +1,4 @@
-<font name="FFVIIFont" language="Japanese" image="fonts/ffvii_jp.png" image_size="512 256" height="16">
+<font name="FFVIIFont" language="Japanese" image="ffvii_jp.png" image_size="512 256" height="16">
     <char name="バ" x="0" y="0" width="12" height="12" pre="0" post="1" />
     <char name="バ" x="0" y="0" width="12" height="12" pre="0" post="1" />
     <char name="ば" x="12" y="0" width="12" height="12" pre="0" post="1" />
     <char name="ば" x="12" y="0" width="12" height="12" pre="0" post="1" />
     <char name="ビ" x="24" y="0" width="12" height="12" pre="0" post="-1" />
     <char name="ビ" x="24" y="0" width="12" height="12" pre="0" post="-1" />

+ 1 - 1
data/data/fonts/ffvii_menu.xml

@@ -1,4 +1,4 @@
-<font name="FFVIIMenuFont" image="fonts/ffvii_menu.png" image_size="128 256" height="16">
+<font name="FFVIIMenuFont" image="ffvii_menu.png" image_size="128 256" height="16">
     <char name="0" x="24" y="0" width="8" height="16" pre="0" post="0" />
     <char name="0" x="24" y="0" width="8" height="16" pre="0" post="0" />
     <char name="1" x="32" y="0" width="8" height="16" pre="0" post="0" />
     <char name="1" x="32" y="0" width="8" height="16" pre="0" post="0" />
     <char name="2" x="40" y="0" width="8" height="16" pre="0" post="0" />
     <char name="2" x="40" y="0" width="8" height="16" pre="0" post="0" />

+ 1 - 1
data/data/fonts/ffvii_timer.xml

@@ -1,4 +1,4 @@
-<font name="FFVIITimerFont" image="fonts/ffvii_timer.png" image_size="128 48" height="21">
+<font name="FFVIITimerFont" image="ffvii_timer.png" image_size="128 48" height="21">
     <char name=":" x="16" y="0" width="8" height="21" pre="0" post="0" />
     <char name=":" x="16" y="0" width="8" height="21" pre="0" post="0" />
     <char name=";" x="24" y="0" width="8" height="21" pre="0" post="0" />
     <char name=";" x="24" y="0" width="8" height="21" pre="0" post="0" />
     <char name="0" x="32" y="0" width="16" height="21" pre="0" post="0" />
     <char name="0" x="32" y="0" width="16" height="21" pre="0" post="0" />

+ 0 - 0
data/data/game/README.txt → data/data/gamedata/README.txt


BIN
data/data/images/empty.png


+ 0 - 4
data/data/maps.xml

@@ -1,4 +0,0 @@
-<!-- This file is to be overwritten by the installer -->
-<maps>
-    <map name="example" file_name="fields/example/map.xml" />
-</maps>

+ 10 - 0
data/data/models/battle/characters/README.txt

@@ -0,0 +1,10 @@
+This directory is intentionally empty. It will be populated by the data installer.
+
+Once the data installation is complete, a lot of files will be installed here. They contain
+information about 3D models and textures for the battle playable characters. Most of them will have
+very cryptic names. If you are a modder and want to manually edit the 3D models, I have a few
+pointers for you:
+
+ 1. Good luck.
+ 2. Make backups.
+ 3. Document everything! If you are succesfull, I would love to know how you did it.

+ 10 - 0
data/data/models/battle/enemies/README.txt

@@ -0,0 +1,10 @@
+This directory is intentionally empty. It will be populated by the data installer.
+
+Once the data installation is complete, a lot of files will be installed here. They contain
+information about 3D models and textures for the battle enemies. Most of them will have very
+cryptic names. If you are a modder and want to manually edit the 3D models, I have a few pointers
+for you:
+
+ 1. Good luck.
+ 2. Make backups.
+ 3. Document everything! If you are succesfull, I would love to know how you did it.

+ 9 - 0
data/data/models/battle/scenes/README.txt

@@ -0,0 +1,9 @@
+This directory is intentionally empty. It will be populated by the data installer.
+
+Once the data installation is complete, a lot of files will be installed here. They contain
+information about 3D battle backgrounds models and textures. Most of them will have very cryptic
+names. If you are a modder and want to manually edit the 3D models, I have a few pointers for you:
+
+ 1. Good luck.
+ 2. Make backups.
+ 3. Document everything! If you are succesfull, I would love to know how you did it.

+ 0 - 0
data/data/models/fields/entities/README.txt → data/data/models/fields/README.txt


+ 0 - 6
data/data/musics.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<musics>
-   <music name="loop1" file_name="musics/ffvii_main_theme.ogg" loop="0" />
-   <music name="loop2" file_name="musics/loop2.ogg" loop="0" />
-   <music name="loop3" file_name="musics/loop3.ogg" loop="0" />
-</musics>

+ 0 - 0
data/data/screens.xml → data/data/screens/_screens.xml


+ 2 - 2
data/data/screens/begin_menu/begin_menu.xml

@@ -1,7 +1,7 @@
 <screen name="BeginMenu" script="scripts/menu/begin_menu.lua" visible="true">
 <screen name="BeginMenu" script="scripts/menu/begin_menu.lua" visible="true">
     <widget name="Container" width="368" height="240" origin_x="50%" origin_y="50%" align="center" valign="middle" scale="2.61 3" visible="true">
     <widget name="Container" width="368" height="240" origin_x="50%" origin_y="50%" align="center" valign="middle" scale="2.61 3" visible="true">
-        <sprite name="Sword" image="images/other/begin_menu.png" x="111" y="84" width="170" height="150" visible="true" />
-        <sprite name="Cursor" image="images/icons/cursor.png" x="132" y="99" width="24" height="16" visible="true">
+        <sprite name="Sword" image="other/begin_menu.png" x="111" y="84" width="170" height="150" visible="true" />
+        <sprite name="Cursor" image="icons/cursor.png" x="132" y="99" width="24" height="16" visible="true">
             <animation name="Position1" length="0" y="0:80" />
             <animation name="Position1" length="0" y="0:80" />
             <animation name="Position2" length="0" y="0:92" />
             <animation name="Position2" length="0" y="0:92" />
             <animation name="Position3" length="0" y="0:110" />
             <animation name="Position3" length="0" y="0:110" />

+ 1 - 1
data/data/screens/dialog/prototypes.xml

@@ -23,6 +23,6 @@
                 scissor_area="0:0 0 100% 100%,100%:50%-5 50%-5 50%+5 50%+5"
                 scissor_area="0:0 0 100% 100%,100%:50%-5 50%-5 50%+5 50%+5"
             />
             />
         </text_area>
         </text_area>
-        <sprite name="Cursor" image="images/icons/cursor.png" x="15" y="6" width="24" height="16" visible="false" />
+        <sprite name="Cursor" image="icons/cursor.png" x="15" y="6" width="24" height="16" visible="false" />
     </prototype>
     </prototype>
 </prototypes>
 </prototypes>

+ 18 - 18
data/data/screens/equip_menu/equip_menu.xml

@@ -2,17 +2,17 @@
     <widget name="Container" width="40%" height="40%" x="0" y="0" align="left" valign="top" scale="2.5 2.5" visible="true">
     <widget name="Container" width="40%" height="40%" x="0" y="0" align="left" valign="top" scale="2.5 2.5" visible="true">
         <widget name="Character" width="100%" height="70" visible="true">
         <widget name="Character" width="100%" height="70" visible="true">
             <prototype name="Window"/>
             <prototype name="Window"/>
-            <sprite name="Portrait" image="images/other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
+            <sprite name="Portrait" image="other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
             <widget name="Data" x="66" y="14" width="100%-66" height="100%-14" visible="true">
             <widget name="Data" x="66" y="14" width="100%-66" height="100%-14" visible="true">
                 <prototype name="MenuCharacterData" />
                 <prototype name="MenuCharacterData" />
             </widget>
             </widget>
-            <sprite name="WpnIcon" image="images/icons/item_weapon_0.png" x="170" y="3" width="18" height="18" visible="true" />
-            <sprite name="ArmIcon" image="images/icons/item_armor.png" x="170" y="23" width="18" height="18" visible="true" />
-            <sprite name="AccIcon" image="images/icons/item_accessory.png" x="170" y="43" width="18" height="18" visible="true" />
+            <sprite name="WpnIcon" image="icons/item_weapon_0.png" x="170" y="3" width="18" height="18" visible="true" />
+            <sprite name="ArmIcon" image="icons/item_armor.png" x="170" y="23" width="18" height="18" visible="true" />
+            <sprite name="AccIcon" image="icons/item_accessory.png" x="170" y="43" width="18" height="18" visible="true" />
             <text_area name="WpnLbl" x="192" y="8" font="FFVIIFont" visible="true" />
             <text_area name="WpnLbl" x="192" y="8" font="FFVIIFont" visible="true" />
             <text_area name="ArmLbl" x="192" y="28" font="FFVIIFont" visible="true" />
             <text_area name="ArmLbl" x="192" y="28" font="FFVIIFont" visible="true" />
             <text_area name="AccLbl" x="192" y="48" font="FFVIIFont" visible="true" />
             <text_area name="AccLbl" x="192" y="48" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="150" y="10" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="150" y="10" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" y="0:10" />
                 <animation name="Position1" length="0" y="0:10" />
                 <animation name="Position2" length="0" y="0:30" />
                 <animation name="Position2" length="0" y="0:30" />
                 <animation name="Position3" length="0" y="0:50" />
                 <animation name="Position3" length="0" y="0:50" />
@@ -34,18 +34,18 @@
             <text_area name="Growth1" text_name="EquipMenuGrowth1" x="75" y="28" font="FFVIIFont" visible="true" />
             <text_area name="Growth1" text_name="EquipMenuGrowth1" x="75" y="28" font="FFVIIFont" visible="true" />
             <text_area name="Growth2" text_name="EquipMenuGrowth2" x="75" y="28" font="FFVIIFont" visible="false" />
             <text_area name="Growth2" text_name="EquipMenuGrowth2" x="75" y="28" font="FFVIIFont" visible="false" />
             <text_area name="Growth3" text_name="EquipMenuGrowth3" x="75" y="28" font="FFVIIFont" visible="false" />
             <text_area name="Growth3" text_name="EquipMenuGrowth3" x="75" y="28" font="FFVIIFont" visible="false" />
-            <sprite name="Slot1" image="images/icons/materia_slot.png" x="75" y="8" width="16" height="16" visible="true"/>
-            <sprite name="Slot2" image="images/icons/materia_slot.png" x="92" y="8" width="16" height="16" visible="true"/>
-            <sprite name="Link1" image="images/icons/materia_slot_link.png" x="87" y="8" width="9" height="16" visible="true"/>
-            <sprite name="Slot3" image="images/icons/materia_slot.png" x="109" y="8" width="16" height="16" visible="true"/>
-            <sprite name="Slot4" image="images/icons/materia_slot.png" x="126" y="8" width="16" height="16" visible="true"/>
-            <sprite name="Link2" image="images/icons/materia_slot_link.png" x="121" y="8" width="9" height="16" visible="true"/>
-            <sprite name="Slot5" image="images/icons/materia_slot.png" x="143" y="8" width="16" height="16" visible="true"/>
-            <sprite name="Slot6" image="images/icons/materia_slot.png" x="160" y="8" width="16" height="16" visible="true"/>
-            <sprite name="Link3" image="images/icons/materia_slot_link.png" x="155" y="8" width="9" height="16" visible="true"/>
-            <sprite name="Slot7" image="images/icons/materia_slot.png" x="177" y="8" width="16" height="16" visible="true"/>
-            <sprite name="Slot8" image="images/icons/materia_slot.png" x="194" y="8" width="16" height="16" visible="true"/>
-            <sprite name="Link4" image="images/icons/materia_slot_link.png" x="189" y="8" width="9" height="16" visible="true"/>
+            <sprite name="Slot1" image="icons/materia_slot.png" x="75" y="8" width="16" height="16" visible="true"/>
+            <sprite name="Slot2" image="icons/materia_slot.png" x="92" y="8" width="16" height="16" visible="true"/>
+            <sprite name="Link1" image="icons/materia_slot_link.png" x="87" y="8" width="9" height="16" visible="true"/>
+            <sprite name="Slot3" image="icons/materia_slot.png" x="109" y="8" width="16" height="16" visible="true"/>
+            <sprite name="Slot4" image="icons/materia_slot.png" x="126" y="8" width="16" height="16" visible="true"/>
+            <sprite name="Link2" image="icons/materia_slot_link.png" x="121" y="8" width="9" height="16" visible="true"/>
+            <sprite name="Slot5" image="icons/materia_slot.png" x="143" y="8" width="16" height="16" visible="true"/>
+            <sprite name="Slot6" image="icons/materia_slot.png" x="160" y="8" width="16" height="16" visible="true"/>
+            <sprite name="Link3" image="icons/materia_slot_link.png" x="155" y="8" width="9" height="16" visible="true"/>
+            <sprite name="Slot7" image="icons/materia_slot.png" x="177" y="8" width="16" height="16" visible="true"/>
+            <sprite name="Slot8" image="icons/materia_slot.png" x="194" y="8" width="16" height="16" visible="true"/>
+            <sprite name="Link4" image="icons/materia_slot_link.png" x="189" y="8" width="9" height="16" visible="true"/>
         </widget>
         </widget>
         <widget name="SlotsEmpty" x="0" y="94" width="230" height="50" visible="false">
         <widget name="SlotsEmpty" x="0" y="94" width="230" height="50" visible="false">
             <prototype name="Window" />
             <prototype name="Window" />
@@ -93,7 +93,7 @@
             <text_area name="Item8" x="15" y="67%" font="FFVIIFont" visible="true" />
             <text_area name="Item8" x="15" y="67%" font="FFVIIFont" visible="true" />
             <text_area name="Item9" x="15" y="76%" font="FFVIIFont" visible="true" />
             <text_area name="Item9" x="15" y="76%" font="FFVIIFont" visible="true" />
             <text_area name="Item10" x="15" y="85%" font="FFVIIFont" visible="true" />
             <text_area name="Item10" x="15" y="85%" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-10" y="8" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-10" y="8" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" y="0:4%+3" />
                 <animation name="Position1" length="0" y="0:4%+3" />
                 <animation name="Position2" length="0" y="0:13%+3" />
                 <animation name="Position2" length="0" y="0:13%+3" />
                 <animation name="Position3" length="0" y="0:22%+3" />
                 <animation name="Position3" length="0" y="0:22%+3" />

+ 26 - 26
data/data/screens/item_menu/item_menu.xml

@@ -5,7 +5,7 @@
             <text_area name="ItemText" x="36" y="6" text_name="ItemMenuUse" font="FFVIIFont" visible="true" />
             <text_area name="ItemText" x="36" y="6" text_name="ItemMenuUse" font="FFVIIFont" visible="true" />
             <text_area name="ItemText" x="96" y="6" text_name="ItemMenuOrder" font="FFVIIFont" visible="true" />
             <text_area name="ItemText" x="96" y="6" text_name="ItemMenuOrder" font="FFVIIFont" visible="true" />
             <text_area name="ItemText" x="156" y="6" text_name="ItemMenuKey" font="FFVIIFont" visible="true" />
             <text_area name="ItemText" x="156" y="6" text_name="ItemMenuKey" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="6" y="6" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="6" y="6" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" x="0:6" />
                 <animation name="Position1" length="0" x="0:6" />
                 <animation name="Position2" length="0" x="0:66" />
                 <animation name="Position2" length="0" x="0:66" />
                 <animation name="Position3" length="0" x="0:126" />
                 <animation name="Position3" length="0" x="0:126" />
@@ -22,106 +22,106 @@
         <widget name="ItemMenuCharacters" x="0" y="48" width="50%" height="100%-48" visible="true">
         <widget name="ItemMenuCharacters" x="0" y="48" width="50%" height="100%-48" visible="true">
             <prototype name="Window" />
             <prototype name="Window" />
             <widget name="Character1" x="0" y="0" width="100%" height="55" visible="true">
             <widget name="Character1" x="0" y="0" width="100%" height="55" visible="true">
-                <sprite name="Portrait" image="images/other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
+                <sprite name="Portrait" image="other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
                 <widget name="Data" x="66" y="14" width="100%" height="100%" visible="true">
                 <widget name="Data" x="66" y="14" width="100%" height="100%" visible="true">
                     <prototype name="MenuCharacterData" />
                     <prototype name="MenuCharacterData" />
                 </widget>
                 </widget>
             </widget>
             </widget>
             <widget name="Character2" x="0" y="55" width="100%" height="55" visible="true">
             <widget name="Character2" x="0" y="55" width="100%" height="55" visible="true">
-                <sprite name="Portrait" image="images/other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
+                <sprite name="Portrait" image="other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
                 <widget name="Data" x="66" y="14" width="100%" height="100%" visible="true">
                 <widget name="Data" x="66" y="14" width="100%" height="100%" visible="true">
                     <prototype name="MenuCharacterData" />
                     <prototype name="MenuCharacterData" />
                 </widget>
                 </widget>
             </widget>
             </widget>
             <widget name="Character3" x="0" y="110" width="100%" height="55" visible="true">
             <widget name="Character3" x="0" y="110" width="100%" height="55" visible="true">
-                <sprite name="Portrait" image="images/other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
+                <sprite name="Portrait" image="other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
                 <widget name="Data" x="66" y="14" width="100%" height="100%" visible="true">
                 <widget name="Data" x="66" y="14" width="100%" height="100%" visible="true">
                     <prototype name="MenuCharacterData" />
                     <prototype name="MenuCharacterData" />
                 </widget>
                 </widget>
             </widget>
             </widget>
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-11" y="6" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-11" y="6" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" y="0:25" />
                 <animation name="Position1" length="0" y="0:25" />
                 <animation name="Position2" length="0" y="0:80" />
                 <animation name="Position2" length="0" y="0:80" />
                 <animation name="Position3" length="0" y="0:135" />
                 <animation name="Position3" length="0" y="0:135" />
             </sprite>
             </sprite>
             <widget name="CursorMultiple" x="-11" y="0" width="24" height="150" visible="false">
             <widget name="CursorMultiple" x="-11" y="0" width="24" height="150" visible="false">
-                <sprite name="Cursor1" image="images/icons/cursor.png" x="0" y="25" width="24" height="17" visible="true"/>
-                <sprite name="Cursor2" image="images/icons/cursor.png" x="0" y="80" width="24" height="17" visible="true"/>
-                <sprite name="Cursor3" image="images/icons/cursor.png" x="0" y="135" width="24" height="17" visible="true"/>
+                <sprite name="Cursor1" image="icons/cursor.png" x="0" y="25" width="24" height="17" visible="true"/>
+                <sprite name="Cursor2" image="icons/cursor.png" x="0" y="80" width="24" height="17" visible="true"/>
+                <sprite name="Cursor3" image="icons/cursor.png" x="0" y="135" width="24" height="17" visible="true"/>
             </widget>
             </widget>
         </widget>
         </widget>
         <widget name="ItemList" x="50%" y="48" width="50%" height="100%-48" visible="true">
         <widget name="ItemList" x="50%" y="48" width="50%" height="100%-48" visible="true">
             <prototype name="Window" />
             <prototype name="Window" />
 
 
-            <sprite name="ScrollBg" x="100%-12" y="2" width="10" height="100%-6" colour="0.2 0.2 0.2" alpha="0.8" visible="true"/>
-            <sprite name="Scroll" x="100%-11" y="3" width="8" height="18" colour="0.7 0.7 0.7" visible="true"/>
+            <widged name="ScrollBg" x="100%-12" y="2" width="10" height="100%-6" colour="0.2 0.2 0.2" alpha="0.8" visible="true"/>
+            <widget name="Scroll" x="100%-11" y="3" width="8" height="18" colour="0.7 0.7 0.7" visible="true"/>
 
 
-            <sprite name="Icon1" image="images/icons/item_item.png" x="8" y="5%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon1" image="icons/item_item.png" x="8" y="5%-2" width="13" height="15" visible="true" />
             <text_area name="Name1" x="30" y="5%" font="FFVIIFont" visible="true" />
             <text_area name="Name1" x="30" y="5%" font="FFVIIFont" visible="true" />
             <text_area name="Colon1" x="130" y="5%" font="FFVIIFont" visible="true" />
             <text_area name="Colon1" x="130" y="5%" font="FFVIIFont" visible="true" />
             <text_area name="Qty1" x="135" y="5%" font="FFVIIFont" visible="true" />
             <text_area name="Qty1" x="135" y="5%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon2" image="images/icons/item_item.png" x="8" y="12%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon2" image="icons/item_item.png" x="8" y="12%-2" width="13" height="15" visible="true" />
             <text_area name="Name2" x="30" y="12%" font="FFVIIFont" visible="true" />
             <text_area name="Name2" x="30" y="12%" font="FFVIIFont" visible="true" />
             <text_area name="Colon2" x="130" y="12%" font="FFVIIFont" visible="true" />
             <text_area name="Colon2" x="130" y="12%" font="FFVIIFont" visible="true" />
             <text_area name="Qty2" x="135" y="12%" font="FFVIIFont" visible="true" />
             <text_area name="Qty2" x="135" y="12%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon3" image="images/icons/item_item.png" x="8" y="19%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon3" image="icons/item_item.png" x="8" y="19%-2" width="13" height="15" visible="true" />
             <text_area name="Name3" x="30" y="19%" font="FFVIIFont" visible="true" />
             <text_area name="Name3" x="30" y="19%" font="FFVIIFont" visible="true" />
             <text_area name="Colon3" x="130" y="19%" font="FFVIIFont" visible="true" />
             <text_area name="Colon3" x="130" y="19%" font="FFVIIFont" visible="true" />
             <text_area name="Qty3" x="135" y="19%" font="FFVIIFont" visible="true" />
             <text_area name="Qty3" x="135" y="19%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon4" image="images/icons/item_item.png" x="8" y="26%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon4" image="icons/item_item.png" x="8" y="26%-2" width="13" height="15" visible="true" />
             <text_area name="Name4" x="30" y="26%" font="FFVIIFont" visible="true" />
             <text_area name="Name4" x="30" y="26%" font="FFVIIFont" visible="true" />
             <text_area name="Colon4" x="130" y="26%" font="FFVIIFont" visible="true" />
             <text_area name="Colon4" x="130" y="26%" font="FFVIIFont" visible="true" />
             <text_area name="Qty4" x="135" y="26%" font="FFVIIFont" visible="true" />
             <text_area name="Qty4" x="135" y="26%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon5" image="images/icons/item_item.png" x="8" y="33%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon5" image="icons/item_item.png" x="8" y="33%-2" width="13" height="15" visible="true" />
             <text_area name="Name5" x="30" y="33%" font="FFVIIFont" visible="true" />
             <text_area name="Name5" x="30" y="33%" font="FFVIIFont" visible="true" />
             <text_area name="Colon5" x="130" y="33%" font="FFVIIFont" visible="true" />
             <text_area name="Colon5" x="130" y="33%" font="FFVIIFont" visible="true" />
             <text_area name="Qty5" x="135" y="33%" font="FFVIIFont" visible="true" />
             <text_area name="Qty5" x="135" y="33%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon6" image="images/icons/item_item.png" x="8" y="40%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon6" image="icons/item_item.png" x="8" y="40%-2" width="13" height="15" visible="true" />
             <text_area name="Name6" x="30" y="40%" font="FFVIIFont" visible="true" />
             <text_area name="Name6" x="30" y="40%" font="FFVIIFont" visible="true" />
             <text_area name="Colon6" x="130" y="40%" font="FFVIIFont" visible="true" />
             <text_area name="Colon6" x="130" y="40%" font="FFVIIFont" visible="true" />
             <text_area name="Qty6" x="135" y="40%" font="FFVIIFont" visible="true" />
             <text_area name="Qty6" x="135" y="40%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon7" image="images/icons/item_item.png" x="8" y="47%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon7" image="icons/item_item.png" x="8" y="47%-2" width="13" height="15" visible="true" />
             <text_area name="Name7" x="30" y="47%" font="FFVIIFont" visible="true" />
             <text_area name="Name7" x="30" y="47%" font="FFVIIFont" visible="true" />
             <text_area name="Colon7" x="130" y="47%" font="FFVIIFont" visible="true" />
             <text_area name="Colon7" x="130" y="47%" font="FFVIIFont" visible="true" />
             <text_area name="Qty7" x="135" y="47%" font="FFVIIFont" visible="true" />
             <text_area name="Qty7" x="135" y="47%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon8" image="images/icons/item_item.png" x="8" y="54%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon8" image="icons/item_item.png" x="8" y="54%-2" width="13" height="15" visible="true" />
             <text_area name="Name8" x="30" y="54%" font="FFVIIFont" visible="true" />
             <text_area name="Name8" x="30" y="54%" font="FFVIIFont" visible="true" />
             <text_area name="Colon8" x="130" y="54%" font="FFVIIFont" visible="true" />
             <text_area name="Colon8" x="130" y="54%" font="FFVIIFont" visible="true" />
             <text_area name="Qty8" x="135" y="54%" font="FFVIIFont" visible="true" />
             <text_area name="Qty8" x="135" y="54%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon9" image="images/icons/item_item.png" x="8" y="61%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon9" image="icons/item_item.png" x="8" y="61%-2" width="13" height="15" visible="true" />
             <text_area name="Name9" x="30" y="61%" font="FFVIIFont" visible="true" />
             <text_area name="Name9" x="30" y="61%" font="FFVIIFont" visible="true" />
             <text_area name="Colon9" x="130" y="61%" font="FFVIIFont" visible="true" />
             <text_area name="Colon9" x="130" y="61%" font="FFVIIFont" visible="true" />
             <text_area name="Qty9" x="135" y="61%" font="FFVIIFont" visible="true" />
             <text_area name="Qty9" x="135" y="61%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon10" image="images/icons/item_item.png" x="8" y="68%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon10" image="icons/item_item.png" x="8" y="68%-2" width="13" height="15" visible="true" />
             <text_area name="Name10" x="30" y="68%" font="FFVIIFont" visible="true" />
             <text_area name="Name10" x="30" y="68%" font="FFVIIFont" visible="true" />
             <text_area name="Colon10" x="130" y="68%" font="FFVIIFont" visible="true" />
             <text_area name="Colon10" x="130" y="68%" font="FFVIIFont" visible="true" />
             <text_area name="Qty10" x="135" y="68%" font="FFVIIFont" visible="true" />
             <text_area name="Qty10" x="135" y="68%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon11" image="images/icons/item_item.png" x="8" y="75%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon11" image="icons/item_item.png" x="8" y="75%-2" width="13" height="15" visible="true" />
             <text_area name="Name11" x="30" y="75%" font="FFVIIFont" visible="true" />
             <text_area name="Name11" x="30" y="75%" font="FFVIIFont" visible="true" />
             <text_area name="Colon11" x="130" y="75%" font="FFVIIFont" visible="true" />
             <text_area name="Colon11" x="130" y="75%" font="FFVIIFont" visible="true" />
             <text_area name="Qty11" x="135" y="75%" font="FFVIIFont" visible="true" />
             <text_area name="Qty11" x="135" y="75%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon12" image="images/icons/item_item.png" x="8" y="82%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon12" image="icons/item_item.png" x="8" y="82%-2" width="13" height="15" visible="true" />
             <text_area name="Name12" x="30" y="82%" font="FFVIIFont" visible="true" />
             <text_area name="Name12" x="30" y="82%" font="FFVIIFont" visible="true" />
             <text_area name="Colon12" x="130" y="82%" font="FFVIIFont" visible="true" />
             <text_area name="Colon12" x="130" y="82%" font="FFVIIFont" visible="true" />
             <text_area name="Qty12" x="135" y="82%" font="FFVIIFont" visible="true" />
             <text_area name="Qty12" x="135" y="82%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Icon13" image="images/icons/item_item.png" x="8" y="89%-2" width="13" height="15" visible="true" />
+            <sprite name="Icon13" image="icons/item_item.png" x="8" y="89%-2" width="13" height="15" visible="true" />
             <text_area name="Name13" x="30" y="89%" font="FFVIIFont" visible="true" />
             <text_area name="Name13" x="30" y="89%" font="FFVIIFont" visible="true" />
             <text_area name="Colon13" x="130" y="89%" font="FFVIIFont" visible="true" />
             <text_area name="Colon13" x="130" y="89%" font="FFVIIFont" visible="true" />
             <text_area name="Qty13" x="135" y="89%" font="FFVIIFont" visible="true" />
             <text_area name="Qty13" x="135" y="89%" font="FFVIIFont" visible="true" />
 
 
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-11" y="5%+2" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-11" y="5%+2" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" y="0:5%+2" />
                 <animation name="Position1" length="0" y="0:5%+2" />
                 <animation name="Position2" length="0" y="0:12%+2" />
                 <animation name="Position2" length="0" y="0:12%+2" />
                 <animation name="Position3" length="0" y="0:19%+2" />
                 <animation name="Position3" length="0" y="0:19%+2" />
@@ -149,7 +149,7 @@
             <text_area name="Order6" x="12" y="66" text_name="ItemMenuOrder6" font="FFVIIFont" visible="true" />
             <text_area name="Order6" x="12" y="66" text_name="ItemMenuOrder6" font="FFVIIFont" visible="true" />
             <text_area name="Order7" x="12" y="78" text_name="ItemMenuOrder7" font="FFVIIFont" visible="true" />
             <text_area name="Order7" x="12" y="78" text_name="ItemMenuOrder7" font="FFVIIFont" visible="true" />
             <text_area name="Order8" x="12" y="90" text_name="ItemMenuOrder8" font="FFVIIFont" visible="true" />
             <text_area name="Order8" x="12" y="90" text_name="ItemMenuOrder8" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-12" y="6" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-12" y="6" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" y="0:6" />
                 <animation name="Position1" length="0" y="0:6" />
                 <animation name="Position2" length="0" y="0:18" />
                 <animation name="Position2" length="0" y="0:18" />
                 <animation name="Position3" length="0" y="0:30" />
                 <animation name="Position3" length="0" y="0:30" />
@@ -191,7 +191,7 @@
             <text_area name="KeyItem12-2" x="60%" y="82%" font="FFVIIFont" visible="true" />
             <text_area name="KeyItem12-2" x="60%" y="82%" font="FFVIIFont" visible="true" />
             <text_area name="KeyItem13-1" x="10%" y="89%" font="FFVIIFont" visible="true" />
             <text_area name="KeyItem13-1" x="10%" y="89%" font="FFVIIFont" visible="true" />
             <text_area name="KeyItem13-2" x="60%" y="89%" font="FFVIIFont" visible="true" />
             <text_area name="KeyItem13-2" x="60%" y="89%" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-11" y="6" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-11" y="6" width="24" height="17" visible="true">
                 <animation name="Position1-1" length="0" x="0:10%-24" y="0:5%+1" />
                 <animation name="Position1-1" length="0" x="0:10%-24" y="0:5%+1" />
                 <animation name="Position1-2" length="0" x="0:60%-24" y="0:5%+1" />
                 <animation name="Position1-2" length="0" x="0:60%-24" y="0:5%+1" />
                 <animation name="Position2-1" length="0" x="0:10%-24" y="0:12%+1" />
                 <animation name="Position2-1" length="0" x="0:10%-24" y="0:12%+1" />

+ 1 - 1
data/data/screens/item_menu/prototypes.xml

@@ -12,7 +12,7 @@
         <sprite name="HpLineShadow" x="18" y="32" width="60" height="1" colour="0 0 0" visible="true" />
         <sprite name="HpLineShadow" x="18" y="32" width="60" height="1" colour="0 0 0" visible="true" />
         <text_area name="Mp" x="0" y="26" text_name="CharacterDataMp" colour="0 0.9 0.9" font="FFVIIMenuFont" visible="true" />
         <text_area name="Mp" x="0" y="26" text_name="CharacterDataMp" colour="0 0.9 0.9" font="FFVIIMenuFont" visible="true" />
         <text_area name="MpCurrent" x="18" y="33" text_name="CharacterDataMpCurrent" font="FFVIIMenuDigits" visible="true" />
         <text_area name="MpCurrent" x="18" y="33" text_name="CharacterDataMpCurrent" font="FFVIIMenuDigits" visible="true" />
-        <sprite name="MpSlash" image="images/icons/slash.png" x="46" y="33" width="4" height="8" visible="true" />
+        <sprite name="MpSlash" image="icons/slash.png" x="46" y="33" width="4" height="8" visible="true" />
         <text_area name="MpMax" x="50" y="33" text_name="CharacterDataMpMax" font="FFVIIMenuDigits" visible="true" />
         <text_area name="MpMax" x="50" y="33" text_name="CharacterDataMpMax" font="FFVIIMenuDigits" visible="true" />
         <sprite name="MpLine" x="18" y="41" width="60" height="1" colour="0.3 0 0" visible="true" />
         <sprite name="MpLine" x="18" y="41" width="60" height="1" colour="0.3 0 0" visible="true" />
         <sprite name="MpLineCurrent" x="18" y="41" width="60" height="1" colours="0 1 0.5, 0.78 0.78 0.78, 0.78 0.78 0.78, 0 1 0.5" visible="true" />
         <sprite name="MpLineCurrent" x="18" y="41" width="60" height="1" colours="0 1 0.5, 0.78 0.78 0.78, 0.78 0.78 0.78, 0 1 0.5" visible="true" />

+ 11 - 11
data/data/screens/main_menu/main_menu.xml

@@ -5,7 +5,7 @@
             <animation name="Appear" length="0.3" x="0:105%,0.3:5%" />
             <animation name="Appear" length="0.3" x="0:105%,0.3:5%" />
             <animation name="Disappear" length="0.3" x="0:5%,0.3:105%" />
             <animation name="Disappear" length="0.3" x="0:5%,0.3:105%" />
             <widget name="Character1" x="2%" y="2%" width="100%" height="30%" visible="true">
             <widget name="Character1" x="2%" y="2%" width="100%" height="30%" visible="true">
-                <sprite name="Portrait" image="images/other/choco.png" x="5" y="12" width="49" height="56" visible="true">
+                <sprite name="Portrait" image="other/choco.png" x="5" y="12" width="49" height="56" visible="true">
                     <animation name="RowFront" length="0" x="0:5" />
                     <animation name="RowFront" length="0" x="0:5" />
                     <animation name="RowBack" length="0" x="0:25" />
                     <animation name="RowBack" length="0" x="0:25" />
                 </sprite>
                 </sprite>
@@ -13,17 +13,17 @@
                     <prototype name="MenuCharacterData" />
                     <prototype name="MenuCharacterData" />
                 </widget>
                 </widget>
                 <text_area name="NextLevelText" x="177" y="17" text_name="CharacterDataNextLevel" font="FFVIIFont" visible="true" />
                 <text_area name="NextLevelText" x="177" y="17" text_name="CharacterDataNextLevel" font="FFVIIFont" visible="true" />
-                <sprite name="NextLevelBar" image="images/icons/menu_bar.png" x="182" y="28" width="64" height="8" visible="true" />
+                <sprite name="NextLevelBar" image="icons/menu_bar.png" x="182" y="28" width="64" height="8" visible="true" />
                 <sprite name="NextLevelLinePart1" x="183" y="29" width="20" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.125, 0.5 0.125 0.125" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart1" x="183" y="29" width="20" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.125, 0.5 0.125 0.125" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart2" x="183" y="32" width="20" height="3" colours="0.5 0.125 0.125, 0.5 0.125 0.125, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart2" x="183" y="32" width="20" height="3" colours="0.5 0.125 0.125, 0.5 0.125 0.125, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <text_area name="LimitLevelText" x="177" y="38" text_name="CharacterDataLimitLevel" font="FFVIIFont" visible="true" />
                 <text_area name="LimitLevelText" x="177" y="38" text_name="CharacterDataLimitLevel" font="FFVIIFont" visible="true" />
-                <sprite name="LimitLevelBar" image="images/icons/menu_bar.png" x="183" y="49" width="64" height="8" visible="true" />
+                <sprite name="LimitLevelBar" image="icons/menu_bar.png" x="183" y="49" width="64" height="8" visible="true" />
                 <text_area name="LimitLevel" x="230" y="40" text_name="CharacterDataLimitLevelNumber" font="FFVIIMenuDigits" visible="true" />
                 <text_area name="LimitLevel" x="230" y="40" text_name="CharacterDataLimitLevelNumber" font="FFVIIMenuDigits" visible="true" />
                 <sprite name="LimitLinePart1" x="183" y="50" width="25" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.31, 0.5 0.125 0.31" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart1" x="183" y="50" width="25" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.31, 0.5 0.125 0.31" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart2" x="183" y="53" width="25" height="3" colours="0.5 0.125 0.31, 0.5 0.125 0.31, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart2" x="183" y="53" width="25" height="3" colours="0.5 0.125 0.31, 0.5 0.125 0.31, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
             </widget>
             </widget>
             <widget name="Character2" x="2%" y="32%" width="100%" height="32%" visible="true">
             <widget name="Character2" x="2%" y="32%" width="100%" height="32%" visible="true">
-                <sprite name="Portrait" image="images/other/choco.png" x="5" y="12" width="56" height="56" visible="true">
+                <sprite name="Portrait" image="other/choco.png" x="5" y="12" width="56" height="56" visible="true">
                     <animation name="RowFront" length="0" x="0:5" />
                     <animation name="RowFront" length="0" x="0:5" />
                     <animation name="RowBack" length="0" x="0:25" />
                     <animation name="RowBack" length="0" x="0:25" />
                 </sprite>
                 </sprite>
@@ -31,17 +31,17 @@
                     <prototype name="MenuCharacterData" />
                     <prototype name="MenuCharacterData" />
                 </widget>
                 </widget>
                 <text_area name="NextLevelText" x="177" y="17" text_name="CharacterDataNextLevel" font="FFVIIFont" visible="true" />
                 <text_area name="NextLevelText" x="177" y="17" text_name="CharacterDataNextLevel" font="FFVIIFont" visible="true" />
-                <sprite name="NextLevelBar" image="images/icons/menu_bar.png" x="182" y="28" width="64" height="8" visible="true" />
+                <sprite name="NextLevelBar" image="icons/menu_bar.png" x="182" y="28" width="64" height="8" visible="true" />
                 <sprite name="NextLevelLinePart1" x="183" y="29" width="20" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.125, 0.5 0.125 0.125" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart1" x="183" y="29" width="20" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.125, 0.5 0.125 0.125" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart2" x="183" y="32" width="20" height="3" colours="0.5 0.125 0.125, 0.5 0.125 0.125, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart2" x="183" y="32" width="20" height="3" colours="0.5 0.125 0.125, 0.5 0.125 0.125, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <text_area name="LimitLevelText" x="177" y="38" text_name="CharacterDataLimitLevel" font="FFVIIFont" visible="true" />
                 <text_area name="LimitLevelText" x="177" y="38" text_name="CharacterDataLimitLevel" font="FFVIIFont" visible="true" />
-                <sprite name="LimitLevelBar" image="images/icons/menu_bar.png" x="183" y="49" width="64" height="8" visible="true" />
+                <sprite name="LimitLevelBar" image="icons/menu_bar.png" x="183" y="49" width="64" height="8" visible="true" />
                 <text_area name="LimitLevel" x="230" y="40" text_name="CharacterDataLimitLevelNumber" font="FFVIIMenuDigits" visible="true" />
                 <text_area name="LimitLevel" x="230" y="40" text_name="CharacterDataLimitLevelNumber" font="FFVIIMenuDigits" visible="true" />
                 <sprite name="LimitLinePart1" x="183" y="50" width="25" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.31, 0.5 0.125 0.31" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart1" x="183" y="50" width="25" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.31, 0.5 0.125 0.31" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart2" x="183" y="53" width="25" height="3" colours="0.5 0.125 0.31, 0.5 0.125 0.31, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart2" x="183" y="53" width="25" height="3" colours="0.5 0.125 0.31, 0.5 0.125 0.31, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
             </widget>
             </widget>
             <widget name="Character3" x="2%" y="62%" width="100%" height="32%" visible="true">
             <widget name="Character3" x="2%" y="62%" width="100%" height="32%" visible="true">
-               <sprite name="Portrait" image="images/other/choco.png" x="5" y="12" width="56" height="56" visible="true">
+               <sprite name="Portrait" image="other/choco.png" x="5" y="12" width="56" height="56" visible="true">
                     <animation name="RowFront" length="0" x="0:5" />
                     <animation name="RowFront" length="0" x="0:5" />
                     <animation name="RowBack" length="0" x="0:25" />
                     <animation name="RowBack" length="0" x="0:25" />
                 </sprite>
                 </sprite>
@@ -49,16 +49,16 @@
                     <prototype name="MenuCharacterData" />
                     <prototype name="MenuCharacterData" />
                 </widget>
                 </widget>
                 <text_area name="NextLevelText" x="177" y="17" text_name="CharacterDataNextLevel" font="FFVIIFont" visible="true" />
                 <text_area name="NextLevelText" x="177" y="17" text_name="CharacterDataNextLevel" font="FFVIIFont" visible="true" />
-                <sprite name="NextLevelBar" image="images/icons/menu_bar.png" x="182" y="28" width="64" height="8" visible="true" />
+                <sprite name="NextLevelBar" image="icons/menu_bar.png" x="182" y="28" width="64" height="8" visible="true" />
                 <sprite name="NextLevelLinePart1" x="183" y="29" width="20" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.125, 0.5 0.125 0.125" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart1" x="183" y="29" width="20" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.125, 0.5 0.125 0.125" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart2" x="183" y="32" width="20" height="3" colours="0.5 0.125 0.125, 0.5 0.125 0.125, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <sprite name="NextLevelLinePart2" x="183" y="32" width="20" height="3" colours="0.5 0.125 0.125, 0.5 0.125 0.125, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <text_area name="LimitLevelText" x="177" y="38" text_name="CharacterDataLimitLevel" font="FFVIIFont" visible="true" />
                 <text_area name="LimitLevelText" x="177" y="38" text_name="CharacterDataLimitLevel" font="FFVIIFont" visible="true" />
-                <sprite name="LimitLevelBar" image="images/icons/menu_bar.png" x="183" y="49" width="64" height="8" visible="true" />
+                <sprite name="LimitLevelBar" image="icons/menu_bar.png" x="183" y="49" width="64" height="8" visible="true" />
                 <text_area name="LimitLevel" x="230" y="40" text_name="CharacterDataLimitLevelNumber" font="FFVIIMenuDigits" visible="true" />
                 <text_area name="LimitLevel" x="230" y="40" text_name="CharacterDataLimitLevelNumber" font="FFVIIMenuDigits" visible="true" />
                 <sprite name="LimitLinePart1" x="183" y="50" width="25" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.31, 0.5 0.125 0.31" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart1" x="183" y="50" width="25" height="3" colours="0.5 0.5 0.5, 0.5 0.5 0.5, 0.5 0.125 0.31, 0.5 0.125 0.31" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart2" x="183" y="53" width="25" height="3" colours="0.5 0.125 0.31, 0.5 0.125 0.31, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
                 <sprite name="LimitLinePart2" x="183" y="53" width="25" height="3" colours="0.5 0.125 0.31, 0.5 0.125 0.31, 0 0 0, 0 0 0" alpha="0.8" visible="false" />
             </widget>
             </widget>
-            <sprite name="Cursor" image="images/icons/cursor.png" x="0" y="2%+40" width="24" height="16" visible="false">
+            <sprite name="Cursor" image="icons/cursor.png" x="0" y="2%+40" width="24" height="16" visible="false">
                 <animation name="Position1" length="0" y="0:2%+40" />
                 <animation name="Position1" length="0" y="0:2%+40" />
                 <animation name="Position2" length="0" y="0:32%+40" />
                 <animation name="Position2" length="0" y="0:32%+40" />
                 <animation name="Position3" length="0" y="0:62%+40" />
                 <animation name="Position3" length="0" y="0:62%+40" />
@@ -77,7 +77,7 @@
             <text_area name="PHSText" x="16" y="102" text_name="MainMenuPHS" font="FFVIIFont" visible="true" />
             <text_area name="PHSText" x="16" y="102" text_name="MainMenuPHS" font="FFVIIFont" visible="true" />
             <text_area name="SaveText" x="16" y="114" text_name="MainMenuSave" font="FFVIIFont" visible="true" />
             <text_area name="SaveText" x="16" y="114" text_name="MainMenuSave" font="FFVIIFont" visible="true" />
             <text_area name="Quit" x="16" y="126" text_name="MainMenuQuit" font="FFVIIFont" visible="true" />
             <text_area name="Quit" x="16" y="126" text_name="MainMenuQuit" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-11" y="6" width="24" height="16" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-11" y="6" width="24" height="16" visible="true">
                 <animation name="Position1" length="0" y="0:6" />
                 <animation name="Position1" length="0" y="0:6" />
                 <animation name="Position2" length="0" y="0:18" />
                 <animation name="Position2" length="0" y="0:18" />
                 <animation name="Position3" length="0" y="0:30" />
                 <animation name="Position3" length="0" y="0:30" />

+ 2 - 2
data/data/screens/main_menu/prototypes.xml

@@ -5,14 +5,14 @@
         <text_area name="LvNumber" x="18" y="13" font="FFVIIMenuDigits" visible="true" />
         <text_area name="LvNumber" x="18" y="13" font="FFVIIMenuDigits" visible="true" />
         <text_area name="Hp" x="0" y="16" text_name="CharacterDataHp" colour="0 0.9 0.9" font="FFVIIMenuFont" visible="true" />
         <text_area name="Hp" x="0" y="16" text_name="CharacterDataHp" colour="0 0.9 0.9" font="FFVIIMenuFont" visible="true" />
         <text_area name="HpCurrent" x="16" y="23" colour="0.9 0.9 0.9" font="FFVIIMenuDigits" visible="true" />
         <text_area name="HpCurrent" x="16" y="23" colour="0.9 0.9 0.9" font="FFVIIMenuDigits" visible="true" />
-        <sprite name="HpSlash" image="images/icons/slash.png" x="51" y="23" width="4" height="8" visible="true" />
+        <sprite name="HpSlash" image="icons/slash.png" x="51" y="23" width="4" height="8" visible="true" />
         <text_area name="HpMax" x="55" y="23" font="FFVIIMenuDigits" visible="true" />
         <text_area name="HpMax" x="55" y="23" font="FFVIIMenuDigits" visible="true" />
         <sprite name="HpLine" x="16" y="31" width="72" height="1" colour="0.3 0 0" visible="true" />
         <sprite name="HpLine" x="16" y="31" width="72" height="1" colour="0.3 0 0" visible="true" />
         <sprite name="HpLineCurrent" x="16" y="31" width="72" height="1" colours="0 0.5 1, 0.78 0.78 0.78, 0.78 0.78 0.78, 0 0.5 1" visible="true" />
         <sprite name="HpLineCurrent" x="16" y="31" width="72" height="1" colours="0 0.5 1, 0.78 0.78 0.78, 0.78 0.78 0.78, 0 0.5 1" visible="true" />
         <sprite name="HpLineShadow" x="16" y="32" width="72" height="1" colour="0 0 0" visible="true" />
         <sprite name="HpLineShadow" x="16" y="32" width="72" height="1" colour="0 0 0" visible="true" />
         <text_area name="Mp" x="0" y="26" text_name="CharacterDataMp" colour="0 0.9 0.9" font="FFVIIMenuFont" visible="true" />
         <text_area name="Mp" x="0" y="26" text_name="CharacterDataMp" colour="0 0.9 0.9" font="FFVIIMenuFont" visible="true" />
         <text_area name="MpCurrent" x="16" y="33" font="FFVIIMenuDigits" visible="true" />
         <text_area name="MpCurrent" x="16" y="33" font="FFVIIMenuDigits" visible="true" />
-        <sprite name="MpSlash" image="images/icons/slash.png" x="51" y="33" width="4" height="8" visible="true" />
+        <sprite name="MpSlash" image="icons/slash.png" x="51" y="33" width="4" height="8" visible="true" />
         <text_area name="MpMax" x="55" y="33" font="FFVIIMenuDigits" visible="true" />
         <text_area name="MpMax" x="55" y="33" font="FFVIIMenuDigits" visible="true" />
         <sprite name="MpLine" x="16" y="41" width="72" height="1" colour="0.3 0 0" visible="true" />
         <sprite name="MpLine" x="16" y="41" width="72" height="1" colour="0.3 0 0" visible="true" />
         <sprite name="MpLineCurrent" x="16" y="41" width="72" height="1" colours="0 1 0.5, 0.78 0.78 0.78, 0.78 0.78 0.78, 0 1 0.5" visible="true" />
         <sprite name="MpLineCurrent" x="16" y="41" width="72" height="1" colours="0 1 0.5, 0.78 0.78 0.78, 0.78 0.78 0.78, 0 1 0.5" visible="true" />

+ 86 - 86
data/data/screens/materia_menu/materia_menu.xml

@@ -2,61 +2,61 @@
     <widget name="Container" width="40%" height="40%" x="0" y="0" align="left" valign="top" scale="2.5 2.5" visible="true">
     <widget name="Container" width="40%" height="40%" x="0" y="0" align="left" valign="top" scale="2.5 2.5" visible="true">
         <widget name="Character" width="100%" height="75" visible="true">
         <widget name="Character" width="100%" height="75" visible="true">
             <prototype name="Window"/>
             <prototype name="Window"/>
-            <sprite name="Portrait" image="images/other/choco.png" x="10" y="8" width="50" height="58" visible="true" />
+            <sprite name="Portrait" image="other/choco.png" x="10" y="8" width="50" height="58" visible="true" />
             <widget name="Data" x="66" y="14" width="100%-66" height="100%-14" visible="true">
             <widget name="Data" x="66" y="14" width="100%-66" height="100%-14" visible="true">
                 <prototype name="MenuCharacterData" />
                 <prototype name="MenuCharacterData" />
             </widget>
             </widget>
-            <sprite name="WpnIcon" image="images/icons/item_weapon_0.png" x="170" y="12" width="14" height="14" visible="true" />
-            <sprite name="ArmIcon" image="images/icons/item_armor.png" x="170" y="42" width="14" height="14" visible="true" />
+            <sprite name="WpnIcon" image="icons/item_weapon_0.png" x="170" y="12" width="14" height="14" visible="true" />
+            <sprite name="ArmIcon" image="icons/item_armor.png" x="170" y="42" width="14" height="14" visible="true" />
             <text_area name="WpnLbl" x="188" y="13" font="FFVIIFont" visible="true" />
             <text_area name="WpnLbl" x="188" y="13" font="FFVIIFont" visible="true" />
             <text_area name="ArmLbl" x="188" y="43" font="FFVIIFont" visible="true" />
             <text_area name="ArmLbl" x="188" y="43" font="FFVIIFont" visible="true" />
             <text_area name="Check" text_name="MateriaMenuCheck" x="180" y="26" font="FFVIIFont" visible="true" />
             <text_area name="Check" text_name="MateriaMenuCheck" x="180" y="26" font="FFVIIFont" visible="true" />
             <text_area name="Order" text_name="MateriaMenuOrder" x="180" y="56" font="FFVIIFont" visible="true" />
             <text_area name="Order" text_name="MateriaMenuOrder" x="180" y="56" font="FFVIIFont" visible="true" />
             <widget name="WeaponSlots" x="230" y="24" width="230" height="14" visible="true">
             <widget name="WeaponSlots" x="230" y="24" width="230" height="14" visible="true">
-                <sprite name="Slot1" image="images/icons/materia_slot.png" x="0" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Slot2" image="images/icons/materia_slot.png" x="15" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Link1" image="images/icons/materia_slot_link.png" x="10" y="0" width="8" height="14" visible="true"/>
-                <sprite name="Slot3" image="images/icons/materia_slot.png" x="30" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Slot4" image="images/icons/materia_slot.png" x="45" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Link2" image="images/icons/materia_slot_link.png" x="40" y="0" width="8" height="14" visible="true"/>
-                <sprite name="Slot5" image="images/icons/materia_slot.png" x="60" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Slot6" image="images/icons/materia_slot.png" x="75" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Link3" image="images/icons/materia_slot_link.png" x="70" y="0" width="8" height="14" visible="true"/>
-                <sprite name="Slot7" image="images/icons/materia_slot.png" x="90" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Slot8" image="images/icons/materia_slot.png" x="105" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Link4" image="images/icons/materia_slot_link.png" x="100" y="0" width="8" height="14" visible="true"/>
-                <sprite name="Mat1" image="images/icons/materia_3.png" x="2" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat2" image="images/icons/materia_3.png" x="17" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat3" image="images/icons/materia_3.png" x="32" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat4" image="images/icons/materia_3.png" x="47" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat5" image="images/icons/materia_3.png" x="62" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat6" image="images/icons/materia_3.png" x="77" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat7" image="images/icons/materia_3.png" x="92" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat8" image="images/icons/materia_3.png" x="107" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Slot1" image="icons/materia_slot.png" x="0" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Slot2" image="icons/materia_slot.png" x="15" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Link1" image="icons/materia_slot_link.png" x="10" y="0" width="8" height="14" visible="true"/>
+                <sprite name="Slot3" image="icons/materia_slot.png" x="30" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Slot4" image="icons/materia_slot.png" x="45" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Link2" image="icons/materia_slot_link.png" x="40" y="0" width="8" height="14" visible="true"/>
+                <sprite name="Slot5" image="icons/materia_slot.png" x="60" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Slot6" image="icons/materia_slot.png" x="75" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Link3" image="icons/materia_slot_link.png" x="70" y="0" width="8" height="14" visible="true"/>
+                <sprite name="Slot7" image="icons/materia_slot.png" x="90" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Slot8" image="icons/materia_slot.png" x="105" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Link4" image="icons/materia_slot_link.png" x="100" y="0" width="8" height="14" visible="true"/>
+                <sprite name="Mat1" image="icons/materia_3.png" x="2" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat2" image="icons/materia_3.png" x="17" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat3" image="icons/materia_3.png" x="32" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat4" image="icons/materia_3.png" x="47" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat5" image="icons/materia_3.png" x="62" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat6" image="icons/materia_3.png" x="77" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat7" image="icons/materia_3.png" x="92" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat8" image="icons/materia_3.png" x="107" y="2" width="10" height="10" visible="true"/>
             </widget>
             </widget>
             <widget name="ArmorSlots" x="230" y="54" width="230" height="14" visible="true">
             <widget name="ArmorSlots" x="230" y="54" width="230" height="14" visible="true">
-                <sprite name="Slot1" image="images/icons/materia_slot.png" x="0" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Slot2" image="images/icons/materia_slot.png" x="15" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Link1" image="images/icons/materia_slot_link.png" x="10" y="0" width="8" height="14" visible="true"/>
-                <sprite name="Slot3" image="images/icons/materia_slot.png" x="30" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Slot4" image="images/icons/materia_slot.png" x="45" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Link2" image="images/icons/materia_slot_link.png" x="40" y="0" width="8" height="14" visible="true"/>
-                <sprite name="Slot5" image="images/icons/materia_slot.png" x="60" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Slot6" image="images/icons/materia_slot.png" x="75" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Link3" image="images/icons/materia_slot_link.png" x="70" y="0" width="8" height="14" visible="true"/>
-                <sprite name="Slot7" image="images/icons/materia_slot.png" x="90" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Slot8" image="images/icons/materia_slot.png" x="105" y="0" width="14" height="14" visible="true"/>
-                <sprite name="Link4" image="images/icons/materia_slot_link.png" x="100" y="0" width="8" height="14" visible="true"/>
-                <sprite name="Mat1" image="images/icons/materia_3.png" x="2" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat2" image="images/icons/materia_3.png" x="17" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat3" image="images/icons/materia_3.png" x="32" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat4" image="images/icons/materia_3.png" x="47" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat5" image="images/icons/materia_3.png" x="62" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat6" image="images/icons/materia_3.png" x="77" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat7" image="images/icons/materia_3.png" x="92" y="2" width="10" height="10" visible="true"/>
-                <sprite name="Mat8" image="images/icons/materia_3.png" x="107" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Slot1" image="icons/materia_slot.png" x="0" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Slot2" image="icons/materia_slot.png" x="15" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Link1" image="icons/materia_slot_link.png" x="10" y="0" width="8" height="14" visible="true"/>
+                <sprite name="Slot3" image="icons/materia_slot.png" x="30" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Slot4" image="icons/materia_slot.png" x="45" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Link2" image="icons/materia_slot_link.png" x="40" y="0" width="8" height="14" visible="true"/>
+                <sprite name="Slot5" image="icons/materia_slot.png" x="60" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Slot6" image="icons/materia_slot.png" x="75" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Link3" image="icons/materia_slot_link.png" x="70" y="0" width="8" height="14" visible="true"/>
+                <sprite name="Slot7" image="icons/materia_slot.png" x="90" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Slot8" image="icons/materia_slot.png" x="105" y="0" width="14" height="14" visible="true"/>
+                <sprite name="Link4" image="icons/materia_slot_link.png" x="100" y="0" width="8" height="14" visible="true"/>
+                <sprite name="Mat1" image="icons/materia_3.png" x="2" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat2" image="icons/materia_3.png" x="17" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat3" image="icons/materia_3.png" x="32" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat4" image="icons/materia_3.png" x="47" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat5" image="icons/materia_3.png" x="62" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat6" image="icons/materia_3.png" x="77" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat7" image="icons/materia_3.png" x="92" y="2" width="10" height="10" visible="true"/>
+                <sprite name="Mat8" image="icons/materia_3.png" x="107" y="2" width="10" height="10" visible="true"/>
             </widget>
             </widget>
-            <sprite name="Cursor" image="images/icons/cursor.png" x="155" y="27" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="155" y="27" width="24" height="17" visible="true">
                 <animation name="Position1-1" length="0" x="0:155" y="0:27" />
                 <animation name="Position1-1" length="0" x="0:155" y="0:27" />
                 <animation name="Position1-2" length="0" x="0:210" y="0:27" />
                 <animation name="Position1-2" length="0" x="0:210" y="0:27" />
                 <animation name="Position1-3" length="0" x="0:225" y="0:27" />
                 <animation name="Position1-3" length="0" x="0:225" y="0:27" />
@@ -96,33 +96,33 @@
                 </widget>
                 </widget>
             </widget>
             </widget>
             <widget name="EnemySkill" x="0" y ="0" width="100%" height="100%" visible="false">
             <widget name="EnemySkill" x="0" y ="0" width="100%" height="100%" visible="false">
-                <sprite name="Icon" image="images/icons/materia_3.png" x="5" y="5" width="18" height="18" visible="true"/>
+                <sprite name="Icon" image="icons/materia_3.png" x="5" y="5" width="18" height="18" visible="true"/>
                 <text_area name="Name" x="29" y="9" font="FFVIIFont" visible="true" />
                 <text_area name="Name" x="29" y="9" font="FFVIIFont" visible="true" />
                 <widget name="Stars" x="5%" y="25" width="90%" height="32" visible="true">
                 <widget name="Stars" x="5%" y="25" width="90%" height="32" visible="true">
-                    <sprite name="Star1" image="images/icons/materia_star_3.png" x="0" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star2" image="images/icons/materia_star_3.png" x="16" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star3" image="images/icons/materia_star_3.png" x="32" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star4" image="images/icons/materia_star_3.png" x="48" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star5" image="images/icons/materia_star_3.png" x="64" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star6" image="images/icons/materia_star_3.png" x="80" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star7" image="images/icons/materia_star_3.png" x="96" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star8" image="images/icons/materia_star_3.png" x="112" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star9" image="images/icons/materia_star_3.png" x="128" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star10" image="images/icons/materia_star_3.png" x="144" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star11" image="images/icons/materia_star_3.png" x="160" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star12" image="images/icons/materia_star_3.png" x="176" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star13" image="images/icons/materia_star_3.png" x="0" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star14" image="images/icons/materia_star_3.png" x="16" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star15" image="images/icons/materia_star_3.png" x="32" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star16" image="images/icons/materia_star_3.png" x="48" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star17" image="images/icons/materia_star_3.png" x="64" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star18" image="images/icons/materia_star_3.png" x="80" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star19" image="images/icons/materia_star_3.png" x="96" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star20" image="images/icons/materia_star_3.png" x="112" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star21" image="images/icons/materia_star_3.png" x="128" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star22" image="images/icons/materia_star_3.png" x="144" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star23" image="images/icons/materia_star_3.png" x="160" y="16" width="15" height="15" visible="true"/>
-                    <sprite name="Star24" image="images/icons/materia_star_3.png" x="176" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star1" image="icons/materia_star_3.png" x="0" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star2" image="icons/materia_star_3.png" x="16" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star3" image="icons/materia_star_3.png" x="32" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star4" image="icons/materia_star_3.png" x="48" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star5" image="icons/materia_star_3.png" x="64" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star6" image="icons/materia_star_3.png" x="80" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star7" image="icons/materia_star_3.png" x="96" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star8" image="icons/materia_star_3.png" x="112" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star9" image="icons/materia_star_3.png" x="128" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star10" image="icons/materia_star_3.png" x="144" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star11" image="icons/materia_star_3.png" x="160" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star12" image="icons/materia_star_3.png" x="176" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star13" image="icons/materia_star_3.png" x="0" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star14" image="icons/materia_star_3.png" x="16" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star15" image="icons/materia_star_3.png" x="32" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star16" image="icons/materia_star_3.png" x="48" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star17" image="icons/materia_star_3.png" x="64" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star18" image="icons/materia_star_3.png" x="80" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star19" image="icons/materia_star_3.png" x="96" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star20" image="icons/materia_star_3.png" x="112" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star21" image="icons/materia_star_3.png" x="128" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star22" image="icons/materia_star_3.png" x="144" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star23" image="icons/materia_star_3.png" x="160" y="16" width="15" height="15" visible="true"/>
+                    <sprite name="Star24" image="icons/materia_star_3.png" x="176" y="16" width="15" height="15" visible="true"/>
                 </widget>
                 </widget>
                 <widget name="Skills" x="5%" y="57" width="95%" height="120" visible="true" >
                 <widget name="Skills" x="5%" y="57" width="95%" height="120" visible="true" >
                     <text_area name="Skill1" text_name="MateriaMenuAbilities" x="0%" y="0" font="FFVIIFont" visible="true" />
                     <text_area name="Skill1" text_name="MateriaMenuAbilities" x="0%" y="0" font="FFVIIFont" visible="true" />
@@ -152,14 +152,14 @@
                 </widget>
                 </widget>
             </widget>
             </widget>
             <widget name="Materia" x="0" y ="0" width="100%" height="100%" visible="false">
             <widget name="Materia" x="0" y ="0" width="100%" height="100%" visible="false">
-                <sprite name="Icon" image="images/icons/materia_3.png" x="5" y="5" width="18" height="18" visible="true"/>
+                <sprite name="Icon" image="icons/materia_3.png" x="5" y="5" width="18" height="18" visible="true"/>
                 <text_area name="Name" x="29" y="9" font="FFVIIFont" visible="true" />
                 <text_area name="Name" x="29" y="9" font="FFVIIFont" visible="true" />
                 <widget name="Stars" x="100%-90" y="8" width="86" height="15" visible="true">
                 <widget name="Stars" x="100%-90" y="8" width="86" height="15" visible="true">
-                    <sprite name="Star1" image="images/icons/materia_star_1.png" x="5" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star2" image="images/icons/materia_star_1.png" x="21" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star3" image="images/icons/materia_star_1.png" x="37" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star4" image="images/icons/materia_star_1.png" x="53" y="0" width="15" height="15" visible="true"/>
-                    <sprite name="Star5" image="images/icons/materia_star_1.png" x="69" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star1" image="icons/materia_star_1.png" x="5" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star2" image="icons/materia_star_1.png" x="21" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star3" image="icons/materia_star_1.png" x="37" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star4" image="icons/materia_star_1.png" x="53" y="0" width="15" height="15" visible="true"/>
+                    <sprite name="Star5" image="icons/materia_star_1.png" x="69" y="0" width="15" height="15" visible="true"/>
                 </widget>
                 </widget>
                 <text_area name="LblAP" text_name="MateriaMenuAP" x="100%-90" y="28" font="FFVIIFont" visible="true" />
                 <text_area name="LblAP" text_name="MateriaMenuAP" x="100%-90" y="28" font="FFVIIFont" visible="true" />
                 <text_area name="LblAPNext" text_name="MateriaMenuAPNext" x="100%-90" y="42" font="FFVIIFont" visible="true" />
                 <text_area name="LblAPNext" text_name="MateriaMenuAPNext" x="100%-90" y="42" font="FFVIIFont" visible="true" />
@@ -196,16 +196,16 @@
             <prototype name="Window" />
             <prototype name="Window" />
             <sprite name="ScrollBg" x="100%-12" y="2" width="10" height="100%-6" colour="0.2 0.2 0.2" alpha="0.8" visible="true"/>
             <sprite name="ScrollBg" x="100%-12" y="2" width="10" height="100%-6" colour="0.2 0.2 0.2" alpha="0.8" visible="true"/>
             <sprite name="Scroll" x="100%-11" y="3" width="8" height="18" colour="0.7 0.7 0.7" visible="true"/>
             <sprite name="Scroll" x="100%-11" y="3" width="8" height="18" colour="0.7 0.7 0.7" visible="true"/>
-            <sprite name="Icon1" image="images/icons/materia_3.png" x="5" y="4%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon2" image="images/icons/materia_3.png" x="5" y="13%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon3" image="images/icons/materia_3.png" x="5" y="22%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon4" image="images/icons/materia_3.png" x="5" y="31%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon5" image="images/icons/materia_3.png" x="5" y="40%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon6" image="images/icons/materia_3.png" x="5" y="49%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon7" image="images/icons/materia_3.png" x="5" y="58%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon8" image="images/icons/materia_3.png" x="5" y="67%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon9" image="images/icons/materia_3.png" x="5" y="76%-1" width="12" height="12" visible="true"/>
-            <sprite name="Icon10" image="images/icons/materia_3.png" x="5" y="85%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon1" image="icons/materia_3.png" x="5" y="4%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon2" image="icons/materia_3.png" x="5" y="13%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon3" image="icons/materia_3.png" x="5" y="22%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon4" image="icons/materia_3.png" x="5" y="31%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon5" image="icons/materia_3.png" x="5" y="40%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon6" image="icons/materia_3.png" x="5" y="49%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon7" image="icons/materia_3.png" x="5" y="58%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon8" image="icons/materia_3.png" x="5" y="67%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon9" image="icons/materia_3.png" x="5" y="76%-1" width="12" height="12" visible="true"/>
+            <sprite name="Icon10" image="icons/materia_3.png" x="5" y="85%-1" width="12" height="12" visible="true"/>
             <text_area name="Name1" x="20" y="4%" font="FFVIIFont" visible="true" />
             <text_area name="Name1" x="20" y="4%" font="FFVIIFont" visible="true" />
             <text_area name="Name2" x="20" y="13%" font="FFVIIFont" visible="true" />
             <text_area name="Name2" x="20" y="13%" font="FFVIIFont" visible="true" />
             <text_area name="Name3" x="20" y="22%" font="FFVIIFont" visible="true" />
             <text_area name="Name3" x="20" y="22%" font="FFVIIFont" visible="true" />
@@ -216,7 +216,7 @@
             <text_area name="Name8" x="20" y="67%" font="FFVIIFont" visible="true" />
             <text_area name="Name8" x="20" y="67%" font="FFVIIFont" visible="true" />
             <text_area name="Name9" x="20" y="76%" font="FFVIIFont" visible="true" />
             <text_area name="Name9" x="20" y="76%" font="FFVIIFont" visible="true" />
             <text_area name="Name10" x="20" y="85%" font="FFVIIFont" visible="true" />
             <text_area name="Name10" x="20" y="85%" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-15" y="8" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-15" y="8" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" y="0:4%+3" />
                 <animation name="Position1" length="0" y="0:4%+3" />
                 <animation name="Position2" length="0" y="0:13%+3" />
                 <animation name="Position2" length="0" y="0:13%+3" />
                 <animation name="Position3" length="0" y="0:22%+3" />
                 <animation name="Position3" length="0" y="0:22%+3" />

+ 3 - 3
data/data/screens/name_menu/name_menu.xml

@@ -7,7 +7,7 @@
         </widget>
         </widget>
         <widget name="Character" width="100%" x="0" y="24" height="70" visible="true">
         <widget name="Character" width="100%" x="0" y="24" height="70" visible="true">
             <prototype name="Window"/>
             <prototype name="Window"/>
-            <sprite name="Portrait" image="images/other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
+            <sprite name="Portrait" image="other/choco.png" x="10" y="12" width="42" height="48" visible="true" />
             <widget name="Name" width="72" height="16" x="80" y="50%-8" visible="true">
             <widget name="Name" width="72" height="16" x="80" y="50%-8" visible="true">
                 <text_area name="Char1" x="1" y="0" width="8" height="16" visible="true" font="FFVIIFont" />
                 <text_area name="Char1" x="1" y="0" width="8" height="16" visible="true" font="FFVIIFont" />
                 <text_area name="Char2" x="11" y="0" width="8" height="16" visible="true" font="FFVIIFont" />
                 <text_area name="Char2" x="11" y="0" width="8" height="16" visible="true" font="FFVIIFont" />
@@ -40,7 +40,7 @@
             <text_area name="Clear" text_name="NameMenuClear" x="15" y="100%-50" font="FFVIIFont" visible="true" />
             <text_area name="Clear" text_name="NameMenuClear" x="15" y="100%-50" font="FFVIIFont" visible="true" />
             <text_area name="Default" text_name="NameMenuDefault" x="15" y="100%-35" font="FFVIIFont" visible="true" />
             <text_area name="Default" text_name="NameMenuDefault" x="15" y="100%-35" font="FFVIIFont" visible="true" />
             <text_area name="Confirm" text_name="NameMenuConfirm" x="15" y="100%-20" font="FFVIIFont" visible="true" />
             <text_area name="Confirm" text_name="NameMenuConfirm" x="15" y="100%-20" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-10" y="100%-48" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-10" y="100%-48" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" y="0:100%-50" />
                 <animation name="Position1" length="0" y="0:100%-50" />
                 <animation name="Position2" length="0" y="0:100%-35" />
                 <animation name="Position2" length="0" y="0:100%-35" />
                 <animation name="Position3" length="0" y="0:100%-20" />
                 <animation name="Position3" length="0" y="0:100%-20" />
@@ -52,7 +52,7 @@
             <text_area name="Name" x="22" y="30" font="FFVIIFont" visible="true" colour="0 0.8 1"/>
             <text_area name="Name" x="22" y="30" font="FFVIIFont" visible="true" colour="0 0.8 1"/>
             <text_area name="Yes" text_name="Yes" x="20" y="55" font="FFVIIFont" visible="true" />
             <text_area name="Yes" text_name="Yes" x="20" y="55" font="FFVIIFont" visible="true" />
             <text_area name="No" text_name="No" x="80" y="55" font="FFVIIFont" visible="true" />
             <text_area name="No" text_name="No" x="80" y="55" font="FFVIIFont" visible="true" />
-            <sprite name="Cursor" image="images/icons/cursor.png" x="-4" y="55" width="24" height="17" visible="true">
+            <sprite name="Cursor" image="icons/cursor.png" x="-4" y="55" width="24" height="17" visible="true">
                 <animation name="Position1" length="0" x="0:-4" />
                 <animation name="Position1" length="0" x="0:-4" />
                 <animation name="Position2" length="0" x="0:56" />
                 <animation name="Position2" length="0" x="0:56" />
             </sprite>
             </sprite>

+ 1 - 1
data/data/screens/pause_menu/pause_menu.xml

@@ -5,7 +5,7 @@
         <text_area name="Text" x="50%" y="20" text_name="PauseMenuText" font="FFVIIFont" text_align="center" visible="true" />
         <text_area name="Text" x="50%" y="20" text_name="PauseMenuText" font="FFVIIFont" text_align="center" visible="true" />
         <text_area name="Yes" x="40" y="35" text_name="PauseMenuYes" font="FFVIIFont" visible="true" />
         <text_area name="Yes" x="40" y="35" text_name="PauseMenuYes" font="FFVIIFont" visible="true" />
         <text_area name="No" x="90" y="35" text_name="PauseMenuNo" font="FFVIIFont" visible="true" />
         <text_area name="No" x="90" y="35" text_name="PauseMenuNo" font="FFVIIFont" visible="true" />
-        <sprite name="Cursor" image="images/icons/cursor.png" x="15" y="35" width="24" height="16" visible="true">
+        <sprite name="Cursor" image="icons/cursor.png" x="15" y="35" width="24" height="16" visible="true">
             <animation name="Position1" length="0" x="0:15" />
             <animation name="Position1" length="0" x="0:15" />
             <animation name="Position2" length="0" x="0:65" />
             <animation name="Position2" length="0" x="0:65" />
         </sprite>
         </sprite>

+ 8 - 8
data/data/screens/prototypes.xml

@@ -1,13 +1,13 @@
 <prototypes>
 <prototypes>
     <prototype name="Window">
     <prototype name="Window">
-        <sprite name="Top" image="images/window/b_t.png" x="8" y="0" width="100%-16" height="8" visible="true" />
-        <sprite name="Bottom" image="images/window/b_b.png" x="8" y="100%-8" width="100%-16" height="8" visible="true" />
-        <sprite name="Left" image="images/window/b_l.png" x="0" y="8" width="8" height="100%-16" visible="true" />
-        <sprite name="Right" image="images/window/b_r.png" x="100%-8" y="8" width="8" height="100%-16" visible="true" />
-        <sprite name="TopLeft" image="images/window/c_tl.png" x="0" y="0" width="8" height="8" visible="true" />
-        <sprite name="TopRight" image="images/window/c_tr.png" x="100%-8" y="0" width="8" height="8" visible="true" />
-        <sprite name="BottomLeft" image="images/window/c_bl.png" x="0" y="100%-8" width="8" height="8" visible="true" />
-        <sprite name="BottomRight" image="images/window/c_br.png" x="100%-8" y="100%-8" width="8" height="8" visible="true" />
+        <sprite name="Top" image="window/b_t.png" x="8" y="0" width="100%-16" height="8" visible="true" />
+        <sprite name="Bottom" image="window/b_b.png" x="8" y="100%-8" width="100%-16" height="8" visible="true" />
+        <sprite name="Left" image="window/b_l.png" x="0" y="8" width="8" height="100%-16" visible="true" />
+        <sprite name="Right" image="window/b_r.png" x="100%-8" y="8" width="8" height="100%-16" visible="true" />
+        <sprite name="TopLeft" image="window/c_tl.png" x="0" y="0" width="8" height="8" visible="true" />
+        <sprite name="TopRight" image="window/c_tr.png" x="100%-8" y="0" width="8" height="8" visible="true" />
+        <sprite name="BottomLeft" image="window/c_bl.png" x="0" y="100%-8" width="8" height="8" visible="true" />
+        <sprite name="BottomRight" image="window/c_br.png" x="100%-8" y="100%-8" width="8" height="8" visible="true" />
         <sprite name="Center" x="3" y="2" width="100%-6" height="100%-5" colours="0 0 0.7,0 0 0.5,0 0 0.125,0 0 0.31" visible="true" />
         <sprite name="Center" x="3" y="2" width="100%-6" height="100%-5" colours="0 0 0.7,0 0 0.5,0 0 0.125,0 0 0.31" visible="true" />
     </prototype>
     </prototype>
 </prototypes>
 </prototypes>

+ 3 - 3
data/data/screens/save_menu/prototypes.xml

@@ -3,9 +3,9 @@
         <widget name="Slot" width="100%" height="100%" x="0" y="0" visible="true">
         <widget name="Slot" width="100%" height="100%" x="0" y="0" visible="true">
             <prototype name="Window" />
             <prototype name="Window" />
             <widget name="Party" x="15" y="50%-24" visible="true">
             <widget name="Party" x="15" y="50%-24" visible="true">
-                <sprite name="Portrait1" image="images/other/choco.png" x="0" y="0" width="42" height="48" visible="true" />
-                <sprite name="Portrait2" image="images/other/choco.png" x="45" y="0" width="42" height="48" visible="true" />
-                <sprite name="Portrait3" image="images/other/choco.png" x="90" y="0" width="42" height="48" visible="true" />
+                <sprite name="Portrait1" image="other/choco.png" x="0" y="0" width="42" height="48" visible="true" />
+                <sprite name="Portrait2" image="other/choco.png" x="45" y="0" width="42" height="48" visible="true" />
+                <sprite name="Portrait3" image="other/choco.png" x="90" y="0" width="42" height="48" visible="true" />
             </widget>
             </widget>
             <text_area name="Name" x="160" y="20%" font="FFVIIFont" visible="true" />
             <text_area name="Name" x="160" y="20%" font="FFVIIFont" visible="true" />
             <text_area name="LvTag" x="170" y="20%+20" text_name="SaveMenuLevel" colour="0 0.9 0.9" font="FFVIIFont" visible="true" />
             <text_area name="LvTag" x="170" y="20%+20" text_name="SaveMenuLevel" colour="0 0.9 0.9" font="FFVIIFont" visible="true" />

+ 1 - 1
data/data/screens/save_menu/save_menu.xml

@@ -20,7 +20,7 @@
         <widget name="Slot3" x="5%" y="66%+12" width="90%" height="30%-8" visible="true">
         <widget name="Slot3" x="5%" y="66%+12" width="90%" height="30%-8" visible="true">
             <prototype name="SaveSlot" />
             <prototype name="SaveSlot" />
         </widget>
         </widget>
-        <sprite name="Cursor" image="images/icons/cursor.png" x="2" y="15%+12" width="24" height="17" visible="true">
+        <sprite name="Cursor" image="icons/cursor.png" x="2" y="15%+12" width="24" height="17" visible="true">
             <animation name="Position1" length="0" y="0:15%+12" />
             <animation name="Position1" length="0" y="0:15%+12" />
             <animation name="Position2" length="0" y="0:48%+12" />
             <animation name="Position2" length="0" y="0:48%+12" />
             <animation name="Position3" length="0" y="0:81%+12" />
             <animation name="Position3" length="0" y="0:81%+12" />

+ 12 - 12
data/data/scripts.xml → data/data/scripts/_scripts.xml

@@ -1,22 +1,22 @@
 <scripts>
 <scripts>
     <script file="scripts/data.lua" />
     <script file="scripts/data.lua" />
-    <script file="game/accessories.lua" />
-    <script file="game/armors.lua" />
-    <script file="game/attacks.lua" />
-    <script file="game/characters.lua" />
-    <script file="game/commands.lua" />
-    <script file="game/growth.lua" />
-    <script file="game/items.lua" />
-    <script file="game/key_items.lua" />
-    <script file="game/materia.lua" />
-    <script file="game/summons.lua" />
-    <script file="game/weapons.lua" />
+    <script file="gamedata/accessories.lua" />
+    <script file="gamedata/armors.lua" />
+    <script file="gamedata/attacks.lua" />
+    <script file="gamedata/characters.lua" />
+    <script file="gamedata/commands.lua" />
+    <script file="gamedata/growth.lua" />
+    <script file="gamedata/items.lua" />
+    <script file="gamedata/key_items.lua" />
+    <script file="gamedata/materia.lua" />
+    <script file="gamedata/summons.lua" />
+    <script file="gamedata/weapons.lua" />
 
 
     <script file="scripts/system.lua" />
     <script file="scripts/system.lua" />
     <script file="scripts/save.lua" />
     <script file="scripts/save.lua" />
 
 
     <!-- TODO: Don't always parse initial savemap when loading is implemented. -->
     <!-- TODO: Don't always parse initial savemap when loading is implemented. -->
-    <script file="game/initial_savemap.lua" />
+    <script file="gamedata/initial_savemap.lua" />
 
 
     <script file="scripts/field.lua" />
     <script file="scripts/field.lua" />
     <script file="scripts/battle.lua" />
     <script file="scripts/battle.lua" />

+ 4 - 4
data/data/scripts/menu/equip_menu.lua

@@ -186,9 +186,9 @@ UiContainer.EquipMenu = {
     submenu_none = function(self)
     submenu_none = function(self)
         UiContainer.current_submenu = ""
         UiContainer.current_submenu = ""
         UiContainer.populate_character_data("EquipMenu.Container.Character", Characters[self.char_id])
         UiContainer.populate_character_data("EquipMenu.Container.Character", Characters[self.char_id])
-        ui_manager:get_widget("EquipMenu.Container.Character.Portrait"):set_image("images/characters/" .. tostring(self.char_id) .. ".png")
+        ui_manager:get_widget("EquipMenu.Container.Character.Portrait"):set_image("characters/" .. tostring(self.char_id) .. ".png")
         -- TODO: Do something for chars 9 and 10
         -- TODO: Do something for chars 9 and 10
-        ui_manager:get_widget("EquipMenu.Container.Character.WpnIcon"):set_image("images/icons/item_weapon_" .. tostring(self.char_id) .. ".png")
+        ui_manager:get_widget("EquipMenu.Container.Character.WpnIcon"):set_image("icons/item_weapon_" .. tostring(self.char_id) .. ".png")
         ui_manager:get_widget("EquipMenu.Container.Character.WpnLbl"):set_text(Game.Items[Characters[self.char_id].weapon.id].name)
         ui_manager:get_widget("EquipMenu.Container.Character.WpnLbl"):set_text(Game.Items[Characters[self.char_id].weapon.id].name)
         ui_manager:get_widget("EquipMenu.Container.Character.ArmLbl"):set_text(Game.Items[Characters[self.char_id].armor.id].name)
         ui_manager:get_widget("EquipMenu.Container.Character.ArmLbl"):set_text(Game.Items[Characters[self.char_id].armor.id].name)
         if Characters[self.char_id].accessory == nil then
         if Characters[self.char_id].accessory == nil then
@@ -376,9 +376,9 @@ UiContainer.EquipMenu = {
             else
             else
                 ui_manager:get_widget("EquipMenu.Container.Slots.Slot" .. tostring(s)):set_visible(true)
                 ui_manager:get_widget("EquipMenu.Container.Slots.Slot" .. tostring(s)):set_visible(true)
                 if item.growth == 0 then
                 if item.growth == 0 then
-                    ui_manager:get_widget("EquipMenu.Container.Slots.Slot" .. tostring(s)):set_image("images/icons/materia_slot_no_growth.png")
+                    ui_manager:get_widget("EquipMenu.Container.Slots.Slot" .. tostring(s)):set_image("icons/materia_slot_no_growth.png")
                 else
                 else
-                    ui_manager:get_widget("EquipMenu.Container.Slots.Slot" .. tostring(s)):set_image("images/icons/materia_slot.png")
+                    ui_manager:get_widget("EquipMenu.Container.Slots.Slot" .. tostring(s)):set_image("icons/materia_slot.png")
                 end
                 end
             end
             end
             if s % 2 ~= 0 then
             if s % 2 ~= 0 then

+ 5 - 5
data/data/scripts/menu/item_menu.lua

@@ -466,7 +466,7 @@ UiContainer.ItemMenu = {
             if Party[c] ~= nil then
             if Party[c] ~= nil then
                 self.char_position_total = self.char_position_total + 1
                 self.char_position_total = self.char_position_total + 1
                 UiContainer.populate_character_data("ItemMenu.Container.ItemMenuCharacters.Character" .. tostring(c), Characters[Party[c]])
                 UiContainer.populate_character_data("ItemMenu.Container.ItemMenuCharacters.Character" .. tostring(c), Characters[Party[c]])
-                ui_manager:get_widget("ItemMenu.Container.ItemMenuCharacters.Character" .. tostring(c) .. ".Portrait"):set_image("images/characters/" .. tostring(Party[c]) .. ".png")
+                ui_manager:get_widget("ItemMenu.Container.ItemMenuCharacters.Character" .. tostring(c) .. ".Portrait"):set_image("characters/" .. tostring(Party[c]) .. ".png")
             else
             else
                 UiContainer.populate_character_data("ItemMenu.Container.ItemMenuCharacters.Character" .. tostring(c), nil)
                 UiContainer.populate_character_data("ItemMenu.Container.ItemMenuCharacters.Character" .. tostring(c), nil)
             end
             end
@@ -992,16 +992,16 @@ UiContainer.ItemMenu = {
                 end
                 end
                 -- Item icon
                 -- Item icon
                 if type == Inventory.ITEM_TYPE.ITEM then
                 if type == Inventory.ITEM_TYPE.ITEM then
-                    w_icon:set_image("images/icons/item_item.png")
+                    w_icon:set_image("icons/item_item.png")
                 elseif type == Inventory.ITEM_TYPE.ARMOR then
                 elseif type == Inventory.ITEM_TYPE.ARMOR then
-                    w_icon:set_image("images/icons/item_armor.png")
+                    w_icon:set_image("icons/item_armor.png")
                 elseif type == Inventory.ITEM_TYPE.ACCESSORY then
                 elseif type == Inventory.ITEM_TYPE.ACCESSORY then
-                    w_icon:set_image("images/icons/item_accessory.png")
+                    w_icon:set_image("icons/item_accessory.png")
                 elseif type == Inventory.ITEM_TYPE.WEAPON then
                 elseif type == Inventory.ITEM_TYPE.WEAPON then
                     local users = Game.Items[Inventory[inventory_index].item].users
                     local users = Game.Items[Inventory[inventory_index].item].users
                     for _, v in ipairs(users) do
                     for _, v in ipairs(users) do
                         if v >= 0 and v <= 8 then
                         if v >= 0 and v <= 8 then
-                            w_icon:set_image("images/icons/item_weapon_" .. v .. ".png")
+                            w_icon:set_image("icons/item_weapon_" .. v .. ".png")
                             break;
                             break;
                         end
                         end
                     end
                     end

+ 1 - 1
data/data/scripts/menu/main_menu.lua

@@ -150,7 +150,7 @@ UiContainer.MainMenu = {
         for c = 1, 3 do
         for c = 1, 3 do
             if Party[c] ~= nil then
             if Party[c] ~= nil then
                 UiContainer.populate_character_data("MainMenu.Container.Characters.Character" .. tostring(c), Characters[Party[c]])
                 UiContainer.populate_character_data("MainMenu.Container.Characters.Character" .. tostring(c), Characters[Party[c]])
-                ui_manager:get_widget("MainMenu.Container.Characters.Character" .. tostring(c) .. ".Portrait"):set_image("images/characters/" .. tostring(Party[c]) .. ".png")
+                ui_manager:get_widget("MainMenu.Container.Characters.Character" .. tostring(c) .. ".Portrait"):set_image("characters/" .. tostring(Party[c]) .. ".png")
                 if Characters[Party[c]].back_row == 1 then
                 if Characters[Party[c]].back_row == 1 then
                     ui_manager:get_widget("MainMenu.Container.Characters.Character" .. tostring(c) .. ".Portrait"):set_default_animation("RowBack")
                     ui_manager:get_widget("MainMenu.Container.Characters.Character" .. tostring(c) .. ".Portrait"):set_default_animation("RowBack")
                 else
                 else

+ 10 - 10
data/data/scripts/menu/materia_menu.lua

@@ -194,10 +194,10 @@ UiContainer.MateriaMenu = {
     submenu_none = function(self)
     submenu_none = function(self)
         UiContainer.current_submenu = ""
         UiContainer.current_submenu = ""
         UiContainer.populate_character_data("MateriaMenu.Container.Character", Characters[self.char_id])
         UiContainer.populate_character_data("MateriaMenu.Container.Character", Characters[self.char_id])
-        ui_manager:get_widget("MateriaMenu.Container.Character.Portrait"):set_image("images/characters/" .. tostring(self.char_id) .. ".png")
+        ui_manager:get_widget("MateriaMenu.Container.Character.Portrait"):set_image("characters/" .. tostring(self.char_id) .. ".png")
         self.populate_equip(self)
         self.populate_equip(self)
         -- TODO: Do something for chars 9 and 10
         -- TODO: Do something for chars 9 and 10
-        ui_manager:get_widget("MateriaMenu.Container.Character.WpnIcon"):set_image("images/icons/item_weapon_" .. tostring(self.char_id) .. ".png")
+        ui_manager:get_widget("MateriaMenu.Container.Character.WpnIcon"):set_image("icons/item_weapon_" .. tostring(self.char_id) .. ".png")
         ui_manager:get_widget("MateriaMenu.Container.List.Cursor"):set_visible(false)
         ui_manager:get_widget("MateriaMenu.Container.List.Cursor"):set_visible(false)
         --TODO: Uncomment when implemented: ui_manager:get_widget("MateriaMenu.Container.Order.Cursor"):set_visible(false)
         --TODO: Uncomment when implemented: ui_manager:get_widget("MateriaMenu.Container.Order.Cursor"):set_visible(false)
         ui_manager:get_widget("MateriaMenu.Container.Character.Cursor"):set_visible(true)
         ui_manager:get_widget("MateriaMenu.Container.Character.Cursor"):set_visible(true)
@@ -247,14 +247,14 @@ UiContainer.MateriaMenu = {
             -- Show/hide/set materia
             -- Show/hide/set materia
             if Characters[self.char_id].weapon.materia[i - 1] ~= nil then
             if Characters[self.char_id].weapon.materia[i - 1] ~= nil then
                 local mat_type =  Game.Materia[Characters[self.char_id].weapon.materia[i - 1].id].type
                 local mat_type =  Game.Materia[Characters[self.char_id].weapon.materia[i - 1].id].type
-                ui_manager:get_widget("MateriaMenu.Container.Character.WeaponSlots.Mat" .. tostring(i)):set_image("images/icons/materia_" .. tostring(mat_type) .. ".png")
+                ui_manager:get_widget("MateriaMenu.Container.Character.WeaponSlots.Mat" .. tostring(i)):set_image("icons/materia_" .. tostring(mat_type) .. ".png")
                 ui_manager:get_widget("MateriaMenu.Container.Character.WeaponSlots.Mat" .. tostring(i)):set_visible(true)
                 ui_manager:get_widget("MateriaMenu.Container.Character.WeaponSlots.Mat" .. tostring(i)):set_visible(true)
             else
             else
                 ui_manager:get_widget("MateriaMenu.Container.Character.WeaponSlots.Mat" .. tostring(i)):set_visible(false)
                 ui_manager:get_widget("MateriaMenu.Container.Character.WeaponSlots.Mat" .. tostring(i)):set_visible(false)
             end
             end
             if Characters[self.char_id].armor.materia[i - 1] ~= nil then
             if Characters[self.char_id].armor.materia[i - 1] ~= nil then
                 local mat_type =  Game.Materia[Characters[self.char_id].armor.materia[i - 1].id].type
                 local mat_type =  Game.Materia[Characters[self.char_id].armor.materia[i - 1].id].type
-                ui_manager:get_widget("MateriaMenu.Container.Character.ArmorSlots.Mat" .. tostring(i)):set_image("images/icons/materia_" .. tostring(mat_type) .. ".png")
+                ui_manager:get_widget("MateriaMenu.Container.Character.ArmorSlots.Mat" .. tostring(i)):set_image("icons/materia_" .. tostring(mat_type) .. ".png")
                 ui_manager:get_widget("MateriaMenu.Container.Character.ArmorSlots.Mat" .. tostring(i)):set_visible(true)
                 ui_manager:get_widget("MateriaMenu.Container.Character.ArmorSlots.Mat" .. tostring(i)):set_visible(true)
             else
             else
                 ui_manager:get_widget("MateriaMenu.Container.Character.ArmorSlots.Mat" .. tostring(i)):set_visible(false)
                 ui_manager:get_widget("MateriaMenu.Container.Character.ArmorSlots.Mat" .. tostring(i)):set_visible(false)
@@ -295,11 +295,11 @@ UiContainer.MateriaMenu = {
         ui_manager:get_widget("MateriaMenu.Container.Details.Materia"):set_visible(false)
         ui_manager:get_widget("MateriaMenu.Container.Details.Materia"):set_visible(false)
         for s = 1, 24 do
         for s = 1, 24 do
             if materia.skills[s] ~= nil and materia.skills[s] == true then
             if materia.skills[s] ~= nil and materia.skills[s] == true then
-                ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Stars.Star" .. tostring(s)):set_image("images/icons/materia_star_3.png")
+                ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Stars.Star" .. tostring(s)):set_image("icons/materia_star_3.png")
                 ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Skills.Skill" .. tostring(s)):set_text(Game.Attacks[71 + s].name)
                 ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Skills.Skill" .. tostring(s)):set_text(Game.Attacks[71 + s].name)
                 ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Skills.Skill" .. tostring(s)):set_visible(true)
                 ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Skills.Skill" .. tostring(s)):set_visible(true)
             else
             else
-                ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Stars.Star" .. tostring(s)):set_image("images/icons/materia_star_empty_3.png")
+                ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Stars.Star" .. tostring(s)):set_image("icons/materia_star_empty_3.png")
                 ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Skills.Skill" .. tostring(s)):set_visible(false)
                 ui_manager:get_widget("MateriaMenu.Container.Details.EnemySkill.Skills.Skill" .. tostring(s)):set_visible(false)
             end
             end
         end
         end
@@ -420,7 +420,7 @@ UiContainer.MateriaMenu = {
             ap_next = materia.levels_ap[level + 1] - ap
             ap_next = materia.levels_ap[level + 1] - ap
         end
         end
         -- Start displaying data
         -- Start displaying data
-        ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Icon"):set_image("images/icons/materia_" .. tostring(materia.type) .. ".png")
+        ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Icon"):set_image("icons/materia_" .. tostring(materia.type) .. ".png")
         ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Name"):set_text(materia.name)
         ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Name"):set_text(materia.name)
         for l = 1, 5 do
         for l = 1, 5 do
             if l > max_level then
             if l > max_level then
@@ -428,9 +428,9 @@ UiContainer.MateriaMenu = {
                 ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Stars.Star" .. tostring(l)):set_visible(false)
                 ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Stars.Star" .. tostring(l)):set_visible(false)
             else
             else
                 if l <= level then
                 if l <= level then
-                    ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Stars.Star" .. tostring(l)):set_image("images/icons/materia_star_" .. tostring(materia.type) .. ".png")
+                    ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Stars.Star" .. tostring(l)):set_image("icons/materia_star_" .. tostring(materia.type) .. ".png")
                 else
                 else
-                    ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Stars.Star" .. tostring(l)):set_image("images/icons/materia_star_empty_" .. tostring(materia.type) .. ".png")
+                    ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Stars.Star" .. tostring(l)):set_image("icons/materia_star_empty_" .. tostring(materia.type) .. ".png")
                 end
                 end
                 ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Stars.Star" .. tostring(l)):set_visible(true)
                 ui_manager:get_widget("MateriaMenu.Container.Details.Materia.Stars.Star" .. tostring(l)):set_visible(true)
             end
             end
@@ -635,7 +635,7 @@ UiContainer.MateriaMenu = {
             if Materia[i] ~= nil then
             if Materia[i] ~= nil then
                 local type = Game.Materia[Materia[i].id].type
                 local type = Game.Materia[Materia[i].id].type
                 local name = Game.Materia[Materia[i].id].name
                 local name = Game.Materia[Materia[i].id].name
-                ui_manager:get_widget("MateriaMenu.Container.List.Icon" .. tostring(pos)):set_image("images/icons/materia_" .. tostring(type) .. ".png")
+                ui_manager:get_widget("MateriaMenu.Container.List.Icon" .. tostring(pos)):set_image("icons/materia_" .. tostring(type) .. ".png")
                 ui_manager:get_widget("MateriaMenu.Container.List.Icon" .. tostring(pos)):set_visible(true)
                 ui_manager:get_widget("MateriaMenu.Container.List.Icon" .. tostring(pos)):set_visible(true)
                 ui_manager:get_widget("MateriaMenu.Container.List.Name" .. tostring(pos)):set_text(name)
                 ui_manager:get_widget("MateriaMenu.Container.List.Name" .. tostring(pos)):set_text(name)
                 ui_manager:get_widget("MateriaMenu.Container.List.Name" .. tostring(pos)):set_visible(true)
                 ui_manager:get_widget("MateriaMenu.Container.List.Name" .. tostring(pos)):set_visible(true)

+ 1 - 1
data/data/scripts/menu/name_menu.lua

@@ -176,7 +176,7 @@ UiContainer.NameMenu = {
         self.confirm_position = 1
         self.confirm_position = 1
         ui_manager:get_widget("NameMenu.Container.Confirm.Cursor"):set_default_animation("Position" .. self.confirm_position)
         ui_manager:get_widget("NameMenu.Container.Confirm.Cursor"):set_default_animation("Position" .. self.confirm_position)
         ui_manager:get_widget("NameMenu.Container.Options.Cursor"):set_default_animation("Position" .. self.options_position)
         ui_manager:get_widget("NameMenu.Container.Options.Cursor"):set_default_animation("Position" .. self.options_position)
-        ui_manager:get_widget("NameMenu.Container.Character.Portrait"):set_image("images/characters/" .. tostring(self.id) .. ".png")
+        ui_manager:get_widget("NameMenu.Container.Character.Portrait"):set_image("characters/" .. tostring(self.id) .. ".png")
         if (string.lower(Characters[self.id].name) == "ex-soldier") then
         if (string.lower(Characters[self.id].name) == "ex-soldier") then
             -- HACK: Hack for Ex-Soldier default. Can this be extracted from menu.lgp?
             -- HACK: Hack for Ex-Soldier default. Can this be extracted from menu.lgp?
             self.default_name = "Cloud"
             self.default_name = "Cloud"

+ 1 - 1
data/data/scripts/menu/save_menu.lua

@@ -128,7 +128,7 @@ UiContainer.SaveMenu = {
                 ui_manager:get_widget(slot_id .. "LvNumber"):set_text(UiContainer.pad_value(savemap_manager:get_slot_character_level(slot, save_party[1]), 3))
                 ui_manager:get_widget(slot_id .. "LvNumber"):set_text(UiContainer.pad_value(savemap_manager:get_slot_character_level(slot, save_party[1]), 3))
                 for c = 1, 3 do
                 for c = 1, 3 do
                     if save_party[c] ~= -1 and Characters[save_party[c] + 1] ~= nil then
                     if save_party[c] ~= -1 and Characters[save_party[c] + 1] ~= nil then
-                        ui_manager:get_widget(slot_id .. "Party.Portrait" .. tostring(c)):set_image("images/characters/" .. tostring(save_party[c]) .. ".png")
+                        ui_manager:get_widget(slot_id .. "Party.Portrait" .. tostring(c)):set_image("characters/" .. tostring(save_party[c]) .. ".png")
                         ui_manager:get_widget(slot_id .. "Party.Portrait" .. tostring(c)):set_visible(true)
                         ui_manager:get_widget(slot_id .. "Party.Portrait" .. tostring(c)):set_visible(true)
                     else
                     else
                         ui_manager:get_widget(slot_id .. "Party.Portrait" .. tostring(c)):set_visible(false)
                         ui_manager:get_widget(slot_id .. "Party.Portrait" .. tostring(c)):set_visible(false)

+ 0 - 4
data/data/sounds.xml

@@ -1,4 +0,0 @@
-<!-- This file is to be overwritten by the installer -->
-<sounds>
-    <sound file_name="audio/sound/example.ogg" name="Example" />
-</sounds>

+ 0 - 0
data/data/texts.xml → data/data/texts/_texts.xml


+ 1 - 1
src/common/VGearsResource.h

@@ -63,7 +63,7 @@ namespace VGears{
              */
              */
             virtual Ogre::DataStreamPtr openResource(){
             virtual Ogre::DataStreamPtr openResource(){
                 // Last parameter to true to throw an exception.
                 // Last parameter to true to throw an exception.
-                // Change when ready.
+                // TODO: Change when ready.
                 return Ogre::ResourceGroupManager::getSingleton().openResource(
                 return Ogre::ResourceGroupManager::getSingleton().openResource(
                   mName, mGroup, this, false
                   mName, mGroup, this, false
                 );
                 );

+ 2 - 2
src/core/AudioManager.cpp

@@ -60,11 +60,11 @@ AudioManager::AudioManager():
     else LOG_ERROR("AudioManager failed to initialised. There's no default sound device.");
     else LOG_ERROR("AudioManager failed to initialised. There's no default sound device.");
 
 
     // Load musics.
     // Load musics.
-    XmlMusicsFile musics("./data/musics.xml");
+    XmlMusicsFile musics("./data/audio/musics/_musics.xml");
     musics.LoadMusics();
     musics.LoadMusics();
 
 
     // Load sounds.
     // Load sounds.
-    XmlSoundsFile sounds("./data/sounds.xml");
+    XmlSoundsFile sounds("./data/audio/sounds/_sounds.xml");
     sounds.LoadSounds();
     sounds.LoadSounds();
 }
 }
 
 

+ 7 - 3
src/core/Background2D.cpp

@@ -50,7 +50,7 @@ Background2D::Background2D():
     scene_manager_ = Ogre::Root::getSingleton().getSceneManager("Scene");
     scene_manager_ = Ogre::Root::getSingleton().getSceneManager("Scene");
     render_system_ = Ogre::Root::getSingletonPtr()->getRenderSystem();
     render_system_ = Ogre::Root::getSingletonPtr()->getRenderSystem();
     CreateVertexBuffers();
     CreateVertexBuffers();
-    alpha_material_ = Ogre::MaterialManager::getSingleton().create("Background2DAlpha", "General");
+    alpha_material_ = Ogre::MaterialManager::getSingleton().create("Background2DAlpha", "FIELDS");
     Ogre::Pass* pass = alpha_material_->getTechnique(0)->getPass(0);
     Ogre::Pass* pass = alpha_material_->getTechnique(0)->getPass(0);
     pass->setVertexColourTracking(Ogre::TVC_AMBIENT);
     pass->setVertexColourTracking(Ogre::TVC_AMBIENT);
     pass->setCullingMode(Ogre::CULL_NONE);
     pass->setCullingMode(Ogre::CULL_NONE);
@@ -64,7 +64,7 @@ Background2D::Background2D():
     tex->setTextureName("system/blank.png");
     tex->setTextureName("system/blank.png");
     tex->setNumMipmaps(-1);
     tex->setNumMipmaps(-1);
     tex->setTextureFiltering(Ogre::TFO_NONE);
     tex->setTextureFiltering(Ogre::TFO_NONE);
-    add_material = Ogre::MaterialManager::getSingleton().create("Background2DAdd", "General");
+    add_material = Ogre::MaterialManager::getSingleton().create("Background2DAdd", "FIELDS");
     pass = add_material->getTechnique(0)->getPass(0);
     pass = add_material->getTechnique(0)->getPass(0);
     pass->setVertexColourTracking(Ogre::TVC_AMBIENT);
     pass->setVertexColourTracking(Ogre::TVC_AMBIENT);
     pass->setCullingMode(Ogre::CULL_NONE);
     pass->setCullingMode(Ogre::CULL_NONE);
@@ -79,7 +79,7 @@ Background2D::Background2D():
     tex->setNumMipmaps(-1);
     tex->setNumMipmaps(-1);
     tex->setTextureFiltering(Ogre::TFO_NONE);
     tex->setTextureFiltering(Ogre::TFO_NONE);
     subtract_material_ = Ogre::MaterialManager::getSingleton().create(
     subtract_material_ = Ogre::MaterialManager::getSingleton().create(
-      "Background2DSubtract", "General"
+      "Background2DSubtract", "FIELDS"
     );
     );
     pass = subtract_material_->getTechnique(0)->getPass(0);
     pass = subtract_material_->getTechnique(0)->getPass(0);
     pass->setVertexColourTracking(Ogre::TVC_AMBIENT);
     pass->setVertexColourTracking(Ogre::TVC_AMBIENT);
@@ -114,6 +114,10 @@ void Background2D::InputDebug(const VGears::Event& event){
     }
     }
 }
 }
 
 
+void Background2D::Hide(){scene_manager_->removeRenderQueueListener(this);}
+
+void Background2D::Show(){scene_manager_->addRenderQueueListener(this);}
+
 void Background2D::Update(){
 void Background2D::Update(){
     for (unsigned int i = 0; i < animation_played_.size(); ++ i){
     for (unsigned int i = 0; i < animation_played_.size(); ++ i){
         for (unsigned int j = 0; j < animations_.size(); ++ j){
         for (unsigned int j = 0; j < animations_.size(); ++ j){

+ 15 - 0
src/core/Background2D.h

@@ -73,6 +73,21 @@ class Background2D : public Ogre::RenderQueueListener{
          */
          */
         void InputDebug(const VGears::Event& event);
         void InputDebug(const VGears::Event& event);
 
 
+        /**
+         * Hides the background.
+         *
+         * Once called, the background will not be rendered until {@see Show()} is called. If the
+         * background is already hidden, it will do nothing.
+         */
+        void Hide();
+
+        /**
+         * Shows the background.
+         *
+         * Once called, the background will start rendered until {@see Hide()} is called.
+         */
+        void Show();
+
         /**
         /**
          * Run each frame.
          * Run each frame.
          *
          *

+ 7 - 12
src/core/BattleManager.cpp

@@ -99,6 +99,7 @@ void BattleManager::StartBattle(const unsigned int id){
     CameraManager::getSingleton().SetBattleModule();
     CameraManager::getSingleton().SetBattleModule();
     DialogsManager::getSingleton().SetBattleModule();
     DialogsManager::getSingleton().SetBattleModule();
     EntityManager::getSingleton().SetBattleModule();
     EntityManager::getSingleton().SetBattleModule();
+    EntityManager::getSingleton().GetBackground2D()->Hide();
     InputManager::getSingleton().SetBattleModule();
     InputManager::getSingleton().SetBattleModule();
     ScriptManager::getSingleton().SetBattleModule();
     ScriptManager::getSingleton().SetBattleModule();
     UiManager::getSingleton().SetBattleModule();
     UiManager::getSingleton().SetBattleModule();
@@ -106,7 +107,7 @@ void BattleManager::StartBattle(const unsigned int id){
     // Load the formation XML file (name is dddd.xml)
     // Load the formation XML file (name is dddd.xml)
     std::string filename = std::to_string(formation_id_);
     std::string filename = std::to_string(formation_id_);
     while (filename.length() < 4) filename = "0" + filename;
     while (filename.length() < 4) filename = "0" + filename;
-    filename = "./data/game/formation/" + filename + ".xml";
+    filename = "./data/gamedata/formation/" + filename + ".xml";
     // This sets the data in the battle manager singleton.
     // This sets the data in the battle manager singleton.
     XmlFormationFile(filename).LoadFormation();
     XmlFormationFile(filename).LoadFormation();
     // TODO: Music
     // TODO: Music
@@ -142,7 +143,9 @@ void BattleManager::EndBattle(){
     CameraManager::getSingleton().SetPreviousModule();
     CameraManager::getSingleton().SetPreviousModule();
     DialogsManager::getSingleton().SetPreviousModule();
     DialogsManager::getSingleton().SetPreviousModule();
     EntityManager::getSingleton().SetPreviousModule();
     EntityManager::getSingleton().SetPreviousModule();
+    EntityManager::getSingleton().GetBackground2D()->Show();
     InputManager::getSingleton().SetPreviousModule();
     InputManager::getSingleton().SetPreviousModule();
+    ScriptManager::getSingleton().ClearBattle();
     ScriptManager::getSingleton().SetPreviousModule();
     ScriptManager::getSingleton().SetPreviousModule();
     UiManager::getSingleton().SetPreviousModule();
     UiManager::getSingleton().SetPreviousModule();
 }
 }
@@ -163,7 +166,7 @@ void BattleManager::AddEnemy(
     enemies_.push_back(*enemy);
     enemies_.push_back(*enemy);
     EntityManager::getSingleton().AddBattleEntity(
     EntityManager::getSingleton().AddBattleEntity(
       enemy->GetName() + "_" + std::to_string(enemies_.size() - 1),
       enemy->GetName() + "_" + std::to_string(enemies_.size() - 1),
-      "models/battle/enemy/" + enemy->GetModel() + ".mesh", enemy->GetPos(), Ogre::Degree(0),
+      "enemies/" + enemy->GetModel() + ".mesh", enemy->GetPos(), Ogre::Degree(0),
       Ogre::Vector3(MODEL_SCALE, MODEL_SCALE, MODEL_SCALE), id, visible
       Ogre::Vector3(MODEL_SCALE, MODEL_SCALE, MODEL_SCALE), id, visible
     );
     );
 }
 }
@@ -272,9 +275,8 @@ void BattleManager::LoadParty(){
     for (int i = 0; i < positions.size(); i ++){
     for (int i = 0; i < positions.size(); i ++){
         EntityManager::getSingleton().AddBattleEntity(
         EntityManager::getSingleton().AddBattleEntity(
           "party_" + std::to_string(i),
           "party_" + std::to_string(i),
-          "models/fields/entities/avfe.mesh", position, Ogre::Degree(0),
-          //Ogre::Vector3(MODEL_SCALE, MODEL_SCALE, MODEL_SCALE), 100 + i, true
-          Ogre::Vector3(0.1, 0.1, 0.1), 100 + i, true
+          "enemies/at_grunt.mesh", position, Ogre::Degree(0),
+          Ogre::Vector3(MODEL_SCALE, MODEL_SCALE, MODEL_SCALE), 100 + i, true
         );
         );
 
 
         // Next position in Y axis
         // Next position in Y axis
@@ -282,13 +284,6 @@ void BattleManager::LoadParty(){
 
 
 
 
     }
     }
-
-    EntityManager::getSingleton().AddBattleEntity(
-      "center", "models/fields/entities/avfe.mesh", position, Ogre::Degree(0),
-      //Ogre::Vector3(MODEL_SCALE, MODEL_SCALE, MODEL_SCALE), 100 + i, true
-      Ogre::Vector3(0.01, 0.01, 0.01), 999, true
-    );
-
 }
 }
 
 
 void BattleManager::UpdateField(){}
 void BattleManager::UpdateField(){}

+ 1 - 1
src/core/DebugDraw.cpp

@@ -64,7 +64,7 @@ DebugDraw::DebugDraw():
     pass->setDepthWriteEnabled(true);
     pass->setDepthWriteEnabled(true);
     pass->setLightingEnabled(false);
     pass->setLightingEnabled(false);
     pass->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
     pass->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
-    font_ = Ogre::FontManager::getSingleton().getByName("CourierNew");
+    font_ = Ogre::FontManager::getSingleton().getByName("CourierNew", "SYSTEM");
     if (font_ == nullptr){
     if (font_ == nullptr){
         LOG_ERROR("Could not find font \"CourierNew\" for debug draw.");
         LOG_ERROR("Could not find font \"CourierNew\" for debug draw.");
         throw std::runtime_error("Font load failure");
         throw std::runtime_error("Font load failure");

+ 2 - 3
src/core/DebugDraw.h

@@ -21,9 +21,8 @@
 #include <OgreSingleton.h>
 #include <OgreSingleton.h>
 #include <OgreFont.h>
 #include <OgreFont.h>
 
 
-class DebugDraw :
-  public Ogre::RenderQueueListener, public Ogre::Singleton<DebugDraw>
-{
+class DebugDraw : public Ogre::RenderQueueListener, public Ogre::Singleton<DebugDraw>{
+
     public:
     public:
 
 
         /**
         /**

+ 1 - 1
src/core/Enemy.cpp

@@ -239,7 +239,7 @@ void Enemy::SetCover(std::string cover){cover_ = cover;}
 void Enemy::ReadFromXml(){
 void Enemy::ReadFromXml(){
     std::string filename = std::to_string(id_);
     std::string filename = std::to_string(id_);
     while (filename.length() < 4) filename = "0" + filename;
     while (filename.length() < 4) filename = "0" + filename;
-    filename = "./data/game/enemy/" + filename + ".xml";
+    filename = "./data/gamedata/enemy/" + filename + ".xml";
     XmlEnemyFile(filename).LoadEnemy(*this);
     XmlEnemyFile(filename).LoadEnemy(*this);
 }
 }
 
 

+ 14 - 1
src/core/EntityModel.cpp

@@ -17,6 +17,7 @@
 #include <OgreEntity.h>
 #include <OgreEntity.h>
 #include <OgreRoot.h>
 #include <OgreRoot.h>
 #include "core/EntityModel.h"
 #include "core/EntityModel.h"
+#include "core/EntityManager.h"
 #include "core/Logger.h"
 #include "core/Logger.h"
 #include "core/Timer.h"
 #include "core/Timer.h"
 
 
@@ -25,8 +26,20 @@ EntityModel::EntityModel(
 ): Entity(name, node), animation_current_(nullptr)
 ): Entity(name, node), animation_current_(nullptr)
 {
 {
     Ogre::SceneManager* scene_manager;
     Ogre::SceneManager* scene_manager;
+    Ogre::String res_group;
+    switch(EntityManager::getSingleton().GetModule()){
+        case Manager::BATTLE:
+            res_group = "BATTLE_MODELS";
+            break;
+        case Manager::WORLD:
+            res_group = "WORLD_MODELS";
+            break;
+        case Manager::FIELD:
+        default:
+            res_group = "FIELD_MODELS";
+    }
     scene_manager = Ogre::Root::getSingleton().getSceneManager("Scene");
     scene_manager = Ogre::Root::getSingleton().getSceneManager("Scene");
-    model_ = scene_manager->createEntity(name_, file_name);
+    model_ = scene_manager->createEntity(name_, file_name, res_group);
     model_->setVisible(false);
     model_->setVisible(false);
     PlayAnimation(animation_default_, Entity::AUTO_ANIMATION, Entity::PLAY_LOOPED, 0, -1);
     PlayAnimation(animation_default_, Entity::AUTO_ANIMATION, Entity::PLAY_LOOPED, 0, -1);
     model_node_->attachObject(model_);
     model_node_->attachObject(model_);

+ 4 - 1
src/core/EntityModel.h

@@ -25,7 +25,10 @@ class EntityModel : public Entity{
     public:
     public:
 
 
         /**
         /**
-         * Constructor.
+         * Constructor. Creates an entity model.
+         *
+         * The models will be looked for in the resource groups FIELD_MODELS, BATTLE_MODELS or
+         * WORLD_MODELS, depending on the module the {@see EntityManager} is currerntly set to.
          *
          *
          * @param[in] name Entity name.
          * @param[in] name Entity name.
          * @param[in] file_name File with the model data.
          * @param[in] file_name File with the model data.

+ 14 - 2
src/core/ScriptManager.cpp

@@ -57,8 +57,9 @@ ScriptManager::ScriptManager():
     luaopen_io(lua_state_);
     luaopen_io(lua_state_);
     InitBinds();
     InitBinds();
     InitCmd();
     InitCmd();
+    // TODO: Use the one in data/ ?
     RunFile("system/system.lua");
     RunFile("system/system.lua");
-    XmlScriptsFile scripts("./data/scripts.xml");
+    XmlScriptsFile scripts("./data/scripts/_scripts.xml");
     scripts.LoadScripts();
     scripts.LoadScripts();
 }
 }
 
 
@@ -321,7 +322,18 @@ void ScriptManager::OnResize(){}
 
 
 void ScriptManager::ClearField(){}
 void ScriptManager::ClearField(){}
 
 
-void ScriptManager::ClearBattle(){}
+void ScriptManager::ClearBattle(){
+    // Remove all battle script entities.
+    // TODO: Allso remove them as node scenes.
+    for (unsigned int i = 0; i < script_entity_.size(); ++ i){
+        if (script_entity_[i].type == BATTLE){
+            while(script_entity_[i].queue.size() > 0)
+                ScriptManager::RemoveEntityTopScript(script_entity_[i]);
+            script_entity_.erase(script_entity_.begin() + i);
+            i --;
+        }
+    }
+}
 
 
 void ScriptManager::ClearWorld(){}
 void ScriptManager::ClearWorld(){}
 
 

+ 2 - 2
src/core/ScriptManagerBinds.h

@@ -60,9 +60,9 @@ void ScriptPrint(const char* text){
  */
  */
 void ScriptMap(const char* text){
 void ScriptMap(const char* text){
     EntityManager::getSingleton().Clear();
     EntityManager::getSingleton().Clear();
-    XmlMapsFile xml("./data/maps.xml");
+    XmlMapsFile xml("./data/fields/_fields.xml");
     Ogre::String file_name = xml.GetMapFileNameByName(text);
     Ogre::String file_name = xml.GetMapFileNameByName(text);
-    XmlMapFile xml_map("./data/" + file_name);
+    XmlMapFile xml_map("./data/fields/" + file_name);
     xml_map.LoadMap();
     xml_map.LoadMap();
 }
 }
 
 

+ 2 - 2
src/core/TextHandler.cpp

@@ -34,14 +34,14 @@ TextHandler::TextHandler(): language_(""){
 TextHandler::~TextHandler(){UnloadTexts();}
 TextHandler::~TextHandler(){UnloadTexts();}
 
 
 void TextHandler::LoadFieldText(const std::string file_name){
 void TextHandler::LoadFieldText(const std::string file_name){
-    XmlTextFile texts("./data/" + file_name);
+    XmlTextFile texts("./data/fields/" + file_name);
     texts.LoadTexts();
     texts.LoadTexts();
 }
 }
 
 
 void TextHandler::SetLanguage(const Ogre::String& language){
 void TextHandler::SetLanguage(const Ogre::String& language){
     language_ = language;
     language_ = language;
     UnloadTexts();
     UnloadTexts();
-    XmlTextsFile texts("./data/texts.xml");
+    XmlTextsFile texts("./data/texts/_texts.xml");
     texts.LoadTexts();
     texts.LoadTexts();
 }
 }
 
 

+ 2 - 2
src/core/UiManager.cpp

@@ -45,9 +45,9 @@ UiManager::~UiManager(){
 }
 }
 
 
 void UiManager::Initialise(){
 void UiManager::Initialise(){
-    XmlFontsFile fonts("./data/fonts.xml");
+    XmlFontsFile fonts("./data/fonts/_fonts.xml");
     fonts.LoadFonts();
     fonts.LoadFonts();
-    XmlScreensFile screens("./data/screens.xml");
+    XmlScreensFile screens("./data/screens/_screens.xml");
     screens.LoadScreens();
     screens.LoadScreens();
 }
 }
 
 

+ 1 - 1
src/core/UiManager.h

@@ -45,7 +45,7 @@ class UiManager :
         /**
         /**
          * Initializes the manager.
          * Initializes the manager.
          *
          *
-         * Loads all available fonts and screens from fonts.xml and
+         * Loads all available fonts and screens from _fonts.xml and
          * screens.xml, respectably.
          * screens.xml, respectably.
          */
          */
         void Initialise();
         void Initialise();

+ 3 - 3
src/core/UiSprite.cpp

@@ -13,6 +13,7 @@
  * GNU General Public License for more details.
  * GNU General Public License for more details.
  */
  */
 
 
+#include <iostream>
 #include <OgreHardwareBufferManager.h>
 #include <OgreHardwareBufferManager.h>
 #include <OgreMaterialManager.h>
 #include <OgreMaterialManager.h>
 #include <OgreTechnique.h>
 #include <OgreTechnique.h>
@@ -29,11 +30,10 @@ UiSprite::UiSprite(const Ogre::String& name, const Ogre::String& path_name, UiWi
 UiSprite::~UiSprite(){DestroyVertexBuffer();}
 UiSprite::~UiSprite(){DestroyVertexBuffer();}
 
 
 void UiSprite::Initialise(){
 void UiSprite::Initialise(){
+
     scene_manager_ = Ogre::Root::getSingleton().getSceneManager("Scene");
     scene_manager_ = Ogre::Root::getSingleton().getSceneManager("Scene");
     render_system_ = Ogre::Root::getSingletonPtr()->getRenderSystem();
     render_system_ = Ogre::Root::getSingletonPtr()->getRenderSystem();
-    material_ = Ogre::MaterialManager::getSingleton().create(
-      "UiMaterials." + path_name_, "General"
-    );
+    material_ = Ogre::MaterialManager::getSingleton().create("UiMaterials." + path_name_, "IMAGES");
     Ogre::Pass* pass = material_->getTechnique(0)->getPass(0);
     Ogre::Pass* pass = material_->getTechnique(0)->getPass(0);
     pass->setVertexColourTracking(Ogre::TVC_AMBIENT);
     pass->setVertexColourTracking(Ogre::TVC_AMBIENT);
     pass->setCullingMode(Ogre::CULL_NONE);
     pass->setCullingMode(Ogre::CULL_NONE);

+ 2 - 2
src/core/UiTextArea.cpp

@@ -296,11 +296,11 @@ void UiTextArea::SetFont(const Ogre::String& font){
         return;
         return;
     }
     }
     material_ = Ogre::MaterialManager::getSingleton().getByName(
     material_ = Ogre::MaterialManager::getSingleton().getByName(
-      "UiMaterials." + path_name_, "General"
+      "UiMaterials." + path_name_, "FONTS"
     );
     );
     if (material_ == nullptr){
     if (material_ == nullptr){
         material_ = Ogre::MaterialManager::getSingleton().create(
         material_ = Ogre::MaterialManager::getSingleton().create(
-          "UiMaterials." + path_name_, "General"
+          "UiMaterials." + path_name_, "FONTS"
         );
         );
     }
     }
     Ogre::Pass* pass = material_->getTechnique(0)->getPass(0);
     Ogre::Pass* pass = material_->getTechnique(0)->getPass(0);

+ 2 - 4
src/core/UiWidget.cpp

@@ -557,10 +557,8 @@ void UiWidget::SetColour(const float r, const float g, const float b){
 }
 }
 
 
 void UiWidget::SetColours(
 void UiWidget::SetColours(
-  const float r1, const float g1, const float b1,
-  const float r2, const float g2, const float b2,
-  const float r3, const float g3, const float b3,
-  const float r4, const float g4, const float b4
+  const float r1, const float g1, const float b1, const float r2, const float g2, const float b2,
+  const float r3, const float g3, const float b3, const float r4, const float g4, const float b4
 ){
 ){
     colour_1_.r = r1; colour_1_.g = g1; colour_1_.b = b1;
     colour_1_.r = r1; colour_1_.g = g1; colour_1_.b = b1;
     colour_2_.r = r2; colour_2_.g = g2; colour_2_.b = b2;
     colour_2_.r = r2; colour_2_.g = g2; colour_2_.b = b2;

+ 1 - 1
src/core/XmlFontsFile.cpp

@@ -32,7 +32,7 @@ void XmlFontsFile::LoadFonts(){
     node = node->FirstChild();
     node = node->FirstChild();
     while (node != nullptr){
     while (node != nullptr){
         if (node->Type() == TiXmlNode::TINYXML_ELEMENT && node->ValueStr() == "font"){
         if (node->Type() == TiXmlNode::TINYXML_ELEMENT && node->ValueStr() == "font"){
-            XmlFontFile font("./data/" + GetString(node, "file_name"));
+            XmlFontFile font("./data/fonts/" + GetString(node, "file_name"));
             font.LoadFont();
             font.LoadFont();
         }
         }
         node = node->NextSibling();
         node = node->NextSibling();

+ 3 - 3
src/core/XmlMapFile.cpp

@@ -40,7 +40,7 @@ void XmlMapFile::LoadMap(){
             if (!name.empty()){
             if (!name.empty()){
                 VGears::WalkmeshFileManager::getSingleton();
                 VGears::WalkmeshFileManager::getSingleton();
                 VGears::WalkmeshFilePtr walkmesh = VGears::WalkmeshFileManager::getSingleton()
                 VGears::WalkmeshFilePtr walkmesh = VGears::WalkmeshFileManager::getSingleton()
-                  .load(name, "Game").staticCast<VGears::WalkmeshFile>();
+                  .load(name, "FIELDS").staticCast<VGears::WalkmeshFile>();
                 EntityManager::getSingleton().GetWalkmesh()->load(walkmesh);
                 EntityManager::getSingleton().GetWalkmesh()->load(walkmesh);
             }
             }
         }
         }
@@ -56,7 +56,7 @@ void XmlMapFile::LoadMap(){
                 // TODO Migrate this code to a Resource and use it's group to load the background.
                 // TODO Migrate this code to a Resource and use it's group to load the background.
                 VGears::Background2DFilePtr background
                 VGears::Background2DFilePtr background
                   = VGears::Background2DFileManager::getSingleton()
                   = VGears::Background2DFileManager::getSingleton()
-                    .load(name, "Game").staticCast<VGears::Background2DFile>();
+                    .load(name, "FIELDS").staticCast<VGears::Background2DFile>();
                 EntityManager::getSingleton().GetBackground2D()->load(background);
                 EntityManager::getSingleton().GetBackground2D()->load(background);
             }
             }
         }
         }
@@ -116,7 +116,7 @@ void XmlMapFile::LoadMap(){
         }
         }
         else if (node->Type() == TiXmlNode::TINYXML_ELEMENT && node->ValueStr() == "script"){
         else if (node->Type() == TiXmlNode::TINYXML_ELEMENT && node->ValueStr() == "script"){
             Ogre::String file_name = GetString(node, "file_name");
             Ogre::String file_name = GetString(node, "file_name");
-            if (file_name != "") ScriptManager::getSingleton().RunFile(file_name);
+            if (file_name != "") ScriptManager::getSingleton().RunFile("fields/" + file_name);
         }
         }
         else if (node->Type() == TiXmlNode::TINYXML_ELEMENT && node->ValueStr() == "tracks"){
         else if (node->Type() == TiXmlNode::TINYXML_ELEMENT && node->ValueStr() == "tracks"){
             for (TiXmlNode* track = node->FirstChild(); track; track = track->NextSibling()){
             for (TiXmlNode* track = node->FirstChild(); track; track = track->NextSibling()){

+ 18 - 14
src/installer/BattleDataInstaller.cpp

@@ -208,9 +208,9 @@ unsigned int BattleDataInstaller::ProcessModel(){
         );
         );
         TexFile tex(battle_lgp_files_[next_model_to_process_]);
         TexFile tex(battle_lgp_files_[next_model_to_process_]);
         std::string path = output_dir_ + "models/battle/";
         std::string path = output_dir_ + "models/battle/";
-        if (info.is_player) path += "char/";
-        else if (info.is_scene) path += "scene/";
-        else path += "enemy/";
+        if (info.is_player) path += "characters/";
+        else if (info.is_scene) path += "scenes/";
+        else path += "enemies/";
         path += (id + type + "_" + info.name_normal + ".png");
         path += (id + type + "_" + info.name_normal + ".png");
         tex.SavePng(path);
         tex.SavePng(path);
         res_mgr_->declareResource(
         res_mgr_->declareResource(
@@ -265,11 +265,11 @@ unsigned int BattleDataInstaller::ConvertModel(){
     if (next_model_to_convert_ >= models_.size()) return models_.size();
     if (next_model_to_convert_ >= models_.size()) return models_.size();
     Model model = models_[next_model_to_convert_];
     Model model = models_[next_model_to_convert_];
     try{
     try{
-        std::string path = "models/battle/";
+        std::string path = "";
         FF7Data::BattleModelInfo info = FF7Data::GetBattleModelInfo(model.id);
         FF7Data::BattleModelInfo info = FF7Data::GetBattleModelInfo(model.id);
-        if (info.is_player) path += "char/";
-        else if (info.is_scene) path += "scene/";
-        else path += "enemy/";
+        if (info.is_player) path += "characters/";
+        else if (info.is_scene) path += "scenes/";
+        else path += "enemies/";
 
 
 
 
         DecompileHrc(
         DecompileHrc(
@@ -637,14 +637,14 @@ void BattleDataInstaller::WriteFormations(){
         xml.LinkEndChild(container.release());
         xml.LinkEndChild(container.release());
         std::string file_name = std::to_string(formation.id);
         std::string file_name = std::to_string(formation.id);
         while (file_name.length() < 4) file_name = "0" + file_name;
         while (file_name.length() < 4) file_name = "0" + file_name;
-        file_name = "game/formation/" + file_name + ".xml";
+        file_name = "gamedata/formation/" + file_name + ".xml";
         xml.SaveFile(output_dir_ + file_name);
         xml.SaveFile(output_dir_ + file_name);
         formation_map_[formation.id] = file_name;
         formation_map_[formation.id] = file_name;
     }
     }
 }
 }
 
 
 std::string BattleDataInstaller::BuildEnemyFileName(Enemy enemy){
 std::string BattleDataInstaller::BuildEnemyFileName(Enemy enemy){
-    std::string file_name = "game/enemy/";
+    std::string file_name = "gamedata/enemy/";
     std::string id = std::to_string(enemy.id);
     std::string id = std::to_string(enemy.id);
     while (id.size() < 4) id = "0" + id;
     while (id.size() < 4) id = "0" + id;
     /*file_name += (id + "_");
     /*file_name += (id + "_");
@@ -662,7 +662,7 @@ std::string BattleDataInstaller::BuildEnemyFileName(Enemy enemy){
 }
 }
 
 
 std::string BattleDataInstaller::BuildAttackFileName(Attack attack){
 std::string BattleDataInstaller::BuildAttackFileName(Attack attack){
-    std::string file_name = "game/attack/";
+    std::string file_name = "gamedata/attack/";
     std::string id = std::to_string(attack.id);
     std::string id = std::to_string(attack.id);
     while (id.size() < 4) id = "0" + id;
     while (id.size() < 4) id = "0" + id;
     file_name += (id + "_");
     file_name += (id + "_");
@@ -762,16 +762,18 @@ void BattleDataInstaller::ExportMesh(const std::string outdir, const Ogre::MeshP
     Ogre::SkeletonPtr skeleton(mesh->getSkeleton());
     Ogre::SkeletonPtr skeleton(mesh->getSkeleton());
     Ogre::SkeletonSerializer skeleton_serializer;
     Ogre::SkeletonSerializer skeleton_serializer;
     skeleton_serializer.exportSkeleton(
     skeleton_serializer.exportSkeleton(
-      skeleton.get(), output_dir_ + outdir + base_mesh_name + ".skeleton"
+      skeleton.get(), output_dir_ + "models/battle/" + outdir + base_mesh_name + ".skeleton"
     );
     );
     mesh->setSkeletonName(outdir + base_mesh_name + ".skeleton");
     mesh->setSkeletonName(outdir + base_mesh_name + ".skeleton");
-    mesh_serializer.exportMesh(mesh.get(), output_dir_ + outdir + mesh->getName());
+    mesh_serializer.exportMesh(
+      mesh.get(), output_dir_ + "models/battle/" + outdir + mesh->getName()
+    );
     Ogre::MaterialSerializer mat_ser;
     Ogre::MaterialSerializer mat_ser;
     std::set<std::string> textures;
     std::set<std::string> textures;
     Ogre::Mesh::SubMeshList sub_meshes = mesh->getSubMeshes();
     Ogre::Mesh::SubMeshList sub_meshes = mesh->getSubMeshes();
     for (Ogre::SubMesh* sub_mesh : sub_meshes){
     for (Ogre::SubMesh* sub_mesh : sub_meshes){
         // Change material name to avoid conflicts with field model materials.
         // Change material name to avoid conflicts with field model materials.
-        sub_mesh->setMaterialName(sub_mesh->getMaterialName() + "_btl");
+        sub_mesh->setMaterialName(sub_mesh->getMaterialName());
         Ogre::MaterialPtr mat(
         Ogre::MaterialPtr mat(
             Ogre::MaterialManager::getSingleton().getByName(sub_mesh->getMaterialName())
             Ogre::MaterialManager::getSingleton().getByName(sub_mesh->getMaterialName())
         );
         );
@@ -803,7 +805,9 @@ void BattleDataInstaller::ExportMesh(const std::string outdir, const Ogre::MeshP
             materials_.push_back(sub_mesh->getMaterialName());
             materials_.push_back(sub_mesh->getMaterialName());
         }
         }
     }
     }
-    mat_ser.exportQueued(output_dir_ + outdir + base_mesh_name + VGears::EXT_MATERIAL);
+    mat_ser.exportQueued(
+      output_dir_ + "models/battle/" + outdir + base_mesh_name + VGears::EXT_MATERIAL
+    );
 }
 }
 
 
 void BattleDataInstaller::GenerateRsdFiles(Model model, std::string path){
 void BattleDataInstaller::GenerateRsdFiles(Model model, std::string path){

+ 34 - 26
src/installer/DataInstaller.cpp

@@ -150,73 +150,73 @@ float DataInstaller::Progress(){
         case KERNEL_COMMANDS:
         case KERNEL_COMMANDS:
             write_output_line_("Extracting command data...", 2, true);
             write_output_line_("Extracting command data...", 2, true);
             kernel_installer_->ReadCommands();
             kernel_installer_->ReadCommands();
-            kernel_installer_->WriteCommands(output_dir_ + "game/commands.lua");
+            kernel_installer_->WriteCommands(output_dir_ + "gamedata/commands.lua");
             installation_state_ = KERNEL_ATTACKS;
             installation_state_ = KERNEL_ATTACKS;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_ATTACKS:
         case KERNEL_ATTACKS:
             write_output_line_("Extracting attack data...", 2, true);
             write_output_line_("Extracting attack data...", 2, true);
             kernel_installer_->ReadAttacks();
             kernel_installer_->ReadAttacks();
-            kernel_installer_->WriteAttacks(output_dir_ + "game/attacks.lua");
+            kernel_installer_->WriteAttacks(output_dir_ + "gamedata/attacks.lua");
             installation_state_ = KERNEL_CHARACTERS;
             installation_state_ = KERNEL_CHARACTERS;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_CHARACTERS:
         case KERNEL_CHARACTERS:
             write_output_line_("Extracting character data...", 2, true);
             write_output_line_("Extracting character data...", 2, true);
             kernel_installer_->ReadCharacters();
             kernel_installer_->ReadCharacters();
-            kernel_installer_->WriteCharacters(output_dir_ + "game/characters.lua");
+            kernel_installer_->WriteCharacters(output_dir_ + "gamedata/characters.lua");
             installation_state_ = KERNEL_ITEMS;
             installation_state_ = KERNEL_ITEMS;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_ITEMS:
         case KERNEL_ITEMS:
             write_output_line_("Extracting item data...", 2, true);
             write_output_line_("Extracting item data...", 2, true);
             kernel_installer_->ReadItems();
             kernel_installer_->ReadItems();
-            kernel_installer_->WriteItems(output_dir_ + "game/items.lua");
+            kernel_installer_->WriteItems(output_dir_ + "gamedata/items.lua");
             installation_state_ = KERNEL_GROWTH;
             installation_state_ = KERNEL_GROWTH;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_GROWTH:
         case KERNEL_GROWTH:
             write_output_line_("Extracting growth data...", 2, true);
             write_output_line_("Extracting growth data...", 2, true);
             kernel_installer_->ReadGrowth();
             kernel_installer_->ReadGrowth();
-            kernel_installer_->WriteGrowth(output_dir_ + "game/growth.lua");
+            kernel_installer_->WriteGrowth(output_dir_ + "gamedata/growth.lua");
             installation_state_ = KERNEL_WEAPONS;
             installation_state_ = KERNEL_WEAPONS;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_WEAPONS:
         case KERNEL_WEAPONS:
             write_output_line_("Extracting weapon data...", 2, true);
             write_output_line_("Extracting weapon data...", 2, true);
             kernel_installer_->ReadWeapons();
             kernel_installer_->ReadWeapons();
-            kernel_installer_->WriteWeapons(output_dir_ + "game/weapons.lua");
+            kernel_installer_->WriteWeapons(output_dir_ + "gamedata/weapons.lua");
             installation_state_ = KERNEL_ARMORS;
             installation_state_ = KERNEL_ARMORS;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_ARMORS:
         case KERNEL_ARMORS:
             write_output_line_("Extracting armor data...", 2, true);
             write_output_line_("Extracting armor data...", 2, true);
             kernel_installer_->ReadArmors();
             kernel_installer_->ReadArmors();
-            kernel_installer_->WriteArmors(output_dir_ + "game/armors.lua");
+            kernel_installer_->WriteArmors(output_dir_ + "gamedata/armors.lua");
             installation_state_ = KERNEL_ACCESSORIES;
             installation_state_ = KERNEL_ACCESSORIES;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_ACCESSORIES:
         case KERNEL_ACCESSORIES:
             write_output_line_("Extracting accessory data...", 2, true);
             write_output_line_("Extracting accessory data...", 2, true);
             kernel_installer_->ReadAccessories();
             kernel_installer_->ReadAccessories();
-            kernel_installer_->WriteAccessories(output_dir_ + "game/accessories.lua");
+            kernel_installer_->WriteAccessories(output_dir_ + "gamedata/accessories.lua");
             installation_state_ = KERNEL_MATERIA;
             installation_state_ = KERNEL_MATERIA;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_MATERIA:
         case KERNEL_MATERIA:
             write_output_line_("Extracting materia data...", 2, true);
             write_output_line_("Extracting materia data...", 2, true);
             kernel_installer_->ReadMateria();
             kernel_installer_->ReadMateria();
-            kernel_installer_->WriteMateria(output_dir_ + "game/materia.lua");
+            kernel_installer_->WriteMateria(output_dir_ + "gamedata/materia.lua");
             installation_state_ = KERNEL_KEY_ITEMS;
             installation_state_ = KERNEL_KEY_ITEMS;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_KEY_ITEMS:
         case KERNEL_KEY_ITEMS:
             write_output_line_("Extracting key item data...", 2, true);
             write_output_line_("Extracting key item data...", 2, true);
             kernel_installer_->ReadKeyItems();
             kernel_installer_->ReadKeyItems();
-            kernel_installer_->WriteKeyItems(output_dir_ + "game/key_items.lua");
+            kernel_installer_->WriteKeyItems(output_dir_ + "gamedata/key_items.lua");
             installation_state_ = KERNEL_SUMMON_NAMES;
             installation_state_ = KERNEL_SUMMON_NAMES;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_SUMMON_NAMES:
         case KERNEL_SUMMON_NAMES:
             write_output_line_("Extracting summon attack names data...", 2, true);
             write_output_line_("Extracting summon attack names data...", 2, true);
             kernel_installer_->ReadSummonNames();
             kernel_installer_->ReadSummonNames();
-            kernel_installer_->WriteSummonNames(output_dir_ + "game/summons.lua");
+            kernel_installer_->WriteSummonNames(output_dir_ + "gamedata/summons.lua");
             installation_state_ = KERNEL_SAVEMAP;
             installation_state_ = KERNEL_SAVEMAP;
             return CalcProgress();
             return CalcProgress();
         case KERNEL_SAVEMAP:
         case KERNEL_SAVEMAP:
             write_output_line_("Extracting the initial savemap...", 2, true);
             write_output_line_("Extracting the initial savemap...", 2, true);
             kernel_installer_->ReadInitialSaveMap();
             kernel_installer_->ReadInitialSaveMap();
-            kernel_installer_->WriteInitialSaveMap(output_dir_ + "game/initial_savemap.lua");
+            kernel_installer_->WriteInitialSaveMap(output_dir_ + "gamedata/initial_savemap.lua");
             installation_state_ = MEDIA_IMAGES;
             installation_state_ = MEDIA_IMAGES;
             return CalcProgress();
             return CalcProgress();
         case MEDIA_IMAGES:
         case MEDIA_IMAGES:
@@ -381,25 +381,33 @@ const float DataInstaller::CalcProgress(){
 }
 }
 
 
 void DataInstaller::CreateDirectories(){
 void DataInstaller::CreateDirectories(){
+    CreateDir("audio/musics");
+    CreateDir("audio/sounds");
+    CreateDir("fields");
+    CreateDir("fonts");
     CreateDir("temp");
     CreateDir("temp");
     CreateDir("temp/char");
     CreateDir("temp/char");
     CreateDir("temp/battle_models");
     CreateDir("temp/battle_models");
-    CreateDir("game");
-    CreateDir("game/enemy");
-    CreateDir("game/attack");
-    CreateDir("game/formation");
+    CreateDir("gamedata");
+    CreateDir("gamedata/enemy");
+    CreateDir("gamedata/attack");
+    CreateDir("gamedata/formation");
     CreateDir("images/icons");
     CreateDir("images/icons");
     CreateDir("images/other");
     CreateDir("images/other");
     CreateDir("images/characters");
     CreateDir("images/characters");
     CreateDir("images/fonts");
     CreateDir("images/fonts");
     CreateDir("images/reels");
     CreateDir("images/reels");
     CreateDir("images/window");
     CreateDir("images/window");
-    CreateDir("models/fields/entities");
-    CreateDir("models/battle/char");
-    CreateDir("models/battle/scene");
-    CreateDir("models/battle/enemy");
-    CreateDir("audio/sound");
-    CreateDir("audio/music");
+    CreateDir("screens");
+    CreateDir("scripts");
+    CreateDir("system");
+    CreateDir("texts");
+    CreateDir("models/fields/");
+    CreateDir("models/battle/characters");
+    CreateDir("models/battle/scenes");
+    CreateDir("models/battle/enemies");
+
+
     application_.ResMgr()->addResourceLocation(
     application_.ResMgr()->addResourceLocation(
       output_dir_ + "temp/char/", "FileSystem", "FFVII", true, true
       output_dir_ + "temp/char/", "FileSystem", "FFVII", true, true
     );
     );
@@ -410,16 +418,16 @@ void DataInstaller::CreateDirectories(){
       output_dir_ + "models/", "FileSystem", "FFVII", true, true
       output_dir_ + "models/", "FileSystem", "FFVII", true, true
     );
     );
     application_.ResMgr()->addResourceLocation(
     application_.ResMgr()->addResourceLocation(
-      output_dir_ + "models/fields/entities/", "FileSystem", "FFVIITextures", true, true
+      output_dir_ + "models/fields/", "FileSystem", "FFVIITextures", true, true
     );
     );
     application_.ResMgr()->addResourceLocation(
     application_.ResMgr()->addResourceLocation(
-      output_dir_ + "models/battle/char/", "FileSystem", "FFVIITextures", true, true
+      output_dir_ + "models/battle/characters/", "FileSystem", "FFVIITextures", true, true
     );
     );
     application_.ResMgr()->addResourceLocation(
     application_.ResMgr()->addResourceLocation(
-      output_dir_ + "models/battle/scene/", "FileSystem", "FFVIITextures", true, true
+      output_dir_ + "models/battle/scenes/", "FileSystem", "FFVIITextures", true, true
     );
     );
     application_.ResMgr()->addResourceLocation(
     application_.ResMgr()->addResourceLocation(
-      output_dir_ + "models/battle/enemy/", "FileSystem", "FFVIITextures", true, true
+      output_dir_ + "models/battle/enemies/", "FileSystem", "FFVIITextures", true, true
     );
     );
     fields_lgp_ = std::make_unique<ScopedLgp>(
     fields_lgp_ = std::make_unique<ScopedLgp>(
       application_.getRoot(), input_dir_ + "data/field/flevel.lgp", "LGP", "FFVIIFields"
       application_.getRoot(), input_dir_ + "data/field/flevel.lgp", "LGP", "FFVIIFields"

+ 17 - 28
src/installer/FieldDataInstaller.cpp

@@ -27,7 +27,7 @@
 
 
 float FieldDataInstaller::LINE_SCALE_FACTOR(0.0078124970964f);
 float FieldDataInstaller::LINE_SCALE_FACTOR(0.0078124970964f);
 
 
-std::string FieldDataInstaller::FIELD_MODELS_DIR("models/fields/entities");
+std::string FieldDataInstaller::FIELD_MODELS_DIR("models/fields");
 
 
 std::string FieldDataInstaller::FIELD_MAPS_DIR("fields");
 std::string FieldDataInstaller::FIELD_MAPS_DIR("fields");
 
 
@@ -290,13 +290,13 @@ void FieldDataInstaller::Write(int field_index){
     //write_output_line_("Writing field " + FieldName(map));
     //write_output_line_("Writing field " + FieldName(map));
     std::unique_ptr<TiXmlElement> xml_element(new TiXmlElement("map"));
     std::unique_ptr<TiXmlElement> xml_element(new TiXmlElement("map"));
     xml_element->SetAttribute("name", map);
     xml_element->SetAttribute("name", map);
-    xml_element->SetAttribute("file_name", FIELD_MAPS_DIR + "/" + map + "/map.xml");
+    xml_element->SetAttribute("file_name", map + "/map.xml");
     element_->LinkEndChild(xml_element.release());
     element_->LinkEndChild(xml_element.release());
 }
 }
 
 
 void FieldDataInstaller::WriteEnd(){
 void FieldDataInstaller::WriteEnd(){
     doc_->LinkEndChild(element_.release());
     doc_->LinkEndChild(element_.release());
-    doc_->SaveFile(output_dir_ + "/maps.xml");
+    doc_->SaveFile(output_dir_ + "/fields/_fields.xml");
 }
 }
 
 
 std::vector<std::string> FieldDataInstaller::ConvertModelsInit(){
 std::vector<std::string> FieldDataInstaller::ConvertModelsInit(){
@@ -375,7 +375,7 @@ void FieldDataInstaller::ExportMesh(const std::string outdir, const Ogre::MeshPt
     skeleton_serializer.exportSkeleton(
     skeleton_serializer.exportSkeleton(
       skeleton.getPointer(), outdir + base_mesh_name + ".skeleton"
       skeleton.getPointer(), outdir + base_mesh_name + ".skeleton"
     );
     );
-    mesh->setSkeletonName(FIELD_MODELS_DIR + "/" + base_mesh_name + ".skeleton");
+    mesh->setSkeletonName(base_mesh_name + ".skeleton");
     mesh_serializer.exportMesh(mesh.getPointer(), outdir + mesh->getName());
     mesh_serializer.exportMesh(mesh.getPointer(), outdir + mesh->getName());
     Ogre::Mesh::SubMeshIterator it(mesh->getSubMeshIterator());
     Ogre::Mesh::SubMeshIterator it(mesh->getSubMeshIterator());
     Ogre::MaterialSerializer    mat_ser;
     Ogre::MaterialSerializer    mat_ser;
@@ -412,10 +412,7 @@ void FieldDataInstaller::ExportMesh(const std::string outdir, const Ogre::MeshPt
                                     VGears::StringUtil::splitBase(
                                     VGears::StringUtil::splitBase(
                                       unit->getTextureName(), base_name
                                       unit->getTextureName(), base_name
                                     );
                                     );
-                                    unit->setTextureName(
-                                      FIELD_MODELS_DIR + "/" + base_mesh_name
-                                      + "_" + base_name + ".png"
-                                    );
+                                    unit->setTextureName(base_mesh_name + "_" + base_name + ".png");
 
 
                                     tex.SavePng(
                                     tex.SavePng(
                                       output_dir_ + FIELD_MODELS_DIR + "/" + base_name + ".png", 0
                                       output_dir_ + FIELD_MODELS_DIR + "/" + base_name + ".png", 0
@@ -556,33 +553,23 @@ void FieldDataInstaller::PcFieldToVGearsField(VGears::FLevelFilePtr& field){
         std::unique_ptr<TiXmlElement> element(new TiXmlElement("map"));
         std::unique_ptr<TiXmlElement> element(new TiXmlElement("map"));
         // Script.
         // Script.
         std::unique_ptr<TiXmlElement> xml_script_element(new TiXmlElement("script"));
         std::unique_ptr<TiXmlElement> xml_script_element(new TiXmlElement("script"));
-        xml_script_element->SetAttribute(
-          "file_name", FIELD_MAPS_DIR + "/" + field->getName() + "/script.lua"
-        );
+        xml_script_element->SetAttribute("file_name", field->getName() + "/script.lua");
         element->LinkEndChild(xml_script_element.release());
         element->LinkEndChild(xml_script_element.release());
         // Background.
         // Background.
         std::unique_ptr<TiXmlElement> xml_background_2d(new TiXmlElement("background2d"));
         std::unique_ptr<TiXmlElement> xml_background_2d(new TiXmlElement("background2d"));
-        xml_background_2d->SetAttribute(
-          "file_name", FIELD_MAPS_DIR + "/" + field->getName() + "/bg.xml"
-        );
+        xml_background_2d->SetAttribute("file_name", field->getName() + "/bg.xml");
         element->LinkEndChild(xml_background_2d.release());
         element->LinkEndChild(xml_background_2d.release());
         // Texts.
         // Texts.
         std::unique_ptr<TiXmlElement> xml_texts(new TiXmlElement("texts"));
         std::unique_ptr<TiXmlElement> xml_texts(new TiXmlElement("texts"));
-        xml_texts->SetAttribute(
-          "file_name", FIELD_MAPS_DIR + "/" + field->getName() + "/text.xml"
-        );
+        xml_texts->SetAttribute("file_name", field->getName() + "/text.xml");
         element->LinkEndChild(xml_texts.release());
         element->LinkEndChild(xml_texts.release());
         // Walkmesh.
         // Walkmesh.
         std::unique_ptr<TiXmlElement> xml_walkmesh(new TiXmlElement("walkmesh"));
         std::unique_ptr<TiXmlElement> xml_walkmesh(new TiXmlElement("walkmesh"));
-        xml_walkmesh->SetAttribute(
-          "file_name", FIELD_MAPS_DIR + "/" + field->getName() + "/wm.xml"
-        );
+        xml_walkmesh->SetAttribute("file_name", field->getName() + "/wm.xml");
         element->LinkEndChild(xml_walkmesh.release());
         element->LinkEndChild(xml_walkmesh.release());
         // Forward direction (angle player moves when "up" is pressed)
         // Forward direction (angle player moves when "up" is pressed)
         std::unique_ptr<TiXmlElement> xml_forward_direction(new TiXmlElement("movement_rotation"));
         std::unique_ptr<TiXmlElement> xml_forward_direction(new TiXmlElement("movement_rotation"));
-        xml_forward_direction->SetAttribute(
-          "degree", std::to_string(triggers->MovementRotation())
-        );
+        xml_forward_direction->SetAttribute("degree", std::to_string(triggers->MovementRotation()));
         element->LinkEndChild(xml_forward_direction.release());
         element->LinkEndChild(xml_forward_direction.release());
         // Get this fields Id.
         // Get this fields Id.
         const size_t this_field_id = GetFieldId(field->getName(), map_list_);
         const size_t this_field_id = GetFieldId(field->getName(), map_list_);
@@ -691,7 +678,8 @@ void FieldDataInstaller::PcFieldToVGearsField(VGears::FLevelFilePtr& field){
             }
             }
             const int char_id = entity.char_id;
             const int char_id = entity.char_id;
             if (char_id != -1){
             if (char_id != -1){
-                const VGears::ModelListFile::ModelDescription& desc = models->GetModels().at(char_id);
+                const VGears::ModelListFile::ModelDescription& desc
+                  = models->GetModels().at(char_id);
                 auto& animations = used_models_and_anims_.ModelAnimations(desc.hrc_name);
                 auto& animations = used_models_and_anims_.ModelAnimations(desc.hrc_name);
                 for (const auto& anim : desc.animations)
                 for (const auto& anim : desc.animations)
                     animations.insert(used_models_and_anims_.NormalizeAnimationName(anim.name));
                     animations.insert(used_models_and_anims_.NormalizeAnimationName(anim.name));
@@ -701,8 +689,7 @@ void FieldDataInstaller::PcFieldToVGearsField(VGears::FLevelFilePtr& field){
                 auto lower_case_hrc_name = desc.hrc_name;
                 auto lower_case_hrc_name = desc.hrc_name;
                 VGears::StringUtil::toLowerCase(lower_case_hrc_name);
                 VGears::StringUtil::toLowerCase(lower_case_hrc_name);
                 xml_entity_script->SetAttribute(
                 xml_entity_script->SetAttribute(
-                  "file_name",
-                  FIELD_MODELS_DIR + "/" + used_models_and_anims_.ModelMetaDataName(lower_case_hrc_name)
+                  "file_name", used_models_and_anims_.ModelMetaDataName(lower_case_hrc_name)
                 );
                 );
                 xml_entity_script->SetAttribute("index", entity.index);
                 xml_entity_script->SetAttribute("index", entity.index);
                 if (desc.type == VGears::ModelListFile::PLAYER){
                 if (desc.type == VGears::ModelListFile::PLAYER){
@@ -805,7 +792,7 @@ void FieldDataInstaller::PcFieldToVGearsField(VGears::FLevelFilePtr& field){
             const int min_y = triggers->GetCameraRange().top * BG_SCALE_UP_FACTOR;
             const int min_y = triggers->GetCameraRange().top * BG_SCALE_UP_FACTOR;
             const int max_x = triggers->GetCameraRange().right * BG_SCALE_UP_FACTOR;
             const int max_x = triggers->GetCameraRange().right * BG_SCALE_UP_FACTOR;
             const int max_y = triggers->GetCameraRange().bottom * BG_SCALE_UP_FACTOR;
             const int max_y = triggers->GetCameraRange().bottom * BG_SCALE_UP_FACTOR;
-            bg_element->SetAttribute("image", FIELD_MAPS_DIR + "/" + field->getName() + "/tiles.png");
+            bg_element->SetAttribute("image", field->getName() + "/tiles.png");
             bg_element->SetAttribute("position", Ogre::StringConverter::toString(position));
             bg_element->SetAttribute("position", Ogre::StringConverter::toString(position));
             bg_element->SetAttribute("orientation", Ogre::StringConverter::toString(orientation));
             bg_element->SetAttribute("orientation", Ogre::StringConverter::toString(orientation));
             bg_element->SetAttribute("fov", Ogre::StringConverter::toString(fov));
             bg_element->SetAttribute("fov", Ogre::StringConverter::toString(fov));
@@ -871,7 +858,9 @@ void FieldDataInstaller::PcFieldToVGearsField(VGears::FLevelFilePtr& field){
                 //}
                 //}
             }
             }
             bg_doc.LinkEndChild(bg_element.release());
             bg_doc.LinkEndChild(bg_element.release());
-            bg_doc.SaveFile(output_dir_ + "/" + FIELD_MAPS_DIR + "/" + field->getName() + "/bg.xml");
+            bg_doc.SaveFile(
+              output_dir_ + "/" + FIELD_MAPS_DIR + "/" + field->getName() + "/bg.xml"
+            );
         }
         }
     }
     }
     {
     {

+ 11 - 11
src/installer/MediaDataInstaller.cpp

@@ -349,7 +349,7 @@ bool MediaDataInstaller::InstallSounds(){
 
 
     dat_.SetOffset(header.offset);
     dat_.SetOffset(header.offset);
     std::ofstream out(
     std::ofstream out(
-      output_dir_ + "audio/sound/" + std::to_string(processed_sounds_) + ".wav",
+      output_dir_ + "audio/sounds/" + std::to_string(processed_sounds_) + ".wav",
       std::ios::out | std::ios::binary
       std::ios::out | std::ios::binary
     );
     );
 
 
@@ -364,18 +364,18 @@ bool MediaDataInstaller::InstallSounds(){
     // TODO: Don't use system calls! Integrate libav or something that can do the conversion
     // TODO: Don't use system calls! Integrate libav or something that can do the conversion
     // natively
     // natively
     std::string command = (boost::format(
     std::string command = (boost::format(
-      "ffmpeg -hide_banner -loglevel panic -y -i %1%audio/sound/%2%.wav %1%audio/sound/%2%.ogg"
+      "ffmpeg -hide_banner -loglevel panic -y -i %1%audio/sounds/%2%.wav %1%audio/sounds/%2%.ogg"
     ) % output_dir_ % processed_sounds_).str();
     ) % output_dir_ % processed_sounds_).str();
     if (!no_ffmpeg_) std::system(command.c_str());
     if (!no_ffmpeg_) std::system(command.c_str());
 
 
     // Remove the wav file.
     // Remove the wav file.
     if (!keep_originals_){
     if (!keep_originals_){
         std::remove(
         std::remove(
-          (output_dir_ + "audio/sound/" + std::to_string(processed_sounds_) + ".wav").c_str()
+          (output_dir_ + "audio/sounds/" + std::to_string(processed_sounds_) + ".wav").c_str()
         );
         );
     }
     }
 
 
-    sounds_.push_back("audio/sound/" + std::to_string(processed_sounds_) + ".ogg");
+    sounds_.push_back("audio/sounds/" + std::to_string(processed_sounds_) + ".ogg");
     processed_sounds_ ++;
     processed_sounds_ ++;
     if (processed_sounds_ >= TOTAL_SOUNDS) return true;
     if (processed_sounds_ >= TOTAL_SOUNDS) return true;
     else return false;
     else return false;
@@ -400,7 +400,7 @@ void MediaDataInstaller::WriteSoundIndex(){
         }
         }
     }
     }
     xml.LinkEndChild(container.release());
     xml.LinkEndChild(container.release());
-    xml.SaveFile(output_dir_ + "sounds.xml");
+    xml.SaveFile(output_dir_ + "audio/sounds/_sounds.xml");
 }
 }
 
 
 int MediaDataInstaller::InstallMusicsInit(){
 int MediaDataInstaller::InstallMusicsInit(){
@@ -442,21 +442,21 @@ bool MediaDataInstaller::InstallMusics(){
     File midi(input_dir_ + "data/midi/midi.lgp");
     File midi(input_dir_ + "data/midi/midi.lgp");
 
 
     std::fstream out;
     std::fstream out;
-    out.open(output_dir_ + "audio/music/" + std::to_string(index) + ".mid", std::ios::out);
+    out.open(output_dir_ + "audio/musics/" + std::to_string(index) + ".mid", std::ios::out);
     midi.SetOffset(f.data_offset);
     midi.SetOffset(f.data_offset);
     for (int j = 0; j < f.data_size; j ++) out << midi.readU8();
     for (int j = 0; j < f.data_size; j ++) out << midi.readU8();
     out.close();
     out.close();
 
 
     // Convert to ogg (TiMidity + FFMpeg)
     // Convert to ogg (TiMidity + FFMpeg)
     std::string command = (boost::format(
     std::string command = (boost::format(
-      "timidity --quiet=3 %1%audio/music/%2%.mid -Ow -o - "
-      "| ffmpeg -hide_banner -loglevel panic -y -i - %1%audio/music/%2%.ogg"
+      "timidity --quiet=3 %1%audio/musics/%2%.mid -Ow -o - "
+      "| ffmpeg -hide_banner -loglevel panic -y -i - %1%audio/musics/%2%.ogg"
     ) % output_dir_ % index).str();
     ) % output_dir_ % index).str();
     if (!no_ffmpeg_ && !no_timidity_) std::system(command.c_str());
     if (!no_ffmpeg_ && !no_timidity_) std::system(command.c_str());
 
 
     // Remove the midi file.
     // Remove the midi file.
     if (!keep_originals_)
     if (!keep_originals_)
-        std::remove((output_dir_ + "audio/music/" + std::to_string(index) + ".mid").c_str());
+        std::remove((output_dir_ + "audio/musics/" + std::to_string(index) + ".mid").c_str());
 
 
     musics_.push_back("audio/music/" + std::to_string(processed_musics_) + ".ogg");
     musics_.push_back("audio/music/" + std::to_string(processed_musics_) + ".ogg");
     processed_musics_ ++;
     processed_musics_ ++;
@@ -477,7 +477,7 @@ void MediaDataInstaller::InstallHQMusics(){
         }
         }
 
 
         std::string command = (boost::format(
         std::string command = (boost::format(
-          "ffmpeg -hide_banner -loglevel panic -y -i %1%music/%2%.wav %3%audio/sound/%4%.ogg"
+          "ffmpeg -hide_banner -loglevel panic -y -i %1%musics/%2%.wav %3%audio/sounds/%4%.ogg"
         ) % input_dir_ % hq_music % output_dir_ % index).str();
         ) % input_dir_ % hq_music % output_dir_ % index).str();
         if (!no_ffmpeg_)  std::system(command.c_str());
         if (!no_ffmpeg_)  std::system(command.c_str());
     }
     }
@@ -504,6 +504,6 @@ void MediaDataInstaller::WriteMusicsIndex(){
         }
         }
     }
     }
     xml.LinkEndChild(container.release());
     xml.LinkEndChild(container.release());
-    xml.SaveFile(output_dir_ + "musics.xml");
+    xml.SaveFile(output_dir_ + "audio/musics/_musics.xml");
 }
 }
 
 

+ 1 - 1
src/installer/decompiler/field/instruction/FieldModuleInstruction.cpp

@@ -107,7 +107,7 @@ void FieldModuleInstruction::ProcessBATTLE(CodeGenerator* code_gen){
     const auto& battle_id = FieldCodeGenerator::FormatValueOrVariable(
     const auto& battle_id = FieldCodeGenerator::FormatValueOrVariable(
       cg->GetFormatter(), params_[0]->GetUnsigned(), params_[1]->GetUnsigned()
       cg->GetFormatter(), params_[0]->GetUnsigned(), params_[1]->GetUnsigned()
     );
     );
-    code_gen->AddOutputLine((boost::format("attle_manager:start_battle(%1%)") % battle_id).str());
+    code_gen->AddOutputLine((boost::format("battle_manager:start_battle(%1%)") % battle_id).str());
 }
 }
 
 
 void FieldModuleInstruction::ProcessBTLON(CodeGenerator* code_gen){
 void FieldModuleInstruction::ProcessBTLON(CodeGenerator* code_gen){

+ 35 - 9
src/main.cpp

@@ -62,8 +62,7 @@ int main(int argc, char *argv[]){
         Ogre::SceneManager *scene_manager(nullptr);
         Ogre::SceneManager *scene_manager(nullptr);
 
 
         auto timer = std::make_unique<Timer>();
         auto timer = std::make_unique<Timer>();
-        auto particle_system_manager =
-          std::make_unique<ParticleSystemManager>();
+        auto particle_system_manager = std::make_unique<ParticleSystemManager>();
 
 
         // Set scene camera and viewport for other modules.
         // Set scene camera and viewport for other modules.
         // Create this before initialize particle because some of them use
         // Create this before initialize particle because some of them use
@@ -81,16 +80,44 @@ int main(int argc, char *argv[]){
         //VGears::MapFileManager* worldManager = new VGears::MapFileManager();
         //VGears::MapFileManager* worldManager = new VGears::MapFileManager();
 
 
         // Initialize resources.
         // Initialize resources.
-        // TODO: Use correct file location in the end, now is OK for testing
         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
-          ".", "FileSystem"
+          "./data/system/", "FileSystem"
         );
         );
         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
-          "./data/wm", "FileSystem", "TEST"
+          "./data/audio/", "FileSystem", "AUDIO"
         );
         );
         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
-          "./data/wm/world_us.lgp",
-          VGears::LGPArchiveFactory::ARCHIVE_TYPE, "TEST"
+          "./data/fields/", "FileSystem", "FIELDS", true
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/fonts/", "FileSystem", "FONTS"
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/gamedata/", "FileSystem", "GAMEDATA"
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/images/", "FileSystem", "IMAGES", true
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/models/fields/", "FileSystem", "FIELD_MODELS"
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/models/battle/", "FileSystem", "BATTLE_MODELS", true
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/screens/", "FileSystem", "SCREENS"
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/scripts/", "FileSystem", "SCRIPTS"
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/system/", "FileSystem", "SYSTEM"
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/texts/", "FileSystem", "TEXTS"
+        );
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
+          "./data/wm", "FileSystem", "WORLD_MAP"
         );
         );
         Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
         Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
 
 
@@ -126,8 +153,7 @@ int main(int argc, char *argv[]){
 
 
         // Execute the configuration file to locad values.
         // Execute the configuration file to locad values.
         ConfigFile config;
         ConfigFile config;
-        config.Execute("./data/config.cfg");
-
+        config.Execute("./data/config/config.cfg");
 
 
         // Initialize UID and run it's scripts.
         // Initialize UID and run it's scripts.
         ui_manager->Initialise();
         ui_manager->Initialise();

+ 5 - 12
src/map/VGearsBackground2DFile.cpp

@@ -24,9 +24,8 @@ namespace VGears{
 
 
 
 
     Background2DFile::Background2DFile(
     Background2DFile::Background2DFile(
-      Ogre::ResourceManager *creator, const String &name,
-      Ogre::ResourceHandle handle, const String &group, bool is_manual,
-      Ogre::ManualResourceLoader *loader
+      Ogre::ResourceManager *creator, const String &name, Ogre::ResourceHandle handle,
+      const String &group, bool is_manual, Ogre::ManualResourceLoader *loader
     ) : Resource(creator, name, handle, group, is_manual, loader){}
     ) : Resource(creator, name, handle, group, is_manual, loader){}
 
 
     Background2DFile::~Background2DFile(){unload();}
     Background2DFile::~Background2DFile(){unload();}
@@ -51,9 +50,7 @@ namespace VGears{
 
 
     size_t Background2DFile::calculateSize() const{return 0;}
     size_t Background2DFile::calculateSize() const{return 0;}
 
 
-    void Background2DFile::SetTextureName(const String &texture_name){
-        texture_name_ = texture_name;
-    }
+    void Background2DFile::SetTextureName(const String &texture_name){texture_name_ = texture_name;}
 
 
     String Background2DFile::GetTextureName() const{ return texture_name_;}
     String Background2DFile::GetTextureName() const{ return texture_name_;}
 
 
@@ -65,9 +62,7 @@ namespace VGears{
 
 
     Ogre::Vector4 Background2DFile::GetRange() const{return range_;}
     Ogre::Vector4 Background2DFile::GetRange() const{return range_;}
 
 
-    void Background2DFile::SetPosition(const Ogre::Vector3 &position){
-        position_ = position;
-    }
+    void Background2DFile::SetPosition(const Ogre::Vector3 &position){position_ = position;}
 
 
     Ogre::Vector3 Background2DFile::GetPosition() const{return position_;}
     Ogre::Vector3 Background2DFile::GetPosition() const{return position_;}
 
 
@@ -75,9 +70,7 @@ namespace VGears{
         orientation_ = orientation;
         orientation_ = orientation;
     }
     }
 
 
-    Ogre::Quaternion Background2DFile::GetOrientation() const{
-        return orientation_;
-    }
+    Ogre::Quaternion Background2DFile::GetOrientation() const{return orientation_;}
 
 
     void Background2DFile::SetFov(const Ogre::Radian &fov){fov_ = fov;}
     void Background2DFile::SetFov(const Ogre::Radian &fov){fov_ = fov;}
 
 

+ 8 - 13
src/map/VGearsBackground2DFile.h

@@ -33,20 +33,16 @@ namespace VGears{
             /**
             /**
              * Constructor.
              * Constructor.
              *
              *
-             * @param[in] creator Pointer to the ResourceManager that is
-             * creating this resource.
+             * @param[in] creator Pointer to the ResourceManager that is creating this resource.
              * @param[in] name The unique name of the resource.
              * @param[in] name The unique name of the resource.
              * @param[in] handle @todo Understand and document.
              * @param[in] handle @todo Understand and document.
-             * @param[in] group The name of the resource group to which this
-             * resource belong.
-             * @param[in] is_manual True if the resource is manually loaded,
-             * false otherwise.
-             * @param[in] loader Pointer to a ManualResourceLoader
-             * implementation which will be called when the Resource wishes to
-             * load (should be supplied if is_manual is set to true). It can be
-             * null, but the Resource will never be able to reload if anything
-             * ever causes it to unload. Therefore provision of a proper
-             * ManualResourceLoader instance is strongly recommended.
+             * @param[in] group The name of the resource group to which this resource belong.
+             * @param[in] is_manual True if the resource is manually loaded, false otherwise.
+             * @param[in] loader Pointer to a ManualResourceLoader implementation which will be
+             * called when the Resource wishes to load (should be supplied if is_manual is set to
+             * true). It can be null, but the Resource will never be able to reload if anything
+             * ever causes it to unload. Therefore provision of a proper ManualResourceLoader
+             * instance is strongly recommended.
              */
              */
             Background2DFile(
             Background2DFile(
               Ogre::ResourceManager* creator, const String &name, Ogre::ResourceHandle handle,
               Ogre::ResourceManager* creator, const String &name, Ogre::ResourceHandle handle,
@@ -162,7 +158,6 @@ namespace VGears{
 
 
         protected:
         protected:
 
 
-
             /**
             /**
              * Loads the file.
              * Loads the file.
              */
              */