@@ -57,9 +57,6 @@ Director::Director(int argc, char *argv[])
screen - > setBorderColor ( borderColor ) ;
debug = new Debug ( renderer , screen , asset ) ;
music = JA_LoadMusic ( asset - > get ( " title.ogg " ) . c_str ( ) ) ;
// Inicializa los servicios online
// initOnline();
}
Director : : ~ Director ( )
@@ -112,10 +109,13 @@ void Director::initOptions()
// Crea el puntero a la estructura de opciones
options = new options_t ;
// Version
// Version del archivo de configuración
options - > configVersion = " v1.06.1 " ;
// Opciones dee video
// Opciones de control
options - > keys = ctrl_cursor ;
// Opciones de video
options - > gameWidth = GAMECANVAS_WIDTH ;
options - > gameHeight = GAMECANVAS_HEIGHT ;
options - > videoMode = 0 ;
@@ -125,7 +125,8 @@ void Director::initOptions()
options - > integerScale = true ;
options - > keepAspect = true ;
options - > borderEnabled = true ;
options - > borderSize = 0.2f ;
options - > borderWidth = 32 ;
options - > borderHeight = 24 ;
options - > palette = p_zxspectrum ;
// Estos valores no se guardan en el fichero de configuraci´ ón
@@ -312,6 +313,21 @@ bool Director::saveConfig()
file < < " ## VERSION \n " ;
file < < " configVersion= " + options - > configVersion + " \n " ;
file < < " \n ## CONTROL OPTIONS \n " ;
file < < " ## keys = CURSOR | OPQA | WASD \n " ;
if ( options - > keys = = ctrl_cursor )
{
file < < " keys=CURSOR \n " ;
}
else if ( options - > keys = = ctrl_opqa )
{
file < < " keys=OPQA \n " ;
}
else if ( options - > keys = = ctrl_wasd )
{
file < < " keys=WASD \n " ;
}
file < < " \n ## VISUAL OPTIONS \n " ;
if ( options - > videoMode = = 0 )
{
@@ -343,7 +359,8 @@ bool Director::saveConfig()
file < < " integerScale= " + boolToString ( options - > integerScale ) + " \n " ;
file < < " keepAspect= " + boolToString ( options - > keepAspect ) + " \n " ;
file < < " borderEnabled= " + boolToString ( options - > borderEnabled ) + " \n " ;
file < < " borderSize = " + std : : to_string ( options - > borderSize ) + " \n " ;
file < < " borderWidth = " + std : : to_string ( options - > borderWidth ) + " \n " ;
file < < " borderHeight= " + std : : to_string ( options - > borderHeight ) + " \n " ;
file < < " palette= " + std : : to_string ( options - > palette ) + " \n " ;
file < < " \n ## ONLINE OPTIONS \n " ;
@@ -362,7 +379,7 @@ bool Director::saveConfig()
{
file < < " notifications.posV=pos_bottom \n " ;
}
file < < " ## notifications.posH = pos_left | pos_middle | pos_right \n " ;
if ( options - > notifications . posH = = pos_left )
{
@@ -543,9 +560,9 @@ void Director::loadResources(section_t section)
textureList . push_back ( " abad.png " ) ;
textureList . push_back ( " abad_bell.png " ) ;
textureList . push_back ( " amstrad_cs.png " ) ;
textureList . push_back ( " arounder_fly .png " ) ;
textureList . push_back ( " arounder_stop .png " ) ;
textureList . push_back ( " arounder_walk .png " ) ;
textureList . push_back ( " flying_ arounder.png" ) ;
textureList . push_back ( " stopped_ arounder.png" ) ;
textureList . push_back ( " walking_ arounder.png" ) ;
textureList . push_back ( " arounders_door.png " ) ;
textureList . push_back ( " arounders_machine.png " ) ;
textureList . push_back ( " bat.png " ) ;
@@ -567,11 +584,11 @@ void Director::loadResources(section_t section)
textureList . push_back ( " diskette.png " ) ;
textureList . push_back ( " dong.png " ) ;
textureList . push_back ( " guitar.png " ) ;
textureList . push_back ( " jb _alien.png " ) ;
textureList . push_back ( " jb _human.png " ) ;
textureList . push_back ( " jailer.png " ) ;
textureList . push_back ( " jailer2.png " ) ;
textureList . push_back ( " jailer3.png " ) ;
textureList . push_back ( " jailbattle _alien.png " ) ;
textureList . push_back ( " jailbattle _human.png " ) ;
textureList . push_back ( " jailer_#1 .png " ) ;
textureList . push_back ( " jailer_# 2.png " ) ;
textureList . push_back ( " jailer_# 3.png " ) ;
textureList . push_back ( " jeannine.png " ) ;
textureList . push_back ( " lamp.png " ) ;
textureList . push_back ( " lord_abad.png " ) ;
@@ -579,7 +596,7 @@ void Director::loadResources(section_t section)
textureList . push_back ( " matatunos.png " ) ;
textureList . push_back ( " mummy.png " ) ;
textureList . push_back ( " paco.png " ) ;
textureList . push_back ( " printer .png" ) ;
textureList . push_back ( " elsa .png" ) ;
textureList . push_back ( " qvoid.png " ) ;
textureList . push_back ( " sam.png " ) ;
textureList . push_back ( " sigmasua.png " ) ;
@@ -606,9 +623,9 @@ void Director::loadResources(section_t section)
animationList . push_back ( " abad.ani " ) ;
animationList . push_back ( " abad_bell.ani " ) ;
animationList . push_back ( " amstrad_cs.ani " ) ;
animationList . push_back ( " arounder_fly .ani " ) ;
animationList . push_back ( " arounder_stop .ani " ) ;
animationList . push_back ( " arounder_walk .ani " ) ;
animationList . push_back ( " flying_ arounder.ani" ) ;
animationList . push_back ( " stopped_ arounder.ani" ) ;
animationList . push_back ( " walking_ arounder.ani" ) ;
animationList . push_back ( " arounders_door.ani " ) ;
animationList . push_back ( " arounders_machine.ani " ) ;
animationList . push_back ( " bat.ani " ) ;
@@ -630,11 +647,11 @@ void Director::loadResources(section_t section)
animationList . push_back ( " diskette.ani " ) ;
animationList . push_back ( " dong.ani " ) ;
animationList . push_back ( " guitar.ani " ) ;
animationList . push_back ( " jb _alien.ani " ) ;
animationList . push_back ( " jb _human.ani " ) ;
animationList . push_back ( " jailer.ani " ) ;
animationList . push_back ( " jailer2.ani " ) ;
animationList . push_back ( " jailer3.ani " ) ;
animationList . push_back ( " jailbattle _alien.ani " ) ;
animationList . push_back ( " jailbattle _human.ani " ) ;
animationList . push_back ( " jailer_#1 .ani " ) ;
animationList . push_back ( " jailer_# 2.ani " ) ;
animationList . push_back ( " jailer_# 3.ani " ) ;
animationList . push_back ( " jeannine.ani " ) ;
animationList . push_back ( " lamp.ani " ) ;
animationList . push_back ( " lord_abad.ani " ) ;
@@ -642,7 +659,7 @@ void Director::loadResources(section_t section)
animationList . push_back ( " matatunos.ani " ) ;
animationList . push_back ( " mummy.ani " ) ;
animationList . push_back ( " paco.ani " ) ;
animationList . push_back ( " printer .ani" ) ;
animationList . push_back ( " elsa .ani" ) ;
animationList . push_back ( " qvoid.ani " ) ;
animationList . push_back ( " sam.ani " ) ;
animationList . push_back ( " sigmasua.ani " ) ;
@@ -717,9 +734,9 @@ void Director::loadResources(section_t section)
textureList . push_back ( " abad.png " ) ;
textureList . push_back ( " aerojailer.png " ) ;
textureList . push_back ( " amstrad_cs.png " ) ;
textureList . push_back ( " arounder_fly .png " ) ;
textureList . push_back ( " arounder_stop .png " ) ;
textureList . push_back ( " arounder_walk .png " ) ;
textureList . push_back ( " flying_ arounder.png" ) ;
textureList . push_back ( " stopped_ arounder.png" ) ;
textureList . push_back ( " walking_ arounder.png" ) ;
textureList . push_back ( " arounder.png " ) ;
textureList . push_back ( " arounders_door.png " ) ;
textureList . push_back ( " arounders_machine.png " ) ;
@@ -742,11 +759,11 @@ void Director::loadResources(section_t section)
textureList . push_back ( " dong.png " ) ;
textureList . push_back ( " guitar.png " ) ;
textureList . push_back ( " heavy.png " ) ;
textureList . push_back ( " jailer.png " ) ;
textureList . push_back ( " jailer2.png " ) ;
textureList . push_back ( " jailer3.png " ) ;
textureList . push_back ( " jb _alien.png " ) ;
textureList . push_back ( " jb _human.png " ) ;
textureList . push_back ( " jailer_#1 .png " ) ;
textureList . push_back ( " jailer_# 2.png " ) ;
textureList . push_back ( " jailer_# 3.png " ) ;
textureList . push_back ( " jailbattle _alien.png " ) ;
textureList . push_back ( " jailbattle _human.png " ) ;
textureList . push_back ( " jeannine.png " ) ;
textureList . push_back ( " lamp.png " ) ;
textureList . push_back ( " lord_abad.png " ) ;
@@ -754,7 +771,7 @@ void Director::loadResources(section_t section)
textureList . push_back ( " mummy.png " ) ;
textureList . push_back ( " paco.png " ) ;
textureList . push_back ( " pepe_rosita_job.png " ) ;
textureList . push_back ( " printer .png" ) ;
textureList . push_back ( " elsa .png" ) ;
textureList . push_back ( " qvoid.png " ) ;
textureList . push_back ( " robot.png " ) ;
textureList . push_back ( " sam.png " ) ;
@@ -798,9 +815,9 @@ void Director::loadResources(section_t section)
animationList . push_back ( " abad.ani " ) ;
animationList . push_back ( " aerojailer.ani " ) ;
animationList . push_back ( " amstrad_cs.ani " ) ;
animationList . push_back ( " arounder_fly .ani " ) ;
animationList . push_back ( " arounder_stop .ani " ) ;
animationList . push_back ( " arounder_walk .ani " ) ;
animationList . push_back ( " flying_ arounder.ani" ) ;
animationList . push_back ( " stopped_ arounder.ani" ) ;
animationList . push_back ( " walking_ arounder.ani" ) ;
animationList . push_back ( " arounder.ani " ) ;
animationList . push_back ( " arounders_door.ani " ) ;
animationList . push_back ( " arounders_machine.ani " ) ;
@@ -823,11 +840,11 @@ void Director::loadResources(section_t section)
animationList . push_back ( " dong.ani " ) ;
animationList . push_back ( " guitar.ani " ) ;
animationList . push_back ( " heavy.ani " ) ;
animationList . push_back ( " jailer.ani " ) ;
animationList . push_back ( " jailer2.ani " ) ;
animationList . push_back ( " jailer3.ani " ) ;
animationList . push_back ( " jb _alien.ani " ) ;
animationList . push_back ( " jb _human.ani " ) ;
animationList . push_back ( " jailer_#1 .ani " ) ;
animationList . push_back ( " jailer_# 2.ani " ) ;
animationList . push_back ( " jailer_# 3.ani " ) ;
animationList . push_back ( " jailbattle _alien.ani " ) ;
animationList . push_back ( " jailbattle _human.ani " ) ;
animationList . push_back ( " jeannine.ani " ) ;
animationList . push_back ( " lamp.ani " ) ;
animationList . push_back ( " lord_abad.ani " ) ;
@@ -835,7 +852,7 @@ void Director::loadResources(section_t section)
animationList . push_back ( " mummy.ani " ) ;
animationList . push_back ( " paco.ani " ) ;
animationList . push_back ( " pepe_rosita_job.ani " ) ;
animationList . push_back ( " printer .ani" ) ;
animationList . push_back ( " elsa .ani" ) ;
animationList . push_back ( " qvoid.ani " ) ;
animationList . push_back ( " robot.ani " ) ;
animationList . push_back ( " sam.ani " ) ;
@@ -1009,6 +1026,22 @@ bool Director::setOptions(options_t *options, std::string var, std::string value
options - > configVersion = value ;
}
else if ( var = = " keys " )
{
if ( value = = " OPQA " )
{
options - > keys = ctrl_opqa ;
}
else if ( value = = " WASD " )
{
options - > keys = ctrl_wasd ;
}
else
{
options - > keys = ctrl_cursor ;
}
}
else if ( var = = " videoMode " )
{
if ( value = = " SDL_WINDOW_FULLSCREEN_DESKTOP " )
@@ -1066,13 +1099,14 @@ bool Director::setOptions(options_t *options, std::string var, std::string value
options - > borderEnabled = stringToBool ( value ) ;
}
else if ( var = = " borderSize " )
else if ( var = = " borderWidth " )
{
options - > borderSize = std : : stof ( value ) ;
if ( options - > borderSize < 0.0f | | options - > borderSize > 0.5f )
{
options - > borderSize = 0.1f ;
}
options - > borderWidth = std : : stoi ( value ) ;
}
else if ( var = = " borderHeight " )
{
options - > borderHeight = std : : stoi ( value ) ;
}
else if ( var = = " palette " )
@@ -1169,10 +1203,26 @@ void Director::initInput()
input - > discoverGameController ( ) ;
// Asigna inputs a teclas
input - > bindKey ( INPUT_UP , SDL_SCANCODE_UP ) ;
if ( options - > keys = = ctrl_cursor )
{
input - > bindKey ( INPUT_UP , SDL_SCANCODE_UP ) ;
input - > bindKey ( INPUT_LEFT , SDL_SCANCODE_LEFT ) ;
input - > bindKey ( INPUT_RIGHT , SDL_SCANCODE_RIGHT ) ;
}
else if ( options - > keys = = ctrl_opqa )
{
input - > bindKey ( INPUT_UP , SDL_SCANCODE_Q ) ;
input - > bindKey ( INPUT_LEFT , SDL_SCANCODE_O ) ;
input - > bindKey ( INPUT_RIGHT , SDL_SCANCODE_P ) ;
}
else if ( options - > keys = = ctrl_wasd )
{
input - > bindKey ( INPUT_UP , SDL_SCANCODE_W ) ;
input - > bindKey ( INPUT_LEFT , SDL_SCANCODE_A ) ;
input - > bindKey ( INPUT_RIGHT , SDL_SCANCODE_D ) ;
}
input - > bindKey ( INPUT_DOWN , SDL_SCANCODE_DOWN ) ;
input - > bindKey ( INPUT_LEFT , SDL_SCANCODE_LEFT ) ;
input - > bindKey ( INPUT_RIGHT , SDL_SCANCODE_RIGHT ) ;
input - > bindKey ( INPUT_ACCEPT , SDL_SCANCODE_RETURN ) ;
input - > bindKey ( INPUT_CANCEL , SDL_SCANCODE_ESCAPE ) ;
input - > bindKey ( INPUT_BUTTON_1 , SDL_SCANCODE_SPACE ) ;
@@ -1231,8 +1281,8 @@ bool Director::initSDL()
int incH = 0 ;
if ( options - > borderEnabled )
{
incW = options - > game Width * options - > borderSize ;
incH = options - > game Height * options - > borderSize ;
incW = options - > border Width * 2 ;
incH = options - > border Height * 2 ;
}
window = SDL_CreateWindow ( WINDOW_CAPTION , SDL_WINDOWPOS_CENTERED , SDL_WINDOWPOS_CENTERED , ( options - > gameWidth + incW ) * options - > windowSize , ( options - > gameHeight + incH ) * options - > windowSize , SDL_WINDOW_SHOWN | SDL_WINDOW_ALLOW_HIGHDPI ) ;
@@ -1443,12 +1493,12 @@ bool Director::setFileList()
asset - > add ( prefix + " /data/enemies/abad.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/amstrad_cs.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/amstrad_cs.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/arounder_fly .ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/arounder_fly .png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/arounder_stop .ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/arounder_stop .png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/arounder_walk .ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/arounder_walk .png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/flying_ arounder.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/flying_ arounder.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/stopped_ arounder.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/stopped_ arounder.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/walking_ arounder.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/walking_ arounder.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/arounders_door.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/arounders_door.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/arounders_machine.ani " , t_data ) ;
@@ -1491,16 +1541,16 @@ bool Director::setFileList()
asset - > add ( prefix + " /data/enemies/guitar.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/heavy.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/heavy.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jailer.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jailer.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jailer2.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jailer2.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jailer3.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jailer3.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jb _alien.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jb _alien.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jb _human.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jb _human.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jailer_#1 .ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jailer_#1 .png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jailer_# 2.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jailer_# 2.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jailer_# 3.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jailer_# 3.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jailbattle _alien.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jailbattle _alien.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jailbattle _human.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jailbattle _human.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/jeannine.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/jeannine.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/lamp.ani " , t_data ) ;
@@ -1513,8 +1563,8 @@ bool Director::setFileList()
asset - > add ( prefix + " /data/enemies/mummy.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/paco.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/paco.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/printer .ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/printer .png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/elsa .ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/elsa .png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/qvoid.ani " , t_data ) ;
asset - > add ( prefix + " /data/enemies/qvoid.png " , t_bitmap ) ;
asset - > add ( prefix + " /data/enemies/robot.ani " , t_data ) ;