r164 - in trunk: . data src src/objects
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Thu Sep 8 18:04:27 EDT 2005
Author: jonas
Date: 2005-09-08 18:04:26 -0400 (Thu, 08 Sep 2005)
New Revision: 164
Added:
trunk/data/erik.inf
Modified:
trunk/TODO
trunk/data/lv1.sce
trunk/data/map1.cfg
trunk/data/map2.cfg
trunk/src/common.cpp
trunk/src/common.h
trunk/src/editor.cpp
trunk/src/monsters_common.cpp
trunk/src/objectpools.cpp
trunk/src/objects/baleog.cpp
trunk/src/objects/baleog.h
trunk/src/objects/erik.cpp
trunk/src/objects/fang.cpp
trunk/src/objects/fang.h
trunk/src/objects/olaf.cpp
trunk/src/objects/olaf.h
trunk/src/objects/scorch.cpp
trunk/src/objects/zombie.cpp
trunk/src/objects_common.cpp
trunk/src/objects_common.h
trunk/src/players_common.cpp
Log:
o Support for parameter loading from a file (file=<filename>):
- The files are checked in getObjectbyName before loading the object
- Added a new getFileParameters function
- Erik's animation data is now completely file depending
(added an erik.inf data file)
o Added all animations and audio files as parameters (animations not under
default_parameters though...)
o Renamed some player animation names to include the name of the owner
o loadAnimation now takes a const ParameterMap&
o Fixed a few default options
o Editor Boxes are now placed such that they are inside the screen
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/TODO 2005-09-08 22:04:26 UTC (rev 164)
@@ -13,6 +13,7 @@
o Create a better class hierarchy so we don't have a class playground...
o Better handle the different game states and replace the current conditional model
o IDEA: create dynamical plugins for all objects (or compile all in)
+ o map is not time ordered => leads to unwanted behaviour in editor and filelists
o Move/crash/collisions:
o move should be a property of a common object
Added: trunk/data/erik.inf
===================================================================
--- trunk/data/erik.inf 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/data/erik.inf 2005-09-08 22:04:26 UTC (rev 164)
@@ -0,0 +1,51 @@
+#ERIK
+anim_left= name=erik_idle_left: scale=2: bp_type=rightdown
+anim_right= name=erik_idle_right: scale=2: bp_type=leftdown
+anim_rock_left= name=erik_rock_left: scale=2: bp_type=rightdown
+anim_rock_right= name=erik_rock_right: scale=2: bp_type=leftdown
+anim_walk_left= name=erik_walk_left: scale=2: bp_type=rightdown
+anim_walk_right= name=erik_walk_right: scale=2: bp_type=leftdown
+anim_push_left= name=erik_push_left: scale=2: bp_type=rightdown
+anim_push_right= name=erik_push_right: scale=2: bp_type=leftdown
+anim_fall_middle= name=erik_fall_middle: scale=2
+anim_fall_left= name=erik_fall_left: scale=2: bp_type=rightdown
+anim_fall_right= name=erik_fall_right: scale=2: bp_type=leftdown
+anim_fall_fast_left= name=erik_fall_fast_left: scale=2: bp_type=rightdown
+anim_fall_fast_right= name=erik_fall_fast_right: scale=2: bp_type=leftdown
+anim_crash_left= name=erik_crash_left: scale=2: bp_type=rightdown: type=once
+anim_crash_right= name=erik_crash_right: scale=2: bp_type=leftdown: type=once
+anim_rope_left= name=erik_rope_left: scale=2: bp_type=rightdown
+anim_rope_right= name=erik_rope_right: scale=2: bp_type=leftdown
+anim_teleport_left= name=erik_teleport_left: scale=2: bp_type=rightdown: type=once
+anim_teleport_right= name=erik_teleport_right: scale=2: bp_type=leftdown: type=once
+anim_die_crash_left= name=erik_die_crash_left: scale=2: bp_type=rightdown: type=once
+anim_die_crash_right= name=erik_die_crash_right: scale=2: bp_type=leftdown: type=once
+anim_die_burn_left= name=erik_die_burn_left: scale=2: bp_type=rightdown: type=once
+anim_die_burn_right= name=erik_die_burn_right: scale=2: bp_type=leftdown: type=once
+anim_die_bones_left= name=erik_die_bones_left: scale=2: bp_type=rightdown: type=once
+anim_die_bones_right= name=erik_die_bones_right: scale=2: bp_type=leftdown: type=once
+anim_die_elec_left= name=erik_die_elec_left: scale=2: bp_type=rightdown: type=once
+anim_die_elec_right= name=erik_die_elec_right: scale=2: bp_type=leftdown: type=once
+anim_die_spike_left= name=erik_die_spike_left: scale=2: bp_type=rightdown: type=once
+anim_die_spike_right= name=erik_die_spike_right: scale=2: bp_type=leftdown: type=once
+anim_bar= name=bar_erik: scale=2: type=once
+#anim_die_water and anim_climb not specified
+
+anim_erik_jump_left= name=erik_jump_left: scale=2: bp_type=rightdown: type=once
+anim_erik_jump_right= name=erik_jump_right: scale=2: bp_type=leftdown: type=once
+anim_erik_jump2_left= name=erik_jump2_left: scale=2: bp_type=rightdown: type=once
+anim_erik_jump2_right= name=erik_jump2_right: scale=2: bp_type=leftdown: type=once
+anim_erik_start_run_left= name=erik_start_run_left: scale=2: bp_type=rightdown: type=once
+anim_erik_start_run_right= name=erik_start_run_right: scale=2: bp_type=leftdown: type=once
+anim_erik_run_left= name=erik_run_left: scale=2: bp_type=rightdown: type=once
+anim_erik_run_right= name=erik_run_right: scale=2: bp_type=leftdown: type=once
+anim_erik_swim_left= name=erik_swim_left: scale=2: bp_type=rightdown: type=once
+anim_erik_swim_right= name=erik_swim_right: scale=2: bp_type=leftdown: type=once
+anim_erik_swim_up_left= name=erik_swim_up_left: scale=2: bp_type=rightdown: type=once
+anim_erik_swim_up_right= name=erik_swim_up_right: scale=2: bp_type=leftdown: type=once
+anim_erik_hit_water_left= name=erik_hit_water_left: scale=2: bp_type=rightdown: type=once
+anim_erik_hit_water_right= name=erik_hit_water_right: scale=2: bp_type=leftdown: type=once
+
+au_hit= erikhit.wav
+au_jump= rboots.wav
+#au_run not specified
Modified: trunk/data/lv1.sce
===================================================================
--- trunk/data/lv1.sce 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/data/lv1.sce 2005-09-08 22:04:26 UTC (rev 164)
@@ -1,4 +1,3 @@
-#HEADER
#ENDHEADER
map1
Modified: trunk/data/map1.cfg
===================================================================
--- trunk/data/map1.cfg 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/data/map1.cfg 2005-09-08 22:04:26 UTC (rev 164)
@@ -16,7 +16,7 @@
Zombie 300 550
#Plant 100 0 time_recover=5000
-Erik
+Erik file=erik.inf
#Baleog
Olaf 0 5
Scorch 0 10
Modified: trunk/data/map2.cfg
===================================================================
--- trunk/data/map2.cfg 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/data/map2.cfg 2005-09-08 22:04:26 UTC (rev 164)
@@ -25,7 +25,7 @@
#Vikings
Fang 0 116
-Erik 0 116
+Erik 0 116 file=erik.inf
Olaf 0 116
#Scorch 0 116
#Baleog 0 116
Modified: trunk/src/common.cpp
===================================================================
--- trunk/src/common.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/common.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -34,6 +34,32 @@
return s.str();
}
+ParameterMap getFileParameters(const string& filelist) {
+ istringstream filelist_s(filelist);
+ ifstream file;
+ string filename,parameterlist;
+ ParameterMap file_parameters, line_parameters;
+ ParameterMap::iterator it;
+
+ while (std::getline(filelist_s,filename,':')) {
+ file.open((config.datadir+filename).c_str());
+ if (!file) continue;
+ while (getline(file,parameterlist)) {
+ if (parameterlist.empty()) continue;
+ if (parameterlist[0]=='#') continue;
+ line_parameters=getParameters(parameterlist);
+ it=line_parameters.begin();
+ while (it!=line_parameters.end()) {
+ file_parameters[(*it).first]=(*it).second;
+ ++it;
+ }
+ }
+ file.close();
+ file.clear();
+ }
+ return file_parameters;
+}
+
ParameterMap getParameters(const string& parameterlist, char delim, char delimsub) {
ParameterMap parameters;
istringstream parameterlist_s(parameterlist);
@@ -79,7 +105,7 @@
return parameterlist;
}
-bool hasParam(ParameterMap& parameters, const string& str) {
+bool hasParam(const ParameterMap& parameters, const string& str) {
if (parameters.find(str)!=parameters.end()) return true;
else return false;
}
Modified: trunk/src/common.h
===================================================================
--- trunk/src/common.h 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/common.h 2005-09-08 22:04:26 UTC (rev 164)
@@ -210,12 +210,14 @@
/// \return 1 if the file was found, 0 otherwise
/// \todo Create a better config format
int readConfig(const string& filename);
+/// Set parameters from files
+ParameterMap getFileParameters(const string& filelist);
/// Parse a string parameter list and return it as a map<string,string>
ParameterMap getParameters(const string& parameterlist, char delim=',', char delimsub='=');
/// Convert the parameter map to a string
string putParameters(const ParameterMap& parameters, char delim=',', char delimsub='=');
/// Returns true if the parameter was found
-bool hasParam(ParameterMap& parameters, const string& str);
+bool hasParam(const ParameterMap& parameters, const string& str);
/// Returns the direction from the given string: simply include one or a
/// combination of "up", "down", "left", "right" in the string
Uint16 getDirFromString(const string& str);
Modified: trunk/src/editor.cpp
===================================================================
--- trunk/src/editor.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/editor.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -117,6 +117,11 @@
}
area.w=maxwidth+2*WFONT;
area.h=entries.size()*(DFONT+font->getHeight())+2*WFONT+font_title->getHeight();
+
+ area.x+=min(0,(int)(scenario->area->w-area.x-area.w));
+ area.y+=min(0,(int)(scenario->area->h-area.y-area.h));
+ if (area.x<0) area.x=0;
+ if (area.y<0) area.y=0;
return area;
}
Modified: trunk/src/monsters_common.cpp
===================================================================
--- trunk/src/monsters_common.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/monsters_common.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -13,15 +13,17 @@
Monster::Monster(Sint16 xcord, Sint16 ycord, ParameterMap& parameters):
Character(xcord,ycord,parameters),
Dai(0),
- Dattack(0),
- anim_left(new EmptyAnimation(&anim_right)),
- anim_right(new EmptyAnimation()) {
+ Dattack(0) {
state=STATE_FALL;
otype|=OTYPE_MONSTER;
enemy_types|=OTYPE_PLAYER;
dense_types|=OTYPE_PLAYER;
/* Parameters */
+ if (hasParam(parameters,"anim_left")) anim_left=loadAnimation(getParameters(parameters["anim_left"],':'));
+ else anim_left.reset(new EmptyAnimation(&anim_right));
+ if (hasParam(parameters,"anim_right")) anim_right=loadAnimation(getParameters(parameters["anim_right"],':'));
+ else anim_right.reset(new EmptyAnimation(&anim_orig));
if (!hasParam(parameters,"maxhealth")) maxhealth=1;
if (!hasParam(parameters,"health")) health=min(1,(int)maxhealth);
if (!hasParam(parameters,"maxspeedx")) maxspeedx=50;
Modified: trunk/src/objectpools.cpp
===================================================================
--- trunk/src/objectpools.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objectpools.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -77,6 +77,7 @@
while (i!=objectspool.end()) i=removeObject(i);
}
void ObjectsPool::setDefaultObjParam() {
+ Object::default_parameters["file"]="";
Object::default_parameters["name"]="";
Object::default_parameters["w"]="";
Object::default_parameters["h"]="";
@@ -122,7 +123,7 @@
Bomb::default_parameters["audio_bomb"]="explsn.wav";
Character::default_parameters=Object::default_parameters;
- Character::default_parameters["maxhealth"]=1;
+ Character::default_parameters["maxhealth"]="1";
Character::default_parameters["health"]="1";
Character::default_parameters["maxspeedx"]="300";
Character::default_parameters["maxspeedy"]="0";
@@ -133,7 +134,9 @@
TriggeredBomb::default_parameters["audio_bomb"]="explsn.wav";
Monster::default_parameters=Character::default_parameters;
- Monster::default_parameters["maxhealth"]=1;
+ Monster::default_parameters["anim_left"]="";
+ Monster::default_parameters["anim_right"]="";
+ Monster::default_parameters["maxhealth"]="1";
Monster::default_parameters["health"]="1";
Monster::default_parameters["maxspeedx"]="50";
Monster::default_parameters["maxspeedy"]="0";
@@ -151,11 +154,32 @@
Player::default_parameters["health"]="3";
Player::default_parameters["maxspeedx"]="300";
Player::default_parameters["maxspeedy"]="200";
+ Player::default_parameters["audio_land"]="dizzy.wav";
+ Player::default_parameters["audio_act"]="button.wav";
+ Player::default_parameters["audio_useerror"]="useerror.wav";
+ Player::default_parameters["audio_newitem"]="pickup.wav";
+ Player::default_parameters["audio_hit"]="vikhit.wav";
+ Player::default_parameters["audio_elec"]="elecdth.wav";
+ Player::default_parameters["audio_drown"]="drown.wav";
+ Player::default_parameters["audio_fire"]="fireball.wav";
+ Player::default_parameters["audio_die"]="bones.wav";
+ Player::default_parameters["audio_heal"]="usefood1.wav";
+
Erik::default_parameters=Player::default_parameters;
+ Erik::default_parameters["audio_jump"]="rboots.wav";
+ Erik::default_parameters["audio_run"]="";
Olaf::default_parameters=Player::default_parameters;
+ Olaf::default_parameters["audio_small"]="blob.wav";
+ Olaf::default_parameters["audio_big"]="unblob.wav";
+ Olaf::default_parameters["audio_fart"]="fart1.wav";
Scorch::default_parameters=Player::default_parameters;
+ Scorch::default_parameters["audio_swing"]="flapwngs.wav";
+ Scorch::default_parameters["audio_tired"]="flwings.wav";
Fang::default_parameters=Player::default_parameters;
+ Fang::default_parameters["audio_jump"]="fangjump.wav";
+ Fang::default_parameters["audio_claw"]="wolfjmp1.wav";
Baleog::default_parameters=Player::default_parameters;
+ Baleog::default_parameters["audio_sword"]="swrdsw2.wav";
}
const ParameterMap& ObjectsPool::getDefaultObjParambyName(const string& obj) {
@@ -190,7 +214,18 @@
else return empty_parameter;
}
-Object* ObjectsPool::addObjectbyName(const string& obj, Sint16 x, Sint16 y, ParameterMap& parameters) {
+Object* ObjectsPool::addObjectbyName(const string& obj, Sint16 x, Sint16 y, ParameterMap& objparam) {
+ ParameterMap parameters;
+ if (hasParam(objparam,"file")) {
+ parameters=getFileParameters(objparam["file"]);
+ ParameterMap::iterator it=objparam.begin();
+ while (it!=objparam.end()) {
+ if ((*it).first!="file") parameters[(*it).first]=(*it).second;
+ ++it;
+ }
+ } else {
+ parameters=objparam;
+ }
//Set names...
if (!hasParam(parameters,"name")) parameters["name"]=getNextObjectName(obj);
@@ -207,6 +242,7 @@
else if (obj=="Key") return (addObject(new Key(x,y,parameters)));
else if (obj=="Bomb") return (addObject(new Bomb(x,y,parameters)));
else if (obj=="TriggeredBomb") return (addCharacter(new TriggeredBomb(x,y,parameters)));
+ else if (obj=="DeadPlayer") return (addCharacter(new DeadPlayer(x,y,parameters)));
else if (obj=="Erik") return (addPlayer(new Erik(x,y,parameters)));
else if (obj=="Olaf") return (addPlayer(new Olaf(x,y,parameters)));
else if (obj=="Baleog") return (addPlayer(new Baleog(x,y,parameters)));
Modified: trunk/src/objects/baleog.cpp
===================================================================
--- trunk/src/objects/baleog.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/baleog.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -10,21 +10,28 @@
Baleog::Baleog(Sint16 xcord, Sint16 ycord, ParameterMap& parameters):
Player(xcord,ycord,parameters) {
- anim_left=loadAnimation(scenario->imgcache->loadImage(1,"baleog1_left.bmp"));
- anim_right=loadAnimation(scenario->imgcache->loadImage(1,"baleog1_right.bmp"));
- anim_walk_left=loadAnimation(scenario->imgcache->loadImage("baleog1-run_left.png"),8);
- anim_walk_right=loadAnimation(scenario->imgcache->loadImage(8,"baleog1-run_right.png"),8);
- anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_LD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_RD,ATYPE_ONCE,calcFPS(1,T_IRR));
weapon=Weapon(-1,W_STRIKE);
- anim_sword_left=loadAnimation(scenario->imgcache->loadImage(8,"BaleogCyborg_Slash_left.png"),8,BP_MD,ATYPE_ONCE);
- anim_sword_right=loadAnimation(scenario->imgcache->loadImage(8,"BaleogCyborg_Slash_right.png"),8,BP_MD,ATYPE_ONCE);
- au_sword=scenario->sndcache->loadWAV("swrdsw2.wav");
+
+ /* Parameters */
+ if (!hasParam(parameters,"anim_left")) anim_left=loadAnimation(scenario->imgcache->loadImage(1,"baleog1_left.bmp"));
+ if (!hasParam(parameters,"anim_right")) anim_right=loadAnimation(scenario->imgcache->loadImage(1,"baleog1_right.bmp"));
+ if (!hasParam(parameters,"anim_walk_left")) anim_walk_left=loadAnimation(scenario->imgcache->loadImage("baleog1-run_left.png"),8);
+ if (!hasParam(parameters,"anim_walk_right")) anim_walk_right=loadAnimation(scenario->imgcache->loadImage(8,"baleog1-run_right.png"),8);
+ if (!hasParam(parameters,"anim_crash_left")) anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_LD,ATYPE_ONCE,calcFPS(1,T_IRR));
+ if (!hasParam(parameters,"anim_crash_right")) anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_RD,ATYPE_ONCE,calcFPS(1,T_IRR));
+
+ if (hasParam(parameters,"anim_baleog_sword_left")) anim_baleog_sword_left=loadAnimation(getParameters(parameters["anim_baleog_sword_left"],':'));
+ else anim_baleog_sword_left=loadAnimation(scenario->imgcache->loadImage(8,"BaleogCyborg_Slash_left.png"),8,BP_MD,ATYPE_ONCE);
+ if (hasParam(parameters,"anim_baleog_sword_right")) anim_baleog_sword_left=loadAnimation(getParameters(parameters["anim_baleog_sword_right"],':'));
+ else anim_baleog_sword_right=loadAnimation(scenario->imgcache->loadImage(8,"BaleogCyborg_Slash_right.png"),8,BP_MD,ATYPE_ONCE);
+
+ if (hasParam(parameters,"audio_sword")) au_sword=scenario->sndcache->loadWAV(parameters["audio_sword"]);
+ else au_sword=scenario->sndcache->loadWAV("swrdsw2.wav");
}
Baleog::~Baleog() { }
//Baleog1: Sword attack
void Baleog::in_sp1() {
- setEvent(new EAttack(this,10,&weapon,(state&STATE_LEFT) ? DIR_LEFT : DIR_RIGHT,10,enemy_types,0,0,au_sword,(state&STATE_LEFT) ? anim_sword_left : anim_sword_right));
+ setEvent(new EAttack(this,10,&weapon,(state&STATE_LEFT) ? DIR_LEFT : DIR_RIGHT,10,enemy_types,0,0,au_sword,(state&STATE_LEFT) ? anim_baleog_sword_left : anim_baleog_sword_right));
}
Modified: trunk/src/objects/baleog.h
===================================================================
--- trunk/src/objects/baleog.h 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/baleog.h 2005-09-08 22:04:26 UTC (rev 164)
@@ -12,6 +12,6 @@
virtual void in_sp1();
private:
Mix_Chunk* au_sword;
- EmptyAnimationPtr anim_sword_left;
- EmptyAnimationPtr anim_sword_right;
+ EmptyAnimationPtr anim_baleog_sword_left;
+ EmptyAnimationPtr anim_baleog_sword_right;
};
Modified: trunk/src/objects/erik.cpp
===================================================================
--- trunk/src/objects/erik.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/erik.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -15,64 +15,29 @@
jump(V_JUMP),
jump2(V_JUMP2) {
weapon=Weapon(-1,W_PRESSURE,WS_PRESSURE);
-/*
- anim_left=loadAnimation(scenario->imgcache->loadImage("erik1_left.bmp"));
- anim_right=loadAnimation(scenario->imgcache->loadImage(1,"erik1_right.bmp"));
- anim_land_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_LD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_land_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_RD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_LD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_RD,ATYPE_ONCE,calcFPS(1,T_IRR));
-*/
- anim_left=loadAnimation("erik_idle_left",config.lvlscale,BP_RD);
- anim_right=loadAnimation("erik_idle_right",config.lvlscale,BP_LD);
- anim_rock_left=loadAnimation("erik_rock_left",config.lvlscale,BP_RD);
- anim_rock_right=loadAnimation("erik_rock_right",config.lvlscale,BP_LD);
- anim_walk_left=loadAnimation("erik_walk_left",config.lvlscale,BP_RD);
- anim_walk_right=loadAnimation("erik_walk_right",config.lvlscale,BP_LD);
- anim_push_left=loadAnimation("erik_push_left",config.lvlscale,BP_RD);
- anim_push_right=loadAnimation("erik_push_right",config.lvlscale,BP_LD);
- anim_fall_middle=loadAnimation("erik_fall_middle",config.lvlscale);
- anim_fall_left=loadAnimation("erik_fall_left",config.lvlscale,BP_RD);
- anim_fall_right=loadAnimation("erik_fall_right",config.lvlscale,BP_LD);
- anim_fall_fast_left=loadAnimation("erik_fall_fast_left",config.lvlscale,BP_RD);
- anim_fall_fast_right=loadAnimation("erik_fall_fast_right",config.lvlscale,BP_LD);
- anim_crash_left=loadAnimation("erik_crash_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_crash_right=loadAnimation("erik_crash_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_rope_left=loadAnimation("erik_rope_left",config.lvlscale,BP_RD);
- anim_rope_right=loadAnimation("erik_rope_right",config.lvlscale,BP_LD);
- anim_teleport_left=loadAnimation("erik_teleport_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_teleport_right=loadAnimation("erik_teleport_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_die_crash_left=loadAnimation("erik_die_crash_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_die_crash_right=loadAnimation("erik_die_crash_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_die_burn_left=loadAnimation("erik_die_burn_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_die_burn_right=loadAnimation("erik_die_burn_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_die_bones_left=loadAnimation("erik_die_bones_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_die_bones_right=loadAnimation("erik_die_bones_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_die_elec_left=loadAnimation("erik_die_elec_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_die_elec_right=loadAnimation("erik_die_elec_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_die_spike_left=loadAnimation("erik_die_spike_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_die_spike_right=loadAnimation("erik_die_spike_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_bar=loadAnimation("bar_erik",config.lvlscale,BP_MD,ATYPE_ONCE);
- /* anim_die_water is missing as eric doesn't die under water, anim_climb is missing as well */
- anim_erik_jump_left=loadAnimation("erik_jump_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_erik_jump_right=loadAnimation("erik_jump_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_erik_jump2_left=loadAnimation("erik_jump2_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_erik_jump2_right=loadAnimation("erik_jump2_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_erik_start_run_left=loadAnimation("erik_start_run_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_erik_start_run_right=loadAnimation("erik_start_run_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_erik_run_left=loadAnimation("erik_run_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_erik_run_right=loadAnimation("erik_run_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_erik_swim_left=loadAnimation("erik_swim_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_erik_swim_right=loadAnimation("erik_swim_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_erik_swim_up_left=loadAnimation("erik_swim_up_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_erik_swim_up_right=loadAnimation("erik_swim_up_right",config.lvlscale,BP_LD,ATYPE_ONCE);
- anim_erik_hit_water_left=loadAnimation("erik_hit_water_left",config.lvlscale,BP_RD,ATYPE_ONCE);
- anim_erik_hit_water_right=loadAnimation("erik_hit_water_right",config.lvlscale,BP_LD,ATYPE_ONCE);
+ /* Parameters */
+ if (hasParam(parameters,"anim_erik_jump_left")) anim_erik_jump_left=loadAnimation(getParameters(parameters["anim_erik_jump_left"],':'));
+ if (hasParam(parameters,"anim_erik_jump_right")) anim_erik_jump_right=loadAnimation(getParameters(parameters["anim_erik_jump_right"],':'));
+ if (hasParam(parameters,"anim_erik_jump2_left")) anim_erik_jump2_left=loadAnimation(getParameters(parameters["anim_erik_jump2_left"],':'));
+ if (hasParam(parameters,"anim_erik_jump2_right")) anim_erik_jump2_right=loadAnimation(getParameters(parameters["anim_erik_jump2_right"],':'));
+ if (hasParam(parameters,"anim_erik_start_run_left")) anim_erik_start_run_left=loadAnimation(getParameters(parameters["anim_erik_start_run_left"],':'));
+ if (hasParam(parameters,"anim_erik_start_run_right")) anim_erik_start_run_right=loadAnimation(getParameters(parameters["anim_erik_start_run_right"],':'));
+ if (hasParam(parameters,"anim_erik_run_left")) anim_erik_run_left=loadAnimation(getParameters(parameters["anim_erik_run_left"],':'));
+ if (hasParam(parameters,"anim_erik_run_right")) anim_erik_run_right=loadAnimation(getParameters(parameters["anim_erik_run_right"],':'));
+ if (hasParam(parameters,"anim_erik_swim_left")) anim_erik_swim_left=loadAnimation(getParameters(parameters["anim_erik_swim_left"],':'));
+ if (hasParam(parameters,"anim_erik_swim_right")) anim_erik_swim_right=loadAnimation(getParameters(parameters["anim_erik_swim_right"],':'));
+ if (hasParam(parameters,"anim_erik_swim_up_left")) anim_erik_swim_up_left=loadAnimation(getParameters(parameters["anim_erik_swim_up_left"],':'));
+ if (hasParam(parameters,"anim_erik_swim_up_right")) anim_erik_swim_up_right=loadAnimation(getParameters(parameters["anim_erik_swim_up_right"],':'));
+ if (hasParam(parameters,"anim_erik_hit_water_left")) anim_erik_hit_water_left=loadAnimation(getParameters(parameters["anim_erik_hit_water_left"],':'));
+ if (hasParam(parameters,"anim_erik_hit_water_right")) anim_erik_hit_water_right=loadAnimation(getParameters(parameters["anim_erik_hit_water_right"],':'));
- au_jump=scenario->sndcache->loadWAV("rboots.wav");
- au_hit=scenario->sndcache->loadWAV("erikhit.wav");
- au_run=NULL;
+ if (!hasParam(parameters,"audio_hit")) au_hit=scenario->sndcache->loadWAV("erikhit.wav");
+
+ if (hasParam(parameters,"audio_jump")) au_jump=scenario->sndcache->loadWAV(parameters["audio_jump"]);
+ else au_jump=scenario->sndcache->loadWAV("rboots.wav");
+ if (hasParam(parameters,"audio_run")) au_jump=scenario->sndcache->loadWAV(parameters["audio_run"]);
+ else au_run=NULL;
}
Erik::~Erik() { }
Modified: trunk/src/objects/fang.cpp
===================================================================
--- trunk/src/objects/fang.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/fang.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -12,17 +12,26 @@
Player(xcord,ycord,parameters),
jump(V_JUMP) {
weapon=Weapon(-1,W_STRIKE);
- anim_left=loadAnimation(scenario->imgcache->loadImage(4,"Fang_Breath_left.png"),4);
- anim_right=loadAnimation(scenario->imgcache->loadImage(4,"Fang_Breath_right.png"),4);
- anim_walk_left=loadAnimation(scenario->imgcache->loadImage(8,"Fang_walk_left.png"),8);
- anim_walk_right=loadAnimation(scenario->imgcache->loadImage(8,"Fang_walk_right.png"),8);
- anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_claw_left=loadAnimation(scenario->imgcache->loadImage(8,"Fang_Clawslash_left.png"),8,BP_MD,ATYPE_ONCE);
- anim_claw_right=loadAnimation(scenario->imgcache->loadImage(8,"Fang_Clawslash_right.png"),8,BP_MD,ATYPE_ONCE);
- au_hit=scenario->sndcache->loadWAV("wolfhit.wav");
- au_claw=scenario->sndcache->loadWAV("wolfjmp1.wav");
- au_jump=scenario->sndcache->loadWAV("fangjump.wav");
+
+ /* Parameters */
+ if (!hasParam(parameters,"anim_left")) anim_left=loadAnimation(scenario->imgcache->loadImage(4,"Fang_Breath_left.png"),4);
+ if (!hasParam(parameters,"anim_right")) anim_right=loadAnimation(scenario->imgcache->loadImage(4,"Fang_Breath_right.png"),4);
+ if (!hasParam(parameters,"anim_walk_left")) anim_walk_left=loadAnimation(scenario->imgcache->loadImage(8,"Fang_walk_left.png"),8);
+ if (!hasParam(parameters,"anim_walk_right")) anim_walk_right=loadAnimation(scenario->imgcache->loadImage(8,"Fang_walk_right.png"),8);
+ if (!hasParam(parameters,"anim_crash_left")) anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
+ if (!hasParam(parameters,"anim_crash_right")) anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
+
+ if (hasParam(parameters,"anim_fang_claw_left")) anim_fang_claw_left=loadAnimation(getParameters(parameters["anim_fang_claw_left"],':'));
+ else anim_fang_claw_left=loadAnimation(scenario->imgcache->loadImage(8,"Fang_Clawslash_left.png"),8,BP_MD,ATYPE_ONCE);
+ if (hasParam(parameters,"anim_fang_claw_right")) anim_fang_claw_right=loadAnimation(getParameters(parameters["anim_fang_claw_right"],':'));
+ else anim_fang_claw_right=loadAnimation(scenario->imgcache->loadImage(8,"Fang_Clawslash_right.png"),8,BP_MD,ATYPE_ONCE);
+
+ if (!hasParam(parameters,"audio_hit")) au_hit=scenario->sndcache->loadWAV("wolfhit.wav");
+
+ if (hasParam(parameters,"audio_claw")) au_claw=scenario->sndcache->loadWAV(parameters["audio_claw"]);
+ else au_claw=scenario->sndcache->loadWAV("wolfjmp1.wav");
+ if (hasParam(parameters,"audio_jump")) au_jump=scenario->sndcache->loadWAV(parameters["audio_jump"]);
+ else au_jump=scenario->sndcache->loadWAV("fangjump.wav");
}
Fang::~Fang() { }
@@ -82,7 +91,7 @@
}
void Fang::in_sp2() {
- setEvent(new EAttack(this,10,&weapon,(state&STATE_LEFT) ? DIR_LEFT : DIR_RIGHT,10,enemy_types,0,0,au_claw,(state&STATE_LEFT) ? anim_claw_left : anim_claw_right));
+ setEvent(new EAttack(this,10,&weapon,(state&STATE_LEFT) ? DIR_LEFT : DIR_RIGHT,10,enemy_types,0,0,au_claw,(state&STATE_LEFT) ? anim_fang_claw_left : anim_fang_claw_right));
}
void Fang::crash(Uint16 dir) {
Modified: trunk/src/objects/fang.h
===================================================================
--- trunk/src/objects/fang.h 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/fang.h 2005-09-08 22:04:26 UTC (rev 164)
@@ -35,8 +35,8 @@
virtual void clearStates(bool reset=false);
private:
virtual void crash(Uint16 dir=DIR_DOWN);
- EmptyAnimationPtr anim_claw_left;
- EmptyAnimationPtr anim_claw_right;
+ EmptyAnimationPtr anim_fang_claw_left;
+ EmptyAnimationPtr anim_fang_claw_right;
Mix_Chunk* au_jump;
Mix_Chunk* au_claw;
Sint16 jump;
Modified: trunk/src/objects/olaf.cpp
===================================================================
--- trunk/src/objects/olaf.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/olaf.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -12,30 +12,47 @@
Olaf::Olaf(Sint16 xcord, Sint16 ycord, ParameterMap& parameters):
Player(xcord,ycord,parameters),
fart(V_FART) {
- anim_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_left.bmp"));
- anim_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_right.bmp"));
- anim_walk_left=loadAnimation(scenario->imgcache->loadImage(8,"olaf1-run_left.png"),8);
- anim_walk_right=loadAnimation(scenario->imgcache->loadImage(8,"olaf1-run_right.png"),8);
- anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_die_bones_left=loadAnimation(scenario->imgcache->loadImage(60,0,"kuru.bmp"),12,BP_MD,ATYPE_ONCE,25);
+ /* Parameters */
+ if (!hasParam(parameters,"anim_left")) anim_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_left.bmp"));
+ if (!hasParam(parameters,"anim_right")) anim_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_right.bmp"));
+ if (!hasParam(parameters,"anim_walk_left")) anim_walk_left=loadAnimation(scenario->imgcache->loadImage(8,"olaf1-run_left.png"),8);
+ if (!hasParam(parameters,"anim_walk_right")) anim_walk_right=loadAnimation(scenario->imgcache->loadImage(8,"olaf1-run_right.png"),8);
+ if (!hasParam(parameters,"anim_crash_left")) anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
+ if (!hasParam(parameters,"anim_crash_right")) anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
+ if (!hasParam(parameters,"anim_die_bones_left")) anim_die_bones_left=loadAnimation(scenario->imgcache->loadImage(60,0,"kuru.bmp"),12,BP_MD,ATYPE_ONCE,25);
- anim_small_left=loadAnimation(scenario->imgcache->loadImage(7,"Olaf_Small_Walk_left.png"),1);
- anim_small_right=loadAnimation(scenario->imgcache->loadImage(7,"Olaf_Small_Walk_right.png"),1);
- anim_walk_small_left=loadAnimation(scenario->imgcache->loadImage(7,"Olaf_Small_Walk_left.png"),7,BP_MD,ATYPE_LOOP,3.5);
- anim_walk_small_right=loadAnimation(scenario->imgcache->loadImage(7,"Olaf_Small_Walk_right.png"),7,BP_MD,ATYPE_LOOP,3.5);
- anim_shield_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_fall_shield_left.bmp"));
- anim_shield_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_fall_shield_right.bmp"));
- anim_walk_shield_left.reset(new EmptyAnimation(&anim_shield_left));
- anim_walk_shield_right.reset(new EmptyAnimation(&anim_shield_right));
- anim_fall_shield_left.reset(new EmptyAnimation(&anim_shield_left));
- anim_fall_shield_right.reset(new EmptyAnimation(&anim_shield_right));
- au_small=scenario->sndcache->loadWAV("blob.wav");
- au_big=scenario->sndcache->loadWAV("unblob.wav");
- au_fart=scenario->sndcache->loadWAV("fart1.wav");
- au_hit=scenario->sndcache->loadWAV("fathit.wav");
+ if (hasParam(parameters,"anim_olaf_small_left")) anim_olaf_small_left=loadAnimation(getParameters(parameters["anim_olaf_small_left"],':'));
+ else anim_olaf_small_left=loadAnimation(scenario->imgcache->loadImage(7,"Olaf_Small_Walk_left.png"),1);
+ if (hasParam(parameters,"anim_olaf_small_right")) anim_olaf_small_right=loadAnimation(getParameters(parameters["anim_olaf_small_right"],':'));
+ else anim_olaf_small_right=loadAnimation(scenario->imgcache->loadImage(7,"Olaf_Small_Walk_right.png"),1);
+ if (hasParam(parameters,"anim_olaf_walk_small_left")) anim_olaf_walk_small_left=loadAnimation(getParameters(parameters["anim_olaf_walk_small_left"],':'));
+ else anim_olaf_walk_small_left=loadAnimation(scenario->imgcache->loadImage(7,"Olaf_Small_Walk_left.png"),7,BP_MD,ATYPE_LOOP,3.5);
+ if (hasParam(parameters,"anim_olaf_walk_small_right")) anim_olaf_walk_small_right=loadAnimation(getParameters(parameters["anim_olaf_walk_small_right"],':'));
+ else anim_olaf_walk_small_right=loadAnimation(scenario->imgcache->loadImage(7,"Olaf_Small_Walk_right.png"),7,BP_MD,ATYPE_LOOP,3.5);
+ if (hasParam(parameters,"anim_olaf_shield_left")) anim_olaf_shield_left=loadAnimation(getParameters(parameters["anim_olaf_shield_left"],':'));
+ else anim_olaf_shield_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_fall_shield_left.bmp"));
+ if (hasParam(parameters,"anim_olaf_shield_right")) anim_olaf_shield_right=loadAnimation(getParameters(parameters["anim_olaf_shield_right"],':'));
+ else anim_olaf_shield_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_fall_shield_right.bmp"));
+ if (hasParam(parameters,"anim_olaf_walk_shield_left")) anim_olaf_walk_shield_left=loadAnimation(getParameters(parameters["anim_olaf_walk_shield_left"],':'));
+ else anim_olaf_walk_shield_left.reset(new EmptyAnimation(&anim_olaf_shield_left));
+ if (hasParam(parameters,"anim_olaf_walk_shield_right")) anim_olaf_walk_shield_right=loadAnimation(getParameters(parameters["anim_olaf_walk_shield_right"],':'));
+ else anim_olaf_walk_shield_right.reset(new EmptyAnimation(&anim_olaf_shield_right));
+ if (hasParam(parameters,"anim_olaf_fall_shield_left")) anim_olaf_fall_shield_left=loadAnimation(getParameters(parameters["anim_olaf_fall_shield_left"],':'));
+ else anim_olaf_fall_shield_left.reset(new EmptyAnimation(&anim_olaf_shield_left));
+ if (hasParam(parameters,"anim_olaf_fall_shield_right")) anim_olaf_fall_shield_right=loadAnimation(getParameters(parameters["anim_olaf_fall_shield_right"],':'));
+ else anim_olaf_fall_shield_right.reset(new EmptyAnimation(&anim_olaf_shield_right));
+
+ if (!hasParam(parameters,"audio_hit")) au_hit=scenario->sndcache->loadWAV("fathit.wav");
+
+ if (hasParam(parameters,"audio_small")) au_small=scenario->sndcache->loadWAV(parameters["audio_small"]);
+ else au_small=scenario->sndcache->loadWAV("blob.wav");
+ if (hasParam(parameters,"audio_big")) au_big=scenario->sndcache->loadWAV(parameters["audio_big"]);
+ else au_big=scenario->sndcache->loadWAV("unblob.wav");
+ if (hasParam(parameters,"audio_fart")) au_fart=scenario->sndcache->loadWAV(parameters["audio_fart"]);
+ else au_fart=scenario->sndcache->loadWAV("fart1.wav");
+
normal_size=pos;
- small_size=anim_small_right->getFrameDim();
+ small_size=anim_olaf_small_right->getFrameDim();
}
Olaf::~Olaf() { }
@@ -43,42 +60,42 @@
void Olaf::updateAnimState() {
if (state&STATE_SMALL) {
if (state&STATE_LEFT) {
- anim_small_left->setFallBack(&anim_walk_left);
- setAnim(anim_walk_small_left);
- anim_small_left->setFallBack(&anim_left);
+ anim_olaf_small_left->setFallBack(&anim_walk_left);
+ setAnim(anim_olaf_walk_small_left);
+ anim_olaf_small_left->setFallBack(&anim_left);
} else {
- anim_small_right->setFallBack(&anim_walk_right);
- setAnim(anim_walk_small_right);
- anim_small_right->setFallBack(&anim_right);
+ anim_olaf_small_right->setFallBack(&anim_walk_right);
+ setAnim(anim_olaf_walk_small_right);
+ anim_olaf_small_right->setFallBack(&anim_right);
}
} else if (state&STATE_SHIELD) {
otype|=OTYPE_DENSE_D;
if (state&STATE_LEFT) {
if (state&STATE_FALL) {
- anim_shield_left->setFallBack(&anim_fall_left);
- setAnim(anim_fall_shield_left);
- anim_shield_left->setFallBack(&anim_left);
+ anim_olaf_shield_left->setFallBack(&anim_fall_left);
+ setAnim(anim_olaf_fall_shield_left);
+ anim_olaf_shield_left->setFallBack(&anim_left);
} else {
if (state&STATE_MLEFT) {
- anim_shield_left->setFallBack(&anim_walk_left);
- setAnim(anim_walk_shield_left);
- anim_shield_left->setFallBack(&anim_left);
+ anim_olaf_shield_left->setFallBack(&anim_walk_left);
+ setAnim(anim_olaf_walk_shield_left);
+ anim_olaf_shield_left->setFallBack(&anim_left);
} else {
- setAnim(anim_shield_left);
+ setAnim(anim_olaf_shield_left);
}
}
} else {
if (state&STATE_FALL) {
- anim_shield_right->setFallBack(&anim_fall_right);
- setAnim(anim_fall_shield_right);
- anim_shield_right->setFallBack(&anim_right);
+ anim_olaf_shield_right->setFallBack(&anim_fall_right);
+ setAnim(anim_olaf_fall_shield_right);
+ anim_olaf_shield_right->setFallBack(&anim_right);
} else {
if (state&STATE_MRIGHT) {
- anim_shield_right->setFallBack(&anim_walk_right);
- setAnim(anim_walk_shield_right);
- anim_shield_right->setFallBack(&anim_right);
+ anim_olaf_shield_right->setFallBack(&anim_walk_right);
+ setAnim(anim_olaf_walk_shield_right);
+ anim_olaf_shield_right->setFallBack(&anim_right);
} else {
- setAnim(anim_shield_right);
+ setAnim(anim_olaf_shield_right);
}
}
}
Modified: trunk/src/objects/olaf.h
===================================================================
--- trunk/src/objects/olaf.h 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/olaf.h 2005-09-08 22:04:26 UTC (rev 164)
@@ -42,16 +42,16 @@
/// \return True if successfull
inline bool trySmall(bool small);
//@{
- EmptyAnimationPtr anim_small_left;
- EmptyAnimationPtr anim_small_right;
- EmptyAnimationPtr anim_walk_small_left;
- EmptyAnimationPtr anim_walk_small_right;
- EmptyAnimationPtr anim_shield_left;
- EmptyAnimationPtr anim_shield_right;
- EmptyAnimationPtr anim_walk_shield_left;
- EmptyAnimationPtr anim_walk_shield_right;
- EmptyAnimationPtr anim_fall_shield_left;
- EmptyAnimationPtr anim_fall_shield_right;
+ EmptyAnimationPtr anim_olaf_small_left;
+ EmptyAnimationPtr anim_olaf_small_right;
+ EmptyAnimationPtr anim_olaf_walk_small_left;
+ EmptyAnimationPtr anim_olaf_walk_small_right;
+ EmptyAnimationPtr anim_olaf_shield_left;
+ EmptyAnimationPtr anim_olaf_shield_right;
+ EmptyAnimationPtr anim_olaf_walk_shield_left;
+ EmptyAnimationPtr anim_olaf_walk_shield_right;
+ EmptyAnimationPtr anim_olaf_fall_shield_left;
+ EmptyAnimationPtr anim_olaf_fall_shield_right;
//@}
//@{
Mix_Chunk* au_small;
Modified: trunk/src/objects/scorch.cpp
===================================================================
--- trunk/src/objects/scorch.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/scorch.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -12,15 +12,21 @@
Player(xcord,ycord,parameters),
left_wings(SCORCH_MAX_WINGS),
wing(V_FLY) {
- anim_left=loadAnimation(scenario->imgcache->loadImage(1,"baleog1_left.bmp"));
- anim_right=loadAnimation(scenario->imgcache->loadImage(1,"baleog1_right.bmp"));
- anim_walk_left=loadAnimation(scenario->imgcache->loadImage(8,"baleog1-run_left.png"),8);
- anim_walk_right=loadAnimation(scenario->imgcache->loadImage(8,"baleog1-run_right.png"),8);
- anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
- anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
- au_swing=scenario->sndcache->loadWAV("flapwngs.wav");
- au_tired=scenario->sndcache->loadWAV("flwings.wav");
- au_hit=scenario->sndcache->loadWAV("draghit.wav");
+
+ /* Parameters */
+ if (!hasParam(parameters,"anim_left")) anim_left=loadAnimation(scenario->imgcache->loadImage(1,"baleog1_left.bmp"));
+ if (!hasParam(parameters,"anim_right")) anim_right=loadAnimation(scenario->imgcache->loadImage(1,"baleog1_right.bmp"));
+ if (!hasParam(parameters,"anim_walk_left")) anim_walk_left=loadAnimation(scenario->imgcache->loadImage(8,"baleog1-run_left.png"),8);
+ if (!hasParam(parameters,"anim_walk_right")) anim_walk_right=loadAnimation(scenario->imgcache->loadImage(8,"baleog1-run_right.png"),8);
+ if (!hasParam(parameters,"anim_crash_left")) anim_crash_left=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_left.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
+ if (!hasParam(parameters,"anim_crash_right")) anim_crash_right=loadAnimation(scenario->imgcache->loadImage(1,"olaf1_land_right.bmp"),1,BP_MD,ATYPE_ONCE,calcFPS(1,T_IRR));
+
+ if (!hasParam(parameters,"audio_hit")) au_hit=scenario->sndcache->loadWAV("draghit.wav");
+
+ if (hasParam(parameters,"audio_swing")) au_swing=scenario->sndcache->loadWAV(parameters["audio_swing"]);
+ else au_swing=scenario->sndcache->loadWAV("flapwngs.wav");
+ if (hasParam(parameters,"audio_tired")) au_swing=scenario->sndcache->loadWAV(parameters["audio_tired"]);
+ else au_tired=scenario->sndcache->loadWAV("flwings.wav");
}
Scorch::~Scorch() { }
Modified: trunk/src/objects/zombie.cpp
===================================================================
--- trunk/src/objects/zombie.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects/zombie.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -13,11 +13,12 @@
Zombie::Zombie(Sint16 xcord, Sint16 ycord, ParameterMap& parameters):
Monster(xcord,ycord,parameters),
T_Attack_Bite(1500) {
- anim_left=loadAnimation(scenario->imgcache->loadImage(2,"olaf1_left.bmp"),2,BP_MD,ATYPE_LOOP,2);
- anim_right=loadAnimation(scenario->imgcache->loadImage(2,"olaf1_right.bmp"),2,BP_MD,ATYPE_LOOP,2);
weapon=Weapon(-1,W_STRIKE);
/* Parameters */
+ if (!hasParam(parameters,"anim_left")) anim_left=loadAnimation(scenario->imgcache->loadImage(2,"olaf1_left.bmp"),2,BP_MD,ATYPE_LOOP,2);
+ if (!hasParam(parameters,"anim_right")) anim_right=loadAnimation(scenario->imgcache->loadImage(2,"olaf1_right.bmp"),2,BP_MD,ATYPE_LOOP,2);
+
if (!hasParam(parameters,"maxspeedx")) maxspeedx=80;
if (hasParam(parameters,"audio_attack")) au_attack=scenario->sndcache->loadWAV(parameters["audio_attack"]);
else au_attack=scenario->sndcache->loadWAV("clang.wav");
Modified: trunk/src/objects_common.cpp
===================================================================
--- trunk/src/objects_common.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects_common.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -13,7 +13,6 @@
otype(NOTHING),
delete_flag(false) {
onum=++scenario->max_obj_num;
- animation.reset(new EmptyAnimation(&anim_orig));
/* Parameters */
if (hasParam(parameters,"anim")) {
@@ -35,6 +34,7 @@
else pos.h=(Uint16)(DATA_LVLPLAYER_H*sqrt(config.lvlscale>=0 ? config.lvlscale : -1/config.lvlscale)+0.5);
pos.x=xcord;
pos.y=ycord;
+ animation=anim_orig;
}
Object::~Object() {
@@ -144,99 +144,99 @@
return anim;
}
-EmptyAnimationPtr Object::loadAnimation(ParameterMap& parameters) {
+EmptyAnimationPtr Object::loadAnimation(const ParameterMap& parameters) {
double scale_factor=1;
BasePointType bp_type=BP_MD;
Uint16 animation_type=ATYPE_LOOP;
double fps=0;
AllignType allign_type=AT_MD;
- if (hasParam(parameters,"scale")) scale_factor=atof(parameters["scale"].c_str());
+ if (hasParam(parameters,"scale")) scale_factor=atof(parameters.find("scale")->second.c_str());
if (hasParam(parameters,"bp_type")) {
- if (parameters["bp_type"].find("hleft") !=string::npos) {
- if (parameters["bp_type"].find("vup") !=string::npos) bp_type=BP_LU;
- else if (parameters["bp_type"].find("vmiddle") !=string::npos) bp_type=BP_LM;
- else if (parameters["bp_type"].find("vdown") !=string::npos) bp_type=BP_LD;
- } else if (parameters["bp_type"].find("hmiddle") !=string::npos) {
- if (parameters["bp_type"].find("vup") !=string::npos) bp_type=BP_MU;
- else if (parameters["bp_type"].find("vmiddle") !=string::npos) bp_type=BP_MM;
- else if (parameters["bp_type"].find("vdown") !=string::npos) bp_type=BP_MD;
- } else if (parameters["bp_type"].find("hright") !=string::npos) {
- if (parameters["bp_type"].find("vup") !=string::npos) bp_type=BP_RU;
- else if (parameters["bp_type"].find("vmiddle") !=string::npos) bp_type=BP_RM;
- else if (parameters["bp_type"].find("vdown") !=string::npos) bp_type=BP_RD;
+ if (parameters.find("bp_type")->second.find("hleft") !=string::npos) {
+ if (parameters.find("bp_type")->second.find("vup") !=string::npos) bp_type=BP_LU;
+ else if (parameters.find("bp_type")->second.find("vmiddle") !=string::npos) bp_type=BP_LM;
+ else if (parameters.find("bp_type")->second.find("vdown") !=string::npos) bp_type=BP_LD;
+ } else if (parameters.find("bp_type")->second.find("hmiddle") !=string::npos) {
+ if (parameters.find("bp_type")->second.find("vup") !=string::npos) bp_type=BP_MU;
+ else if (parameters.find("bp_type")->second.find("vmiddle") !=string::npos) bp_type=BP_MM;
+ else if (parameters.find("bp_type")->second.find("vdown") !=string::npos) bp_type=BP_MD;
+ } else if (parameters.find("bp_type")->second.find("hright") !=string::npos) {
+ if (parameters.find("bp_type")->second.find("vup") !=string::npos) bp_type=BP_RU;
+ else if (parameters.find("bp_type")->second.find("vmiddle") !=string::npos) bp_type=BP_RM;
+ else if (parameters.find("bp_type")->second.find("vdown") !=string::npos) bp_type=BP_RD;
}
}
if (hasParam(parameters,"type")) {
animation_type=NOTHING;
- if (parameters["type"].find("once")) animation_type|=ATYPE_ONCE;
- if (parameters["type"].find("loop")) animation_type|=ATYPE_LOOP;
- if (parameters["type"].find("swing")) animation_type|=ATYPE_SWING;
- if (parameters["type"].find("step")) animation_type|=ATYPE_STEP;
- if (parameters["type"].find("reverse")) {
+ if (parameters.find("type")->second.find("once")) animation_type|=ATYPE_ONCE;
+ if (parameters.find("type")->second.find("loop")) animation_type|=ATYPE_LOOP;
+ if (parameters.find("type")->second.find("swing")) animation_type|=ATYPE_SWING;
+ if (parameters.find("type")->second.find("step")) animation_type|=ATYPE_STEP;
+ if (parameters.find("type")->second.find("reverse")) {
animation_type<<=1;
}
if (animation_type==NOTHING) animation_type=ATYPE_LOOP;
- if (parameters["type"].find("switch")) animation_type|=ATYPE_ST_SWITCH;
+ if (parameters.find("type")->second.find("switch")) animation_type|=ATYPE_ST_SWITCH;
}
- if (hasParam(parameters,"fps")) fps=atof(parameters["fps"].c_str());
+ if (hasParam(parameters,"fps")) fps=atof(parameters.find("fps")->second.c_str());
if (hasParam(parameters,"allign_type")) {
- if (parameters["allign_type"].find("hleft") !=string::npos) {
- if (parameters["allign_type"].find("vup") !=string::npos) allign_type=AT_LU;
- else if (parameters["allign_type"].find("vmiddle") !=string::npos) allign_type=AT_LM;
- else if (parameters["allign_type"].find("vdown") !=string::npos) allign_type=AT_LD;
- } else if (parameters["allign_type"].find("hmiddle") !=string::npos) {
- if (parameters["allign_type"].find("vup") !=string::npos) allign_type=AT_MU;
- else if (parameters["allign_type"].find("vmiddle") !=string::npos) allign_type=AT_MM;
- else if (parameters["allign_type"].find("vdown") !=string::npos) allign_type=AT_MD;
- } else if (parameters["allign_type"].find("hright") !=string::npos) {
- if (parameters["allign_type"].find("vup") !=string::npos) allign_type=AT_RU;
- else if (parameters["allign_type"].find("vmiddle") !=string::npos) allign_type=AT_RM;
- else if (parameters["allign_type"].find("vdown") !=string::npos) allign_type=AT_RD;
+ if (parameters.find("allign_type")->second.find("hleft") !=string::npos) {
+ if (parameters.find("allign_type")->second.find("vup") !=string::npos) allign_type=AT_LU;
+ else if (parameters.find("allign_type")->second.find("vmiddle") !=string::npos) allign_type=AT_LM;
+ else if (parameters.find("allign_type")->second.find("vdown") !=string::npos) allign_type=AT_LD;
+ } else if (parameters.find("allign_type")->second.find("hmiddle") !=string::npos) {
+ if (parameters.find("allign_type")->second.find("vup") !=string::npos) allign_type=AT_MU;
+ else if (parameters.find("allign_type")->second.find("vmiddle") !=string::npos) allign_type=AT_MM;
+ else if (parameters.find("allign_type")->second.find("vdown") !=string::npos) allign_type=AT_MD;
+ } else if (parameters.find("allign_type")->second.find("hright") !=string::npos) {
+ if (parameters.find("allign_type")->second.find("vup") !=string::npos) allign_type=AT_RU;
+ else if (parameters.find("allign_type")->second.find("vmiddle") !=string::npos) allign_type=AT_RM;
+ else if (parameters.find("allign_type")->second.find("vdown") !=string::npos) allign_type=AT_RD;
}
}
/* Use animation name */
if (hasParam(parameters,"name")) {
- string anim_name=parameters["name"];
+ string anim_name=parameters.find("name")->second;
return loadAnimation(anim_name,scale_factor,bp_type,animation_type,fps,allign_type);
/* Use a base image */
} else if (hasParam(parameters,"image")) {
- string image_name=parameters["image"];
+ string image_name=parameters.find("image")->second;
Uint16 frames=1;
Uint16 start_pos=0;
- if (hasParam(parameters,"frames")) frames=atoi(parameters["frames"].c_str());
- if (hasParam(parameters,"start_pos")) start_pos=atoi(parameters["start_pos"].c_str());
+ if (hasParam(parameters,"frames")) frames=atoi(parameters.find("frames")->second.c_str());
+ if (hasParam(parameters,"start_pos")) start_pos=atoi(parameters.find("start_pos")->second.c_str());
/* threat as horizontal animation (constant width, height) with <image_hor_frames> frames */
if (hasParam(parameters,"image_hor_frames")) {
- Uint16 image_hor_frames=atoi(parameters["image_hor_frames"].c_str());
+ Uint16 image_hor_frames=atoi(parameters.find("image_hor_frames")->second.c_str());
return loadAnimation(scenario->imgcache->loadImage(image_hor_frames,image_name,scale_factor),frames,bp_type,animation_type,fps,start_pos,allign_type);
/* threat as horizontal animation (constant width, height) with width <image_hor_width> and an optional shift */
} else if (hasParam(parameters,"image_hor_width")) {
- Uint16 image_hor_width=atoi(parameters["image_hor_width"].c_str());
+ Uint16 image_hor_width=atoi(parameters.find("image_hor_width")->second.c_str());
Uint16 image_hor_shift=0;
- if (hasParam(parameters,"image_hor_shift")) image_hor_shift=atoi(parameters["image_hor_shift"].c_str());
+ if (hasParam(parameters,"image_hor_shift")) image_hor_shift=atoi(parameters.find("image_hor_shift")->second.c_str());
return loadAnimation(scenario->imgcache->loadImage(image_hor_width,image_hor_shift,image_name,scale_factor),frames,bp_type,animation_type,fps,start_pos,allign_type);
/* threat as constant width/height animation based on a base rectangle */
} else if (hasParam(parameters,"image_rect")) {
- ParameterMap rect_param=getParameters(parameters["image_rect"],';');
+ ParameterMap rect_param=getParameters(parameters.find("image_rect")->second,';');
SDL_Rect rect;
rect.x=rect.y=0;
rect.w=rect.h=10;
- if (hasParam(rect_param,"x")) rect.x=atoi(rect_param["x"].c_str());
- if (hasParam(rect_param,"y")) rect.y=atoi(rect_param["y"].c_str());
- if (hasParam(rect_param,"w")) rect.w=atoi(rect_param["w"].c_str());
- if (hasParam(rect_param,"h")) rect.h=atoi(rect_param["h"].c_str());
+ if (hasParam(rect_param,"x")) rect.x=atoi(rect_param.find("x")->second.c_str());
+ if (hasParam(rect_param,"y")) rect.y=atoi(rect_param.find("y")->second.c_str());
+ if (hasParam(rect_param,"w")) rect.w=atoi(rect_param.find("w")->second.c_str());
+ if (hasParam(rect_param,"h")) rect.h=atoi(rect_param.find("h")->second.c_str());
return loadAnimation(scenario->imgcache->loadImage(rect,image_name,scale_factor),frames,bp_type,animation_type,fps,start_pos,allign_type);
/* get informations from an image description file */
} else {
string image_desc=image_name+".dsc";
- if (hasParam(parameters,"image_desc")) image_desc=parameters["image_desc"];
+ if (hasParam(parameters,"image_desc")) image_desc=parameters.find("image_desc")->second;
return loadAnimation(scenario->imgcache->loadImage(image_name,scale_factor,image_desc),frames,bp_type,animation_type,fps,start_pos,allign_type);
}
Modified: trunk/src/objects_common.h
===================================================================
--- trunk/src/objects_common.h 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/objects_common.h 2005-09-08 22:04:26 UTC (rev 164)
@@ -122,7 +122,7 @@
Uint16 astart_pos=0,
AllignType aallign_type=AT_MD);
/// Load an animation based on a parameter map
- EmptyAnimationPtr loadAnimation(ParameterMap& parameters=ParameterMap());
+ EmptyAnimationPtr loadAnimation(const ParameterMap& parameters=ParameterMap());
//Events (triggered animations/effects)
//@{
/// Clears the event field (sets it to NULL). This should only be used by
Modified: trunk/src/players_common.cpp
===================================================================
--- trunk/src/players_common.cpp 2005-09-08 15:32:44 UTC (rev 163)
+++ trunk/src/players_common.cpp 2005-09-08 22:04:26 UTC (rev 164)
@@ -15,58 +15,103 @@
Player::Player(Sint16 xcord, Sint16 ycord, ParameterMap& parameters):
Character(xcord,ycord,parameters),
- currentitem(0),
- anim_left(new EmptyAnimation(&anim_right)),
- anim_right(new EmptyAnimation()),
- anim_rock_left(new EmptyAnimation(&anim_left)),
- anim_rock_right(new EmptyAnimation(&anim_right)),
- anim_walk_left(new EmptyAnimation(&anim_left)),
- anim_walk_right(new EmptyAnimation(&anim_right)),
- anim_push_left(new EmptyAnimation(&anim_left)),
- anim_push_right(new EmptyAnimation(&anim_right)),
- anim_fall_left(new EmptyAnimation(&anim_left)),
- anim_fall_right(new EmptyAnimation(&anim_right)),
- anim_fall_fast_left(new EmptyAnimation(&anim_fall_left)),
- anim_fall_fast_right(new EmptyAnimation(&anim_fall_right)),
- anim_crash_left(new EmptyAnimation()),
- anim_crash_right(new EmptyAnimation()),
- anim_rope_left(new EmptyAnimation(&anim_left)),
- anim_rope_right(new EmptyAnimation(&anim_right)),
- anim_teleport_left(new EmptyAnimation()),
- anim_teleport_right(new EmptyAnimation()),
- anim_die_crash_left(new EmptyAnimation(&anim_die_bones_left)),
- anim_die_crash_right(new EmptyAnimation(&anim_die_bones_right)),
- anim_die_burn_left(new EmptyAnimation(&anim_die_bones_left)),
- anim_die_burn_right(new EmptyAnimation(&anim_die_bones_right)),
- anim_die_bones_left(new EmptyAnimation(&anim_die_bones_right)),
- anim_die_bones_right(new EmptyAnimation()),
- anim_die_elec_left(new EmptyAnimation(&anim_die_bones_left)),
- anim_die_elec_right(new EmptyAnimation(&anim_die_bones_right)),
- anim_die_spike_left(new EmptyAnimation(&anim_die_bones_left)),
- anim_die_spike_right(new EmptyAnimation(&anim_die_bones_right)),
- anim_die_water_left(new EmptyAnimation(&anim_die_bones_left)),
- anim_die_water_right(new EmptyAnimation(&anim_die_bones_right)),
- anim_fall_middle(new EmptyAnimation(&anim_fall_right)),
- anim_climb(new EmptyAnimation(&anim_right)),
- anim_bar(new EmptyAnimation(&anim_right)) {
+ currentitem(0) {
for (Uint8 i=0; i<MAX_ITEMS; i++) {
items[i]=NULL;
}
state=STATE_FALL;
otype|=OTYPE_PLAYER;
enemy_types|=OTYPE_MONSTER;
- au_land=scenario->sndcache->loadWAV("dizzy.wav");
- au_act=scenario->sndcache->loadWAV("button.wav");
- au_useerror=scenario->sndcache->loadWAV("useerror.wav");
- au_newitem=scenario->sndcache->loadWAV("pickup.wav");
- au_hit=scenario->sndcache->loadWAV("vikhit.wav");
- au_elec=scenario->sndcache->loadWAV("elecdth.wav");
- au_drown=scenario->sndcache->loadWAV("drown.wav");
- au_fire=scenario->sndcache->loadWAV("fireball.wav");
- au_die=scenario->sndcache->loadWAV("bones.wav");
- au_heal=scenario->sndcache->loadWAV("usefood1.wav");
/* Parameters */
+ if (hasParam(parameters,"anim_left")) anim_left=loadAnimation(getParameters(parameters["anim_left"],':'));
+ else anim_left.reset(new EmptyAnimation(&anim_right));
+ if (hasParam(parameters,"anim_right")) anim_right=loadAnimation(getParameters(parameters["anim_right"],':'));
+ else anim_right.reset(new EmptyAnimation(&anim_orig));
+ if (hasParam(parameters,"anim_rock_left")) anim_rock_left=loadAnimation(getParameters(parameters["anim_rock_left"],':'));
+ else anim_rock_left.reset(new EmptyAnimation(&anim_left));
+ if (hasParam(parameters,"anim_rock_right")) anim_rock_right=loadAnimation(getParameters(parameters["anim_rock_right"],':'));
+ else anim_rock_right.reset(new EmptyAnimation(&anim_right));
+ if (hasParam(parameters,"anim_walk_left")) anim_walk_left=loadAnimation(getParameters(parameters["anim_walk_left"],':'));
+ else anim_walk_left.reset(new EmptyAnimation(&anim_left));
+ if (hasParam(parameters,"anim_walk_right")) anim_walk_right=loadAnimation(getParameters(parameters["anim_walk_right"],':'));
+ else anim_walk_right.reset(new EmptyAnimation(&anim_right));
+ if (hasParam(parameters,"anim_push_left")) anim_push_left=loadAnimation(getParameters(parameters["anim_push_left"],':'));
+ else anim_push_left.reset(new EmptyAnimation(&anim_left));
+ if (hasParam(parameters,"anim_push_right")) anim_push_right=loadAnimation(getParameters(parameters["anim_push_right"],':'));
+ else anim_push_right.reset(new EmptyAnimation(&anim_right));
+ if (hasParam(parameters,"anim_fall_left")) anim_fall_left=loadAnimation(getParameters(parameters["anim_fall_left"],':'));
+ else anim_fall_left.reset(new EmptyAnimation(&anim_left));
+ if (hasParam(parameters,"anim_fall_right")) anim_fall_right=loadAnimation(getParameters(parameters["anim_fall_right"],':'));
+ else anim_fall_right.reset(new EmptyAnimation(&anim_right));
+ if (hasParam(parameters,"anim_fall_fast_left")) anim_fall_fast_left=loadAnimation(getParameters(parameters["anim_fall_fast_left"],':'));
+ else anim_fall_fast_left.reset(new EmptyAnimation(&anim_fall_left));
+ if (hasParam(parameters,"anim_fall_fast_right")) anim_fall_fast_right=loadAnimation(getParameters(parameters["anim_fall_fast_right"],':'));
+ else anim_fall_fast_right.reset(new EmptyAnimation(&anim_fall_right));
+ if (hasParam(parameters,"anim_crash_left")) anim_crash_left=loadAnimation(getParameters(parameters["anim_crash_left"],':'));
+ else anim_crash_left.reset(new EmptyAnimation());
+ if (hasParam(parameters,"anim_crash_right")) anim_crash_right=loadAnimation(getParameters(parameters["anim_crash_right"],':'));
+ else anim_crash_right.reset(new EmptyAnimation());
+ if (hasParam(parameters,"anim_rope_left")) anim_rope_left=loadAnimation(getParameters(parameters["anim_rope_left"],':'));
+ else anim_rope_left.reset(new EmptyAnimation(&anim_left));
+ if (hasParam(parameters,"anim_rope_right")) anim_rope_right=loadAnimation(getParameters(parameters["anim_rope_right"],':'));
+ else anim_rope_right.reset(new EmptyAnimation(&anim_right));
+ if (hasParam(parameters,"anim_teleport_left")) anim_teleport_left=loadAnimation(getParameters(parameters["anim_teleport_left"],':'));
+ else anim_teleport_left.reset(new EmptyAnimation());
+ if (hasParam(parameters,"anim_teleport_left")) anim_teleport_left=loadAnimation(getParameters(parameters["anim_teleport_left"],':'));
+ else anim_teleport_left.reset(new EmptyAnimation());
+ if (hasParam(parameters,"anim_die_crash_left")) anim_die_crash_left=loadAnimation(getParameters(parameters["anim_die_crash_left"],':'));
+ else anim_die_crash_left.reset(new EmptyAnimation(&anim_die_bones_left));
+ if (hasParam(parameters,"anim_die_crash_left")) anim_die_crash_left=loadAnimation(getParameters(parameters["anim_die_crash_left"],':'));
+ else anim_die_crash_left.reset(new EmptyAnimation(&anim_die_bones_right));
+ if (hasParam(parameters,"anim_die_burn_left")) anim_die_burn_left=loadAnimation(getParameters(parameters["anim_die_burn_left"],':'));
+ else anim_die_burn_left.reset(new EmptyAnimation(&anim_die_bones_right));
+ if (hasParam(parameters,"anim_die_burn_left")) anim_die_burn_left=loadAnimation(getParameters(parameters["anim_die_burn_left"],':'));
+ else anim_die_burn_left.reset(new EmptyAnimation(&anim_die_bones_right));
+ if (hasParam(parameters,"anim_die_bones_left")) anim_die_bones_left=loadAnimation(getParameters(parameters["anim_die_bones_left"],':'));
+ else anim_die_bones_left.reset(new EmptyAnimation());
+ if (hasParam(parameters,"anim_die_bones_left")) anim_die_bones_left=loadAnimation(getParameters(parameters["anim_die_bones_left"],':'));
+ else anim_die_bones_left.reset(new EmptyAnimation());
+ if (hasParam(parameters,"anim_die_elec_left")) anim_die_elec_left=loadAnimation(getParameters(parameters["anim_die_elec_left"],':'));
+ else anim_die_elec_left.reset(new EmptyAnimation(&anim_die_bones_left));
+ if (hasParam(parameters,"anim_die_elec_right")) anim_die_elec_right=loadAnimation(getParameters(parameters["anim_die_elec_right"],':'));
+ else anim_die_elec_right.reset(new EmptyAnimation(&anim_die_bones_right));
+ if (hasParam(parameters,"anim_die_spike_left")) anim_die_spike_left=loadAnimation(getParameters(parameters["anim_die_spike_left"],':'));
+ else anim_die_spike_left.reset(new EmptyAnimation(&anim_die_bones_left));
+ if (hasParam(parameters,"anim_die_spike_right")) anim_die_spike_right=loadAnimation(getParameters(parameters["anim_die_spike_right"],':'));
+ else anim_die_spike_right.reset(new EmptyAnimation(&anim_die_bones_right));
+ if (hasParam(parameters,"anim_die_water_left")) anim_die_water_left=loadAnimation(getParameters(parameters["anim_die_water_left"],':'));
+ else anim_die_water_left.reset(new EmptyAnimation(&anim_die_bones_left));
+ if (hasParam(parameters,"anim_die_water_right")) anim_die_water_right=loadAnimation(getParameters(parameters["anim_die_water_right"],':'));
+ else anim_die_water_right.reset(new EmptyAnimation(&anim_die_bones_right));
+ if (hasParam(parameters,"anim_fall_middle")) anim_fall_middle=loadAnimation(getParameters(parameters["anim_fall_middle"],':'));
+ else anim_fall_middle.reset(new EmptyAnimation(&anim_fall_right));
+ if (hasParam(parameters,"anim_climb")) anim_climb=loadAnimation(getParameters(parameters["anim_climb"],':'));
+ else anim_climb.reset(new EmptyAnimation(&anim_right));
+ if (hasParam(parameters,"anim_bar")) anim_bar=loadAnimation(getParameters(parameters["anim_bar"],':'));
+ else anim_bar.reset(new EmptyAnimation(&anim_right));
+
+ if (hasParam(parameters,"audio_land")) au_land=scenario->sndcache->loadWAV(parameters["audio_land"]);
+ else au_land=scenario->sndcache->loadWAV("dizzy.wav");
+ if (hasParam(parameters,"audio_act")) au_land=scenario->sndcache->loadWAV(parameters["audio_act"]);
+ else au_act=scenario->sndcache->loadWAV("button.wav");
+ if (hasParam(parameters,"audio_useerror")) au_land=scenario->sndcache->loadWAV(parameters["audio_useerror"]);
+ else au_useerror=scenario->sndcache->loadWAV("useerror.wav");
+ if (hasParam(parameters,"audio_newitem")) au_land=scenario->sndcache->loadWAV(parameters["audio_newitem"]);
+ else au_newitem=scenario->sndcache->loadWAV("pickup.wav");
+ if (hasParam(parameters,"audio_hit")) au_land=scenario->sndcache->loadWAV(parameters["audio_hit"]);
+ else au_hit=scenario->sndcache->loadWAV("vikhit.wav");
+ if (hasParam(parameters,"audio_elec")) au_land=scenario->sndcache->loadWAV(parameters["audio_elec"]);
+ else au_elec=scenario->sndcache->loadWAV("elecdth.wav");
+ if (hasParam(parameters,"audio_drown")) au_land=scenario->sndcache->loadWAV(parameters["audio_drown"]);
+ else au_drown=scenario->sndcache->loadWAV("drown.wav");
+ if (hasParam(parameters,"audio_fire")) au_land=scenario->sndcache->loadWAV(parameters["audio_fire"]);
+ else au_fire=scenario->sndcache->loadWAV("fireball.wav");
+ if (hasParam(parameters,"audio_die")) au_land=scenario->sndcache->loadWAV(parameters["audio_die"]);
+ else au_die=scenario->sndcache->loadWAV("bones.wav");
+ if (hasParam(parameters,"audio_heal")) au_land=scenario->sndcache->loadWAV(parameters["audio_heal"]);
+ else au_heal=scenario->sndcache->loadWAV("usefood1.wav");
+
if (!hasParam(parameters,"maxhealth")) maxhealth=4;
if (!hasParam(parameters,"health")) health=min(3,(int)maxhealth);
if (!hasParam(parameters,"maxspeedx")) maxspeedx=300;
@@ -313,7 +358,9 @@
//should be !=NULL or sthg is wrong with the placement code...
ParameterMap deadplr_parameters;
deadplr_parameters["image"]="dead_player.bmp";
- Character* deadplr=scenario->pool->addCharacter(new DeadPlayer(pos.x,pos.y,deadplr_parameters));
+ deadplr_parameters["w"]=10;
+ deadplr_parameters["h"]=10;
+ Character* deadplr=dynamic_cast<Character*>(scenario->pool->addObjectbyName("DeadPlayer",pos.x,pos.y,deadplr_parameters));
switch(weap.getSubType()) {
case WS_FIRE: {
if (deadplr) deadplr->setEvent(new CAnimEvent(deadplr,10,0,ESTATE_BUSY,au_fire,(state&STATE_LEFT) ? anim_die_burn_left : anim_die_burn_right));
More information about the lostpenguins-commits
mailing list