Jelajahi Sumber

Rename Exit to Gateway

Paul 11 tahun lalu
induk
melakukan
b4390e308b

+ 28 - 26
QGearsMain/include/data/QGearsTriggersFile.h

@@ -48,31 +48,14 @@ namespace QGears
             s16 bottom;
         };
 
-        const Range& getCameraRange() const
-        {
-            return mData->camera_range;
-        }
-
-        float MovementRotation() const
-        {
-            // This is the angle in which the player moves when "up" is pressed
-            return 180.0f * (static_cast<float>(mData->control) - 128.0f) / 128.0f;
-        }
-
-    protected:
-        virtual void loadImpl(void) override;
-        virtual void unloadImpl(void) override;
-        virtual size_t calculateSize(void) const override;
-    private:
-
-        struct Vertex_s 
+        struct Vertex_s
         {
             u16 x;
             u16 y;
             u16 z;
         };
 
-        struct Exit
+        struct Gateway
         {
             std::array<Vertex_s, 2> exit_line;
             Vertex_s destination;
@@ -106,7 +89,7 @@ namespace QGears
 
         struct TriggerData
         {
-            std::array<char,9> name;
+            std::array<char, 9> name;
             u8 control;
             s16 cameraFocusHeight;
             Range camera_range; // 8 bytes
@@ -118,15 +101,34 @@ namespace QGears
             s16 bg_layer3_height;
             s16 bg_layer4_width;
             s16 bg_layer4_height;
-            std::array<u8,24> unknown;
-            std::array<Exit,12> doors;// 24 * 12 bytes
+            std::array<u8, 24> unknown;
+            std::array<Gateway, 12> doors;// 24 * 12 bytes
             std::array<Trigger, 12> triggers;// 16 * 12 bytes
             // Only in occidental/international version
-            std::array<u8,12> display_arrow;
-            std::array<Arrow,12> arrows;// 16 * 12 bytes
+            std::array<u8, 12> display_arrow;
+            std::array<Arrow, 12> arrows;// 16 * 12 bytes
         };
-        
 
+        const Range& getCameraRange() const
+        {
+            return mData->camera_range;
+        }
+
+        float MovementRotation() const
+        {
+            // This is the angle in which the player moves when "up" is pressed
+            return 180.0f * (static_cast<float>(mData->control) - 128.0f) / 128.0f;
+        }
+
+
+
+    protected:
+        virtual void loadImpl(void) override;
+        virtual void unloadImpl(void) override;
+        virtual size_t calculateSize(void) const override;
+    private:
+
+ 
         std::unique_ptr<TriggerData> mData;
 
         friend class TriggerFileSerializer;
@@ -140,7 +142,7 @@ namespace QGears
     private:
         void ReadVertex_s(Ogre::DataStreamPtr& stream, TriggersFile::Vertex_s& vertex);
         void ReadRange(Ogre::DataStreamPtr& stream, TriggersFile::Range& range);
-        void ReadExit(Ogre::DataStreamPtr& stream, TriggersFile::Exit& exit);
+        void ReadGateway(Ogre::DataStreamPtr& stream, TriggersFile::Gateway& exit);
         void ReadArrow(Ogre::DataStreamPtr& stream, TriggersFile::Arrow& arrow);
         void ReadTrigger(Ogre::DataStreamPtr& stream, TriggersFile::Trigger& trigger);
     };

+ 3 - 3
QGearsMain/src/data/QGearsTriggersFile.cpp

@@ -101,7 +101,7 @@ namespace QGears
         readInt16(stream, range.bottom);
     }
 
-    void TriggerFileSerializer::ReadExit(Ogre::DataStreamPtr& stream, TriggersFile::Exit& exit)
+    void TriggerFileSerializer::ReadGateway(Ogre::DataStreamPtr& stream, TriggersFile::Gateway& exit)
     {
         for (size_t i = 0; i < exit.exit_line.size(); i++)
         {
@@ -159,8 +159,8 @@ namespace QGears
 
         for (size_t i = 0; i < data->doors.size(); i++)
         {
-            TriggersFile::Exit& exit = data->doors[i];
-            ReadExit(stream, exit);
+            TriggersFile::Gateway& exit = data->doors[i];
+            ReadGateway(stream, exit);
         }
         
         for (size_t i = 0; i < data->triggers.size(); i++)

+ 11 - 0
utilities/q-gears-launcher/src/ff7DataInstaller.cpp

@@ -210,9 +210,20 @@ static void FF7PcFieldToQGearsField(QGears::FLevelFilePtr& field, const std::str
         element->LinkEndChild(xmlMovementRotation.release());
 
         // TODO: entity_script - name
+        
         // TODO: entity_model - name, file_name,  position, direction
+        // We set char 1 position to be position of first entity_point so player is spawned in sane
+        // position if map is manually loaded via console.
+        // None player chars set their first position in the init scripts. We know its a entity_model
+        // because it uses PC opcode in init script.
+
+        // entity_manager:get_entity("cl") is done via CHAR opcode
+
         // TODO: entity_trigger - name, point1, point2, enabled
+        // comes from triggers in this field
+
         // TODO: entity_point - name, position, rotation
+        // more complicated, comes from triggers in fields that link to this field
 
         doc.LinkEndChild(element.release());
         doc.SaveFile(outDir + "/" + field->getName() + ".xml");