Fix tile animations. Add in game hub state.
This commit is contained in:
parent
b1cdc78a87
commit
18810875a5
@ -232,8 +232,8 @@
|
|||||||
"Boss",
|
"Boss",
|
||||||
"Story",
|
"Story",
|
||||||
"Blacksmith",
|
"Blacksmith",
|
||||||
"Unspecified",
|
"World Map",
|
||||||
"World Map"
|
"Hub"
|
||||||
],
|
],
|
||||||
"valuesAsFlags": false
|
"valuesAsFlags": false
|
||||||
},
|
},
|
||||||
@ -284,7 +284,7 @@
|
|||||||
"name": "Level Type",
|
"name": "Level Type",
|
||||||
"propertyType": "LevelType",
|
"propertyType": "LevelType",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"value": "Unspecified"
|
"value": "World Map"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Optimize",
|
"name": "Optimize",
|
||||||
|
@ -540,6 +540,10 @@
|
|||||||
<ClInclude Include="SoundEffect.h" />
|
<ClInclude Include="SoundEffect.h" />
|
||||||
<ClInclude Include="SpawnEncounterLabel.h" />
|
<ClInclude Include="SpawnEncounterLabel.h" />
|
||||||
<ClInclude Include="State.h" />
|
<ClInclude Include="State.h" />
|
||||||
|
<ClInclude Include="State_GameHub.h">
|
||||||
|
<SubType>
|
||||||
|
</SubType>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="State_GameRun.h" />
|
<ClInclude Include="State_GameRun.h" />
|
||||||
<ClInclude Include="State_LevelComplete.h">
|
<ClInclude Include="State_LevelComplete.h">
|
||||||
<SubType>
|
<SubType>
|
||||||
@ -735,6 +739,10 @@
|
|||||||
<SubType>
|
<SubType>
|
||||||
</SubType>
|
</SubType>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="State_GameHub.cpp">
|
||||||
|
<SubType>
|
||||||
|
</SubType>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="State_GameRun.cpp" />
|
<ClCompile Include="State_GameRun.cpp" />
|
||||||
<ClCompile Include="State_LevelComplete.cpp">
|
<ClCompile Include="State_LevelComplete.cpp">
|
||||||
<SubType>
|
<SubType>
|
||||||
|
@ -46,9 +46,6 @@
|
|||||||
<Filter Include="Header Files\Interface">
|
<Filter Include="Header Files\Interface">
|
||||||
<UniqueIdentifier>{45ecf440-1472-4e9a-a4d9-e9eac538a2b0}</UniqueIdentifier>
|
<UniqueIdentifier>{45ecf440-1472-4e9a-a4d9-e9eac538a2b0}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files\Game States">
|
|
||||||
<UniqueIdentifier>{da28101e-32b6-4e32-a19a-e0d2636d5eea}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Source Files\Game States">
|
<Filter Include="Source Files\Game States">
|
||||||
<UniqueIdentifier>{f36af2ba-e884-4e50-b7bd-7e6aa9a8528c}</UniqueIdentifier>
|
<UniqueIdentifier>{f36af2ba-e884-4e50-b7bd-7e6aa9a8528c}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
@ -195,9 +192,6 @@
|
|||||||
<ClInclude Include="MenuLabel.h">
|
<ClInclude Include="MenuLabel.h">
|
||||||
<Filter>Header Files\Interface</Filter>
|
<Filter>Header Files\Interface</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="GameState.h">
|
|
||||||
<Filter>Header Files\Game States</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="MenuItemButton.h">
|
<ClInclude Include="MenuItemButton.h">
|
||||||
<Filter>Header Files\Interface</Filter>
|
<Filter>Header Files\Interface</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@ -447,6 +441,12 @@
|
|||||||
<ClInclude Include="Checkbox.h">
|
<ClInclude Include="Checkbox.h">
|
||||||
<Filter>Header Files\Interface</Filter>
|
<Filter>Header Files\Interface</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="GameState.h">
|
||||||
|
<Filter>Header Files\State</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="State_GameHub.h">
|
||||||
|
<Filter>Header Files\State</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="Player.cpp">
|
<ClCompile Include="Player.cpp">
|
||||||
@ -767,6 +767,9 @@
|
|||||||
<ClCompile Include="SettingsWindow.cpp">
|
<ClCompile Include="SettingsWindow.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="State_GameHub.cpp">
|
||||||
|
<Filter>Source Files\Game States</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="cpp.hint" />
|
<None Include="cpp.hint" />
|
||||||
|
@ -842,7 +842,7 @@ void AiL::RenderTile(TileRenderData&tileSheet,Pixel col){
|
|||||||
int tileSheetWidth=tileSheet.tileSheet.tileset->tileset->Sprite()->width/tileSheet.tileSheet.tileset->tilewidth;
|
int tileSheetWidth=tileSheet.tileSheet.tileset->tileset->Sprite()->width/tileSheet.tileSheet.tileset->tilewidth;
|
||||||
int tileSheetX=animatedIndex%tileSheetWidth;
|
int tileSheetX=animatedIndex%tileSheetWidth;
|
||||||
int tileSheetY=animatedIndex/tileSheetWidth;
|
int tileSheetY=animatedIndex/tileSheetWidth;
|
||||||
view.DrawPartialDecal(tileSheet.pos,{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},tileSheet.tileSheet.tileset->tileset->Decal(),vi2d{tileSheetX,tileSheetY},{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},col);
|
view.DrawPartialDecal(tileSheet.pos,{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},tileSheet.tileSheet.tileset->tileset->Decal(),vi2d{tileSheetX,tileSheetY}*vf2d{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},col);
|
||||||
}else{
|
}else{
|
||||||
view.DrawPartialDecal(tileSheet.pos,{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},tileSheet.tileSheet.tileset->tileset->Decal(),tileSheet.tileSheetPos,{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},col);
|
view.DrawPartialDecal(tileSheet.pos,{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},tileSheet.tileSheet.tileset->tileset->Decal(),tileSheet.tileSheetPos,{float(tileSheet.tileSheet.tileset->tilewidth),float(tileSheet.tileSheet.tileset->tileheight)},col);
|
||||||
}
|
}
|
||||||
@ -1740,6 +1740,8 @@ void AiL::InitializeLevel(std::string mapFile,MapName map){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void AiL::LoadLevel(MapName map){
|
void AiL::LoadLevel(MapName map){
|
||||||
|
if(game->MAP_DATA.count(map)==0)ERR(std::format("WARNING! Could not load map {}! Does not exist! Refer to levels.txt for valid maps.",map));
|
||||||
|
|
||||||
SPAWNER_LIST.clear();
|
SPAWNER_LIST.clear();
|
||||||
foregroundTileGroups.clear();
|
foregroundTileGroups.clear();
|
||||||
upperForegroundTileGroups.clear();
|
upperForegroundTileGroups.clear();
|
||||||
|
@ -37,11 +37,11 @@ All rights reserved.
|
|||||||
#pragma endregion
|
#pragma endregion
|
||||||
#include "AdventuresInLestoria.h"
|
#include "AdventuresInLestoria.h"
|
||||||
#include "GameState.h"
|
#include "GameState.h"
|
||||||
#include "State_GameRun.h"
|
|
||||||
#include "State_OverworldMap.h"
|
#include "State_OverworldMap.h"
|
||||||
#include "State_MainMenu.h"
|
#include "State_MainMenu.h"
|
||||||
#include "State_LevelComplete.h"
|
#include "State_LevelComplete.h"
|
||||||
#include "State_Story.h"
|
#include "State_Story.h"
|
||||||
|
#include "State_GameHub.h"
|
||||||
|
|
||||||
INCLUDE_game
|
INCLUDE_game
|
||||||
|
|
||||||
@ -53,6 +53,7 @@ void GameState::Initialize(){
|
|||||||
NEW_STATE(States::MAIN_MENU,State_MainMenu);
|
NEW_STATE(States::MAIN_MENU,State_MainMenu);
|
||||||
NEW_STATE(States::LEVEL_COMPLETE,State_LevelComplete);
|
NEW_STATE(States::LEVEL_COMPLETE,State_LevelComplete);
|
||||||
NEW_STATE(States::STORY,State_Story);
|
NEW_STATE(States::STORY,State_Story);
|
||||||
|
NEW_STATE(States::GAME_HUB,State_GameHub);
|
||||||
|
|
||||||
GameState::ChangeState(States::MAIN_MENU);
|
GameState::ChangeState(States::MAIN_MENU);
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,7 @@ class AiL;
|
|||||||
namespace States{
|
namespace States{
|
||||||
enum State{
|
enum State{
|
||||||
GAME_RUN,
|
GAME_RUN,
|
||||||
|
GAME_HUB,
|
||||||
OVERWORLD_MAP,
|
OVERWORLD_MAP,
|
||||||
MAIN_MENU,
|
MAIN_MENU,
|
||||||
LEVEL_COMPLETE,
|
LEVEL_COMPLETE,
|
||||||
|
@ -65,7 +65,7 @@ void Menu::InitializeLevelCompleteWindow(){
|
|||||||
|
|
||||||
auto nextButtonAction=[](MenuFuncData data){
|
auto nextButtonAction=[](MenuFuncData data){
|
||||||
Unlock::UnlockArea(State_OverworldMap::GetCurrentConnectionPoint().map);
|
Unlock::UnlockArea(State_OverworldMap::GetCurrentConnectionPoint().map);
|
||||||
GameState::ChangeState(States::OVERWORLD_MAP,0.5f);
|
GameState::ChangeState(States::GAME_HUB,0.25f);
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -672,7 +672,7 @@ bool Player::CanAct(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Player::CanAct(Ability&ability){
|
bool Player::CanAct(Ability&ability){
|
||||||
return knockUpTimer==0&&!ability.waitForRelease&&(ability.canCancelCast||state!=State::CASTING)&&state!=State::ANIMATION_LOCK&&GameState::STATE==GameState::states[States::GAME_RUN];
|
return knockUpTimer==0&&!ability.waitForRelease&&(ability.canCancelCast||state!=State::CASTING)&&state!=State::ANIMATION_LOCK&&(GameState::STATE==GameState::states[States::GAME_RUN]||GameState::STATE==GameState::states[States::GAME_HUB]);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Player::HasIframes(){
|
bool Player::HasIframes(){
|
||||||
|
63
Adventures in Lestoria/State_GameHub.cpp
Normal file
63
Adventures in Lestoria/State_GameHub.cpp
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#pragma region License
|
||||||
|
/*
|
||||||
|
License (OLC-3)
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions or derivations of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions or derivative works in binary form must reproduce the above
|
||||||
|
copyright notice. This list of conditions and the following disclaimer must be
|
||||||
|
reproduced in the documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
3. Neither the name of the copyright holder nor the names of its contributors may
|
||||||
|
be used to endorse or promote products derived from this software without specific
|
||||||
|
prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||||
|
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGE.
|
||||||
|
|
||||||
|
Portions of this software are copyright © 2023 The FreeType
|
||||||
|
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
|
||||||
|
All rights reserved.
|
||||||
|
*/
|
||||||
|
#pragma endregion
|
||||||
|
#include "State_GameHub.h"
|
||||||
|
#include "AdventuresInLestoria.h"
|
||||||
|
#include "DEFINES.h"
|
||||||
|
#include "Menu.h"
|
||||||
|
#include "ItemDrop.h"
|
||||||
|
#include "VisualNovel.h"
|
||||||
|
#include "State_OverworldMap.h"
|
||||||
|
#include "GameEvent.h"
|
||||||
|
|
||||||
|
INCLUDE_MONSTER_LIST
|
||||||
|
INCLUDE_game
|
||||||
|
|
||||||
|
void State_GameHub::OnStateChange(GameState*prevState){
|
||||||
|
if(Menu::IsMenuOpen()){
|
||||||
|
Menu::CloseAllMenus();
|
||||||
|
}
|
||||||
|
game->GetPlayer()->SetState(State::NORMAL);
|
||||||
|
|
||||||
|
game->LoadLevel("HUB");
|
||||||
|
}
|
||||||
|
void State_GameHub::OnUserUpdate(AiL*game){
|
||||||
|
State_GameRun::OnUserUpdate(game);
|
||||||
|
}
|
||||||
|
void State_GameHub::Draw(AiL*game){
|
||||||
|
State_GameRun::Draw(game);
|
||||||
|
}
|
48
Adventures in Lestoria/State_GameHub.h
Normal file
48
Adventures in Lestoria/State_GameHub.h
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#pragma region License
|
||||||
|
/*
|
||||||
|
License (OLC-3)
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions or derivations of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions or derivative works in binary form must reproduce the above
|
||||||
|
copyright notice. This list of conditions and the following disclaimer must be
|
||||||
|
reproduced in the documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
3. Neither the name of the copyright holder nor the names of its contributors may
|
||||||
|
be used to endorse or promote products derived from this software without specific
|
||||||
|
prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||||
|
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGE.
|
||||||
|
|
||||||
|
Portions of this software are copyright © 2023 The FreeType
|
||||||
|
Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
|
||||||
|
All rights reserved.
|
||||||
|
*/
|
||||||
|
#pragma endregion
|
||||||
|
#pragma once
|
||||||
|
#include "State_GameRun.h"
|
||||||
|
#include "olcPGEX_ViewPort.h"
|
||||||
|
|
||||||
|
class State_GameHub:public State_GameRun{
|
||||||
|
ViewPort port;
|
||||||
|
Renderable r;
|
||||||
|
virtual void OnStateChange(GameState*prevState)override final;
|
||||||
|
virtual void OnUserUpdate(AiL*game)override final;
|
||||||
|
virtual void Draw(AiL*game)override final;
|
||||||
|
};
|
@ -42,9 +42,10 @@ All rights reserved.
|
|||||||
class State_GameRun:public GameState{
|
class State_GameRun:public GameState{
|
||||||
ViewPort port;
|
ViewPort port;
|
||||||
Renderable r;
|
Renderable r;
|
||||||
virtual void OnStateChange(GameState*prevState)override final;
|
protected:
|
||||||
virtual void OnUserUpdate(AiL*game)override final;
|
virtual void OnStateChange(GameState*prevState)override;
|
||||||
virtual void Draw(AiL*game)override final;
|
virtual void OnUserUpdate(AiL*game)override;
|
||||||
|
virtual void Draw(AiL*game)override;
|
||||||
void FontTest();
|
void FontTest();
|
||||||
void FontSpriteTest();
|
void FontSpriteTest();
|
||||||
};
|
};
|
@ -39,7 +39,7 @@ All rights reserved.
|
|||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 3
|
#define VERSION_MINOR 3
|
||||||
#define VERSION_PATCH 0
|
#define VERSION_PATCH 0
|
||||||
#define VERSION_BUILD 6507
|
#define VERSION_BUILD 6515
|
||||||
|
|
||||||
#define stringify(a) stringify_(a)
|
#define stringify(a) stringify_(a)
|
||||||
#define stringify_(a) #a
|
#define stringify_(a) #a
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<property name="Backdrop" propertytype="Backdrop" value="forest"/>
|
<property name="Backdrop" propertytype="Backdrop" value="forest"/>
|
||||||
<property name="Background Music" propertytype="BGM" value="foresty_loop1"/>
|
<property name="Background Music" propertytype="BGM" value="foresty_loop1"/>
|
||||||
<property name="Level Type" propertytype="LevelType" value="Dungeon"/>
|
<property name="Level Type" propertytype="LevelType" value="Hub"/>
|
||||||
</properties>
|
</properties>
|
||||||
<tileset firstgid="1" source="../maps/Tilesheet_No_Shadow24x24.tsx"/>
|
<tileset firstgid="1" source="../maps/Tilesheet_No_Shadow24x24.tsx"/>
|
||||||
<tileset firstgid="2913" source="../maps/No_Shadow_Campfire_24x24.tsx"/>
|
<tileset firstgid="2913" source="../maps/No_Shadow_Campfire_24x24.tsx"/>
|
||||||
|
@ -672,8 +672,6 @@
|
|||||||
<object id="17" name="Stage B-I" type="StagePlate" x="156.25" y="475.75" width="44" height="16">
|
<object id="17" name="Stage B-I" type="StagePlate" x="156.25" y="475.75" width="44" height="16">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="Connection 2 - East" type="object" value="18"/>
|
<property name="Connection 2 - East" type="object" value="18"/>
|
||||||
<property name="Connection 3 - South" type="object" value="0"/>
|
|
||||||
<property name="Connection 4 - West" type="object" value="0"/>
|
|
||||||
<property name="Map" propertytype="Level" value="CAMPAIGN_1_B1"/>
|
<property name="Map" propertytype="Level" value="CAMPAIGN_1_B1"/>
|
||||||
<property name="Type" propertytype="StageType" value="DUNGEON"/>
|
<property name="Type" propertytype="StageType" value="DUNGEON"/>
|
||||||
<property name="Unlock Condition" propertytype="Level" value="CAMPAIGN_1_5"/>
|
<property name="Unlock Condition" propertytype="Level" value="CAMPAIGN_1_5"/>
|
||||||
|
@ -98,4 +98,8 @@ Levels
|
|||||||
{
|
{
|
||||||
Map File = Boss_1_B.tmx
|
Map File = Boss_1_B.tmx
|
||||||
}
|
}
|
||||||
|
HUB
|
||||||
|
{
|
||||||
|
Map File = Hub.tmx
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user