Commit 4158f1d5 authored by Gerhard Stein's avatar Gerhard Stein

More Keen6 support. World map now loads

parent d1432358
......@@ -12,4 +12,4 @@ INCLUDE(build.cmake)
INCLUDE(install.cmake)
INCLUDE(package.cmake)
INCLUDE(package.cmake)
\ No newline at end of file
......@@ -13,7 +13,7 @@ Porting:
Released under GNU/GPL
Release v1.0-RC2
Release v1.1 Alpha 1
Build: LINUX
**********************************************
......
......@@ -14,9 +14,10 @@
void ActionFormatType::setActionFormat( const size_t sprite_offset )
{
byte *ptr = g_pBehaviorEngine->m_ExeFile.getDSegPtr();
ptr += sprite_offset;
memcpy( this, ptr, 15*sizeof(int16_t) );
}
......
......@@ -11,10 +11,11 @@
#include "sdl/CVideoDriver.h"
#include "sdl/input/CInput.h"
#include "graphics/effects/CScrollEffect.h"
#include "CStatusScreenGalaxyEp4.h"
// TODO: We should sort these classes
#include "CStatusScreenGalaxyEp4.h"
#include "CStatusScreenGalaxyEp5.h"
//#include "CStatusScreenGalaxyEp6.h"
#include "CStatusScreenGalaxyEp6.h"
CInventory::CInventory(const std::string& levelname) :
......@@ -42,8 +43,10 @@ m_LevelName(levelname)
{
mp_StatusScreen.reset(new CStatusScreenGalaxyEp5(Item, m_LevelName));
}
// else if(Episode == 6)
// mp_StatusScreen = new CStatusScreenGalaxyEp6(Item, m_LevelName);
else if(Episode == 6)
{
mp_StatusScreen.reset(new CStatusScreenGalaxyEp6(Item, m_LevelName));
}
}
m_HUD.sync();
......
......@@ -38,6 +38,8 @@ void CLevelPlay::loadMap(const int level)
MapLoader.reset(new CMapLoaderGalaxyEp4(mExeFile, mObjectPtr, mInventory, mCheatmode));
else if(g_pBehaviorEngine->getEpisode() == 5)
MapLoader.reset(new CMapLoaderGalaxyEp5(mExeFile, mObjectPtr, mInventory, mCheatmode));
else if(g_pBehaviorEngine->getEpisode() == 6)
MapLoader.reset(new CMapLoaderGalaxyEp6(mExeFile, mObjectPtr, mInventory, mCheatmode));
MapLoader->loadMap( mMap, level );
......
......@@ -11,6 +11,7 @@
#include "common/CBehaviorEngine.h"
#include "ep4/CMapLoaderGalaxyEp4.h"
#include "ep5/CMapLoaderGalaxyEp5.h"
#include "ep6/CMapLoaderGalaxyEp6.h"
#include "ai/ep4/CInchWorm.h"
#include "ai/ep4/CFoot.h"
#include "ai/ep4/CSmokePuff.h"
......@@ -111,9 +112,12 @@ void CMapPlayGalaxy::process(const bool msgboxactive)
}
}
// if you see some object which at the end of the container is non-existent, remove it!
if(!mObjectPtr.back()->exists)
if(!mObjectPtr.empty())
{
// if you see some object which at the end of the container is non-existent, remove it!
if(!mObjectPtr.back()->exists)
mObjectPtr.pop_back();
}
}
......@@ -284,9 +288,11 @@ bool CMapPlayGalaxy::operator<<(CSaveGameController &savedGame)
mapLoader.reset( new galaxy::CMapLoaderGalaxyEp4(mExeFile, mObjectPtr, mInventory, mCheatmode) );
else if(episode == 5)
mapLoader.reset( new galaxy::CMapLoaderGalaxyEp5(mExeFile, mObjectPtr, mInventory, mCheatmode) );
else if(episode == 6)
mapLoader.reset( new galaxy::CMapLoaderGalaxyEp6(mExeFile, mObjectPtr, mInventory, mCheatmode) );
else
{
g_pLogFile->textOut("Error loading the file. This episode is not supported!");
g_pLogFile->textOut("Error loading the file. This game is not supported!");
return false;
}
......
......@@ -19,6 +19,7 @@
#include "common/CBehaviorEngine.h"
#include "ep4/CMapLoaderGalaxyEp4.h"
#include "ep5/CMapLoaderGalaxyEp5.h"
#include "ep6/CMapLoaderGalaxyEp6.h"
#include "sdl/input/CInput.h"
#include "sdl/CVideoDriver.h"
#include "sdl/music/CMusic.h"
......
/*
* CStatusScreenGalaxyEp5.h
*
* Created on: 28.07.2011
* Created on: 28.09.2011
* Author: gerstrong
*
* The specific Statusscreen for Keen 4 only!
* The specific Statusscreen for Keen 5 only!
*/
#ifndef CSTATUSSCREENGALAXYEP5_H_
......@@ -20,4 +20,4 @@ public:
void GenerateStatus();
};
#endif /* CSTATUSSCREENGALAXYEP4_H_ */
#endif /* CSTATUSSCREENGALAXYEP5_H_ */
/*
* CStatusScreenGalaxyEp6.cpp
*
* Created on: 24.12.2012
* Author: gerstrong
*/
#include "CStatusScreenGalaxyEp6.h"
#include "graphics/CGfxEngine.h"
#include "common/CBehaviorEngine.h"
#include "StringUtils.h"
CStatusScreenGalaxyEp6::CStatusScreenGalaxyEp6(const stItemGalaxy& Item, const std::string &LevelName) :
CStatusScreenGalaxy(Item, LevelName)
{}
void CStatusScreenGalaxyEp6::GenerateStatus()
{
SDL_Rect EditRect;
drawBase(EditRect);
CFont &Font = g_pGfxEngine->getFont(0);
Font.setupColor(0x555555);
Font.drawFontCentered(mpStatusSurface.get(), "LOCATION", EditRect.x, EditRect.w, EditRect.y, false);
// Temporary Rect for drawing some stuff like background for scores and so...
SDL_Rect TempRect;
// Location Rect
TempRect.x = EditRect.x;
TempRect.y = EditRect.y+10;
TempRect.w = EditRect.w;
TempRect.h = 20;
Font.setupColor(0x0);
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFFFFFFFF);
Font.drawFontCentered(mpStatusSurface.get(), m_LevelName, TempRect.x, TempRect.w, TempRect.y+6, false);
Font.setupColor(0x444444);
/// SCORE and EXTRA Rect
TempRect.x = EditRect.x;
TempRect.y = EditRect.y+32;
TempRect.w = EditRect.w/2; TempRect.h = 10;
Font.drawFont(mpStatusSurface.get(), "SCORE EXTRA", TempRect.x+16, TempRect.y);
TempRect.w = (EditRect.w/2)-16; TempRect.h = 11;
TempRect.y = EditRect.y+42;
// Score Box
TempRect.w = 8*8;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFF000000);
g_pGfxEngine->drawDigits(getRightAlignedString(itoa(m_Item.m_points), 8), TempRect.x, TempRect.y+2, mpStatusSurface.get());
// Extra Box
TempRect.x = EditRect.x+96;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFF000000);
g_pGfxEngine->drawDigits(getRightAlignedString(itoa(m_Item.m_lifeAt), 8), TempRect.x, TempRect.y+2, mpStatusSurface.get());
/// RESCUED and LEVEL Rects
TempRect.x = EditRect.x;
TempRect.y = EditRect.y+56;
TempRect.w = EditRect.w/2; TempRect.h = 10;
Font.drawFont(mpStatusSurface.get(), "RESCUED LEVEL", TempRect.x+8, TempRect.y);
TempRect.w = (EditRect.w/2)-16; TempRect.h = 11;
TempRect.y = EditRect.y+66;
// Rescued Box
TempRect.w = 8*8;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFF000000);
for( int count=0 ; count<m_Item.m_special.ep4.elders ; count++ )
g_pGfxEngine->drawDigit(40, TempRect.x+8*count, TempRect.y+1, mpStatusSurface.get());
// Level Box
TempRect.x = EditRect.x+96;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFFFFFFFF);
Font.setupColor(0x0);
std::string difftext;
if(g_pBehaviorEngine->mDifficulty == EASY)
difftext = "Easy";
else if(g_pBehaviorEngine->mDifficulty == NORMAL)
difftext = "Normal";
else if(g_pBehaviorEngine->mDifficulty == HARD)
difftext = "Hard";
else
difftext = "???";
Font.drawFontCentered(mpStatusSurface.get(), difftext, TempRect.x, TempRect.w, TempRect.y+1, false);
Font.setupColor(0x333333);
// Keys Box
TempRect.x = EditRect.x;
TempRect.y = EditRect.y+80;
Font.drawFont(mpStatusSurface.get(), "KEYS", TempRect.x, TempRect.y);
TempRect.w = 8*4; TempRect.h = 10;
TempRect.x = TempRect.x+8*5;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFF000000);
if(m_Item.m_gem.red)
g_pGfxEngine->drawDigit(36, TempRect.x, TempRect.y+1, mpStatusSurface.get());
if(m_Item.m_gem.yellow)
g_pGfxEngine->drawDigit(37, TempRect.x+8, TempRect.y+1, mpStatusSurface.get());
if(m_Item.m_gem.blue)
g_pGfxEngine->drawDigit(38, TempRect.x+16, TempRect.y+1, mpStatusSurface.get());
if(m_Item.m_gem.green)
g_pGfxEngine->drawDigit(39, TempRect.x+24, TempRect.y+1, mpStatusSurface.get());
// Ammo Box
TempRect.x = EditRect.x+96;
TempRect.y = EditRect.y+80;
Font.drawFont(mpStatusSurface.get(), "AMMO", TempRect.x, TempRect.y);
TempRect.w = 8*3; TempRect.h = 10;
TempRect.x = TempRect.x+8*5;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFF000000);
g_pGfxEngine->drawDigits(getRightAlignedString(itoa(m_Item.m_bullets), 3), TempRect.x, TempRect.y+1, mpStatusSurface.get());
// Keens Box
TempRect.x = EditRect.x;
TempRect.y = EditRect.y+96;
Font.drawFont(mpStatusSurface.get(), "KEENS", TempRect.x, TempRect.y);
TempRect.w = 8*2; TempRect.h = 10;
TempRect.x = TempRect.x+8*5+8;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFF000000);
g_pGfxEngine->drawDigits(getRightAlignedString(itoa(m_Item.m_lifes), 2), TempRect.x, TempRect.y+1, mpStatusSurface.get());
// Drops Box
TempRect.x = EditRect.x+96;
TempRect.y = EditRect.y+96;
Font.drawFont(mpStatusSurface.get(), "DROPS", TempRect.x, TempRect.y);
TempRect.w = 8*2; TempRect.h = 10;
TempRect.x = TempRect.x+8*5+8;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFF000000);
g_pGfxEngine->drawDigits(getRightAlignedString(itoa(m_Item.m_drops), 2), TempRect.x, TempRect.y+1, mpStatusSurface.get());
// Swim Suit Box
TempRect.x = EditRect.x;
TempRect.y = EditRect.y+114;
TempRect.w = (EditRect.w/2)-16; TempRect.h = 11;
SDL_FillRect(mpStatusSurface.get(), &TempRect, 0xFFFFFFFF);
Font.setupColor(0x0);
Font.drawFontCentered(mpStatusSurface.get(), m_Item.m_special.ep4.swimsuit ? "Swim Suit" : "???", TempRect.x, TempRect.w, TempRect.y+1, false);
// Press a Key Sign
CTilemap &Tilemap = g_pGfxEngine->getTileMap(2);
TempRect.x = EditRect.x+(EditRect.w/2);
TempRect.y = EditRect.y+110;
for( int c=0 ; c<10 ; c++ )
Tilemap.drawTile(mpStatusSurface.get(), TempRect.x+c*8, TempRect.y, 72+c);
TempRect.y += 8;
for( int c=0 ; c<10 ; c++ )
Tilemap.drawTile(mpStatusSurface.get(), TempRect.x+c*8, TempRect.y, 82+c);
}
/*
* CStatusScreenGalaxyEp6.h
*
* Created on: 24.12.2012
* Author: gerstrong
*
* The specific Statusscreen for Keen 4 only!
*/
#ifndef CSTATUSSCREENGALAXYEP6_H_
#define CSTATUSSCREENGALAXYEP6_H_
#include "CStatusScreenGalaxy.h"
class CStatusScreenGalaxyEp6: public CStatusScreenGalaxy
{
public:
CStatusScreenGalaxyEp6(const stItemGalaxy& Item, const std::string &LevelName);
void GenerateStatus();
};
#endif /* CSTATUSSCREENGALAXYEP6_H_ */
......@@ -27,6 +27,8 @@ void CWorldMap::init()
MapLoader.reset( new CMapLoaderGalaxyEp4(mExeFile, mObjectPtr, mInventory, mCheatmode) );
else if(g_pBehaviorEngine->getEpisode() == 5)
MapLoader.reset( new CMapLoaderGalaxyEp5(mExeFile, mObjectPtr, mInventory, mCheatmode) );
else if(g_pBehaviorEngine->getEpisode() == 6)
MapLoader.reset( new CMapLoaderGalaxyEp6(mExeFile, mObjectPtr, mInventory, mCheatmode) );
MapLoader->loadMap( mMap, 0 );
g_pBehaviorEngine->mapLevelName = MapLoader->getLevelName();
......
......@@ -39,12 +39,24 @@ void CEGAGraphicsGalaxy::createBitmapsIDs()
m_BitmapNameMap[0][94] = "PADDLELABEL";
m_BitmapNameMap[0][95] = "QUITLABEL";
// Keen 5 Bitmap IDs
/// Keen 5 Image IDs
// Bitmaps
m_BitmapNameMap[1][82] = "TITLE";
m_BitmapNameMap[1][76] = "KEENSWATCH";
m_BitmapNameMap[1][85] = "KEENTHUMBSUP";
// Sprites
m_SpriteNameMap[1][133] = "HUDBACKGROUND";
/// Keen 6 Image IDs
// Bitmaps
m_BitmapNameMap[2][28] = "TITLE";
m_BitmapNameMap[2][20] = "KEENSWATCH";
m_BitmapNameMap[2][30] = "KEENTHUMBSUP";
// Sprites
m_SpriteNameMap[2][129] = "HUDBACKGROUND";
// Menu Labels
m_BitmapNameMap[1][61] = "MAINMENULABEL";
m_BitmapNameMap[1][62] = "NEWGAMELABEL";
......@@ -61,10 +73,6 @@ void CEGAGraphicsGalaxy::createBitmapsIDs()
m_BitmapNameMap[1][73] = "PADDLELABEL";
m_BitmapNameMap[1][74] = "QUITLABEL";
// Keen 6 Bitmap IDs
m_BitmapNameMap[2][28] = "TITLE";
m_BitmapNameMap[2][20] = "KEENSWATCH";
// Menu Labels
m_BitmapNameMap[2][5] = "MAINMENULABEL";
m_BitmapNameMap[2][6] = "NEWGAMELABEL";
......
......@@ -12,7 +12,7 @@
namespace galaxy {
const int CPlayerBase::mEpisodeActionNumMap[2][NUM_KEEN_ACTIONS] =
const int CPlayerBase::mEpisodeActionNumMap[3][NUM_KEEN_ACTIONS] =
{
// Episode 4
{
......@@ -95,10 +95,49 @@ const int CPlayerBase::mEpisodeActionNumMap[2][NUM_KEEN_ACTIONS] =
76, // A_KEEN_JUMP_SHOOTDOWN
79, // A_KEEN_HANG
81 // A_KEEN_CLIMB
}//,
},
// Episode 6
//{},
{
0, // A_KEEN_STAND
1, // A_KEEN_ON_PLAT
1, // A_KEEN_BORED
2, // A_KEEN_QUESTION
8, // A_KEEN_MOON
11, // A_KEEN_BOOK_OPEN
15, // A_KEEN_BOOK_READ
18, // A_KEEN_BOOK_CLOSE
21, // A_KEEN_LOOKUP
23, // A_KEEN_LOOKDOWN
26, // A_KEEN_ACTION_1
27, // A_KEEN_ACTION_2
28, // A_KEEN_ACTION_3
29, // A_KEEN_DIE
33, // A_KEEN_SHOOT
35, // A_KEEN_SHOOT_UP
37, // A_KEEN_ACTION_4
40, // A_KEEN_SLIDE
41, // A_KEEN_ENTER_DOOR
46, // A_KEEN_POLE
47, // A_KEEN_POLE_CLIMB
50, // A_KEEN_POLE_SLIDE
54, // A_KEEN_POLE_SHOOT
56, // A_KEEN_POLE_SHOOTUP
58, // A_KEEN_POLE_SHOOTDOWN
60, // A_KEEN_RUN
64, // A_KEEN_POGO_START
65, // A_KEEN_POGO_UP
66, // A_KEEN_POGO_HIGH
67, // A_KEEN_JUMP
68, // A_KEEN_JUMP_DOWN
69, // A_KEEN_FALL
71, // A_KEEN_JUMP_SHOOT
74, // A_KEEN_JUMP_SHOOTUP
77, // A_KEEN_JUMP_SHOOTDOWN
80, // A_KEEN_HANG
82, // A_KEEN_CLIMB
94 // A_KEEN_RIDING_ON_FOOT
}
// Keen Dreams
//{}
......
......@@ -174,7 +174,7 @@ protected:
std::map< size_t, void (CPlayerBase::*)() > mActionMap;
// Assignment for the same player for all the episodes
static const int mEpisodeActionNumMap[2][NUM_KEEN_ACTIONS];
static const int mEpisodeActionNumMap[3][NUM_KEEN_ACTIONS];
VectorD2<int> mTarget;
};
......
......@@ -11,7 +11,7 @@
#include "engine/galaxy/ai/CPlayerWM.h"
#include "engine/galaxy/ai/CPlayerLevel.h"
// TODO: I'm note sure yet, if those are really common platforms
// TODO: I'm not sure yet if those are really common platforms
#include "engine/galaxy/ai/platforms.h"
#include "engine/galaxy/ai/CFlag.h"
#include "engine/galaxy/ai/CSpriteItem.h"
......@@ -92,13 +92,14 @@ CGalaxySpriteObject* CMapLoaderGalaxyEp5::addFoe(CMap &Map, word foe, size_t x,
case 0x02:
// This is the player on the map in one level
p_newfoe = new galaxy::CPlayerLevel(&Map, foe, x, y, m_ObjectPtr,
(foe==1) ? RIGHT : LEFT, m_Inventory, m_Cheatmode, 0x888);
(foe==1) ? RIGHT : LEFT, m_Inventory, m_Cheatmode, 0x0888);
break;
case 0x03:
// This is the player on the world map
// Add the Camera into the game scene and attach it to this player
p_newfoe = new galaxy::CPlayerWM(&Map,foe, x, y, m_Inventory, m_Cheatmode, 0x146e );
p_newfoe = new galaxy::CPlayerWM(&Map,foe, x, y, m_Inventory, m_Cheatmode, 0x146E );
// 0x137A
break;
......
/*
* CMapLoaderGalaxyEp4.h
* CMapLoaderGalaxyEp5.h
*
* Created on: 29.07.2012
* Created on: 29.09.2012
* Author: gerstrong
*/
......@@ -25,4 +25,4 @@ public:
};
#endif /* CMAPLOADERGALAXYEP4_H_ */
#endif /* CMAPLOADERGALAXYEP5_H_ */
/*
* CMapLoaderGalaxyEp6.cpp
*
* Created on: 24.12.2012
* Author: gerstrong
*/
#include "CMapLoaderGalaxyEp6.h"
// Episode 6
#include "engine/galaxy/ai/CPlayerWM.h"
#include "engine/galaxy/ai/CPlayerLevel.h"
// TODO: I'm note sure yet, if those are really common platforms
#include "engine/galaxy/ai/platforms.h"
#include "engine/galaxy/ai/CFlag.h"
#include "engine/galaxy/ai/CSpriteItem.h"
namespace galaxy
{
CMapLoaderGalaxyEp6::CMapLoaderGalaxyEp6(CExeFile &ExeFile,
std::vector< std::shared_ptr<CGalaxySpriteObject> > &ObjectPtr,
CInventory &Inventory, stCheat &Cheatmode) :
CMapLoaderGalaxy( ExeFile, ObjectPtr, Inventory, Cheatmode)
{}
// Platforms:
// 27-30 & 32 seem to be the actual platforms. There may be more of numbers lower than 27.
// 31 seem to be the stoppers, those are not created because the platform
// get this from the object map directly
const unsigned int PLATFORM_HORIZ_ALT = 28;
const unsigned int PLATFORM_VERT = 29;
const unsigned int PLATFORM_HORIZ = 30;
// 31 does not count, because it's a blocker.
const unsigned int PLATFORM_DROP = 32;
const unsigned int DIVE_SUIT = 35;
/**
* @brief Loads a foe given by the coordiantes
*/
CGalaxySpriteObject* CMapLoaderGalaxyEp6::addFoe(CMap &Map, word foe, size_t x, size_t y)
{
CGalaxySpriteObject* p_newfoe = nullptr;
// Gems
/* for( Uint32 i=0x39 ; i<=0x3C ; i++ )
{
if( foe == i )
{
const Uint32 newsprite = 122+2*(i-0x39);
p_newfoe = new galaxy::CSpriteItem(&Map, foe, x, y, newsprite);
}
}
// Point Item Sprites (Candies, etc...)
for( Uint32 i=0x3D ; i<=0x43 ; i++ )
{
if( foe == i )
{
const Uint32 newsprite = 108+2*(i-0x3D);
p_newfoe = new galaxy::CSpriteItem(&Map, foe, x, y, newsprite);
}
}
// Neuronal-stunner
if( foe == 0x44 )
{
p_newfoe = new galaxy::CSpriteItem(&Map, foe, x, y, 127);
}
// This is the keycard. Keen 5 only!
if( foe == 0x46 )
{
p_newfoe = new galaxy::CSpriteItem(&Map, foe, x, y, 105);
}
// If a foe was found, just return.
if( p_newfoe )
return p_newfoe;
*/
// otherwise look for special foe.
VectorD2<Uint32> loc(x,y);
switch(foe)
{
case 0x01:
case 0x02:
// This is the player on the map in one level
p_newfoe = new galaxy::CPlayerLevel(&Map, foe, x, y, m_ObjectPtr,
(foe==1) ? RIGHT : LEFT, m_Inventory, m_Cheatmode, 0x89A);
break;
case 0x03:
// This is the player on the world map
// Add the Camera into the game scene and attach it to this player
//p_newfoe = new galaxy::CPlayerWM(&Map,foe, x, y, m_Inventory, m_Cheatmode, 0x130A );
//p_newfoe = new galaxy::CPlayerWM(&Map,foe, x, y, m_Inventory, m_Cheatmode, 0x13DE );
//p_newfoe = new galaxy::CPlayerWM(&Map,foe, x, y, m_Inventory, m_Cheatmode, 0x1218 );
p_newfoe = new galaxy::CPlayerWM(&Map,foe, x, y, m_Inventory, m_Cheatmode, 0x13E0 );
break;
/*case 0x1B:
p_newfoe = new galaxy::CPlatformVertical( &Map, foe, x, y, UP, 0x1B7C );
break;
//case 0x20:
//p_newfoe = new galaxy::CPlatformDrop( &Map, foe, x, y, 0x1B5E); break;
// Var Plats other color
case 0x24:
p_newfoe = new galaxy::CVarPlatform( &Map, foe, x, y, CENTER, UP, 0x1B5E); break;
case 0x25:
p_newfoe = new galaxy::CVarPlatform( &Map, foe, x, y, RIGHT, CENTER, 0x1B5E); break;
case 0x26:
p_newfoe = new galaxy::CVarPlatform( &Map, foe, x, y, CENTER, DOWN, 0x1B5E); break;
case 0x27:
p_newfoe = new galaxy::CVarPlatform( &Map, foe, x, y, LEFT, CENTER,0x1B5E); break;
case 0x28:
p_newfoe = new galaxy::CPlatformMoveAway( &Map, foe, x, y, CENTER, LEFT, 0x1B7C);
break;
// Var Plats
case 0x50:
p_newfoe = new galaxy::CVarPlatform( &Map, foe, x, y, CENTER, UP, 0x1B7C); break;
case 0x51:
p_newfoe = new galaxy::CVarPlatform( &Map, foe, x, y, RIGHT, CENTER, 0x1B7C); break;
case 0x52:
p_newfoe = new galaxy::CVarPlatform( &Map, foe, x, y, CENTER, DOWN, 0x1B7C); break;
case 0x53:
p_newfoe = new galaxy::CVarPlatform( &Map, foe, x, y, LEFT, CENTER, 0x1B7C); break;
case 0x54:
p_newfoe = new galaxy::CPlatformVertical( &Map, foe, x, y, UP, 0x1B7C ); break;
case 0x55:
p_newfoe = new galaxy::CPlatformHorizontal( &Map, foe, RIGHT, x, y ); break;
break;
*/
/*case PLATFORM_VERT: case PLATFORM_VERT_ALT:
p_newfoe = new galaxy::CPlatformVertical(&Map, foe, x, y); break;
case PLATFORM_HORIZ_ALT:
case PLATFORM_HORIZ:
p_newfoe = new galaxy::CPlatformHorizontal(&Map, foe, x, y); break;
case PLATFORM_DROP:
p_newfoe = new galaxy::CPlatformDrop(&Map, foe, x, y); break;*/
default:
break;
}
return p_newfoe;
}
};
/*
* CMapLoaderGalaxyEp6.h
*
* Created on: 24.12.2012
* Author: gerstrong
*/
#ifndef CMAPLOADERGALAXYEP6_H_
#define CMAPLOADERGALAXYEP6_H_
#include "../CMapLoaderGalaxy.h"
namespace galaxy
{
class CMapLoaderGalaxyEp6 : public CMapLoaderGalaxy
{
public:
CMapLoaderGalaxyEp6(CExeFile &ExeFile,
std::vector< std::shared_ptr<CGalaxySpriteObject> > &ObjectPtr,
CInventory &Inventory, stCheat &Cheatmode);
CGalaxySpriteObject* addFoe(CMap &Map, word foe, size_t x, size_t y);
};
};
#endif /* CMAPLOADERGALAXYEP6_H_ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment