From: Jaka K. <lyn...@us...> - 2010-05-07 14:18:23
|
gemrb: Infinity Engine emulator The branch master has been updated via 80ff87e04660d9b2982e06660009c395e3a2946a (commit) Summary of changes: gemrb/core/Actions.cpp | 8 ++------ gemrb/core/Actor.cpp | 17 ++++++----------- gemrb/core/Calendar.cpp | 7 ++----- gemrb/core/Game.cpp | 4 +--- gemrb/core/Variables.cpp | 8 ++++++++ gemrb/core/Variables.h | 1 + gemrb/plugins/GUIScript/GUIScript.cpp | 7 ++----- 7 files changed, 22 insertions(+), 30 deletions(-) from 0e3463fbb2a698478175ef308d60280460e16250 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=80ff87e04660d9b2982e06660009c395e3a2946a commit 80ff87e04660d9b2982e06660009c395e3a2946a Author: Jaka Kranjc <lyn...@us...> Date: Fri May 7 13:06:39 2010 +0200 added an overloaded SetAtCopy that takes an int and used it to clean up diff --git a/gemrb/core/Actions.cpp b/gemrb/core/Actions.cpp index 81a5642..37c06bd 100644 --- a/gemrb/core/Actions.cpp +++ b/gemrb/core/Actions.cpp @@ -2986,9 +2986,7 @@ void GameScript::AddXPObject(Scriptable* Sender, Action* parameters) if (core->GetStringReference(STR_GOTQUESTXP) == (ieStrRef) -1) { core->DisplayConstantStringValue(STR_GOTXP, 0xbcefbc, (ieDword)xp); } else { - char tmpstr[10]; - sprintf(tmpstr, "%d", xp); - core->GetTokenDictionary()->SetAtCopy( "EXPERIENCEAMOUNT", tmpstr); + core->GetTokenDictionary()->SetAtCopy("EXPERIENCEAMOUNT", xp); core->DisplayConstantStringName(STR_GOTQUESTXP, 0xbcefbc, actor); } actor->AddExperience(xp); @@ -3261,9 +3259,7 @@ void GameScript::SetTokenGlobal(Scriptable* Sender, Action* parameters) { ieDword value = CheckVariable( Sender, parameters->string0Parameter ); //using SetAtCopy because we need a copy of the value - char tmpstr[10]; - sprintf( tmpstr, "%d", value ); - core->GetTokenDictionary()->SetAtCopy( parameters->string1Parameter, tmpstr ); + core->GetTokenDictionary()->SetAtCopy( parameters->string1Parameter, value ); } //Assigns the target object's name (not scriptname) to the token diff --git a/gemrb/core/Actor.cpp b/gemrb/core/Actor.cpp index 5eef7c4..8af80a2 100644 --- a/gemrb/core/Actor.cpp +++ b/gemrb/core/Actor.cpp @@ -2506,25 +2506,22 @@ void Actor::DisplayCombatFeedback (unsigned int damage, int resisted, int damage if (damage > 0 && resisted != DR_IMMUNE) { printMessage("Actor", " ", GREEN); printf("%d damage taken.\n", damage); - char dmg_str[8]; - snprintf(dmg_str, 8, "%d", damage); if (detailed) { // 3 choices depending on resistance and boni // iwd2 also has two Tortoise Shell (spell) absorption strings core->GetTokenDictionary()->SetAtCopy( "TYPE", type_name); - core->GetTokenDictionary()->SetAtCopy( "AMOUNT", dmg_str); + core->GetTokenDictionary()->SetAtCopy( "AMOUNT", damage); core->GetTokenDictionary()->SetAtCopy( "DAMAGER", hitter ? hitter->GetName(1) : this->GetName(1) ); int bonus = 0; //TODO: change this once damage bonus is supported - char resist_str[8]; - snprintf(resist_str, 8, "%d", abs(resisted-bonus)); + unsigned int delta = abs(resisted-bonus); if (bonus-resisted > 0) { //Takes <AMOUNT> <TYPE> damage from <DAMAGER> (<RESISTED> damage bonus) - core->GetTokenDictionary()->SetAtCopy( "RESISTED", resist_str); + core->GetTokenDictionary()->SetAtCopy( "RESISTED", delta); core->DisplayConstantStringName(STR_DAMAGE3, 0xffffff, this); } else if (bonus-resisted < 0) { //Takes <AMOUNT> <TYPE> damage from <DAMAGER> (<RESISTED> damage resisted) - core->GetTokenDictionary()->SetAtCopy( "RESISTED", resist_str); + core->GetTokenDictionary()->SetAtCopy( "RESISTED", delta); core->DisplayConstantStringName(STR_DAMAGE2, 0xffffff, this); } else { //Takes <AMOUNT> <TYPE> damage from <DAMAGER> @@ -2541,7 +2538,7 @@ void Actor::DisplayCombatFeedback (unsigned int damage, int resisted, int damage core->GetTokenDictionary()->SetAtCopy( "DAMAGEE", GetName(1) ); // wipe the DAMAGER token, so we can color it core->GetTokenDictionary()->SetAtCopy( "DAMAGER", "" ); - core->GetTokenDictionary()->SetAtCopy( "AMOUNT", dmg_str); + core->GetTokenDictionary()->SetAtCopy( "AMOUNT", damage); core->DisplayConstantStringName(STR_DAMAGE1, 0xffffff, hitter); } } else { @@ -2802,9 +2799,7 @@ int Actor::CastingLevelBonus(int level, int type) const return 0; } - char bonus_str[8]; - snprintf(bonus_str, 8, "%d", bonus); - core->GetTokenDictionary()->SetAtCopy("LEVELDIF", bonus_str); + core->GetTokenDictionary()->SetAtCopy("LEVELDIF", bonus); if (bonus > 0) { core->DisplayConstantStringName(STR_CASTER_LVL_INC, 0xffffff, this); diff --git a/gemrb/core/Calendar.cpp b/gemrb/core/Calendar.cpp index 3e0e970..375558f 100644 --- a/gemrb/core/Calendar.cpp +++ b/gemrb/core/Calendar.cpp @@ -56,17 +56,14 @@ void Calendar::GetMonthName(int dayandmonth) for(int i=0;i<monthnamecount;i++) { if (dayandmonth<days[i]) { char *tmp; - char tmpstr[10]; - sprintf(tmpstr,"%d", dayandmonth+1); - core->GetTokenDictionary()->SetAtCopy("DAY", tmpstr); + core->GetTokenDictionary()->SetAtCopy("DAY", dayandmonth+1); tmp = core->GetString( monthnames[i] ); core->GetTokenDictionary()->SetAt("MONTHNAME",tmp); //must not free tmp, SetAt doesn't copy the pointer! - sprintf(tmpstr,"%d", month); - core->GetTokenDictionary()->SetAtCopy("MONTH",tmpstr); + core->GetTokenDictionary()->SetAtCopy("MONTH", month); return; } dayandmonth-=days[i]; diff --git a/gemrb/core/Game.cpp b/gemrb/core/Game.cpp index d3a3d7d..1da7aa0 100644 --- a/gemrb/core/Game.cpp +++ b/gemrb/core/Game.cpp @@ -1338,7 +1338,6 @@ void Game::RestParty(int checks, int dream, int hp) //rest check, if PartyRested should be set, area should return true //area should advance gametime too (so partial rest is possible) - char buffer[8]; int hours = 8; if (!(checks&REST_NOAREA) ) { //you cannot rest here @@ -1402,9 +1401,8 @@ void Game::RestParty(int checks, int dream, int hp) int restindex = core->GetStringReference(STR_REST); int strindex; char* tmpstr = NULL; - snprintf(buffer, 8, "%d", hours); - core->GetTokenDictionary()->SetAtCopy("HOUR", buffer); + core->GetTokenDictionary()->SetAtCopy("HOUR", hours); if (restindex != -1) { strindex = core->GetStringReference(STR_HOURS); } else { diff --git a/gemrb/core/Variables.cpp b/gemrb/core/Variables.cpp index 38716f2..af29a8c 100644 --- a/gemrb/core/Variables.cpp +++ b/gemrb/core/Variables.cpp @@ -320,6 +320,14 @@ void Variables::SetAtCopy(const char* key, const char* value) SetAt(key, str); } +void Variables::SetAtCopy(const char* key, int newValue) +{ + char tmpstr[10]; // should be enough + sprintf(tmpstr, "%d", newValue); + + SetAtCopy(key, tmpstr); +} + void Variables::SetAt(const char* key, char* value) { unsigned int nHash; diff --git a/gemrb/core/Variables.h b/gemrb/core/Variables.h index 74ed37c..d14b188 100644 --- a/gemrb/core/Variables.h +++ b/gemrb/core/Variables.h @@ -92,6 +92,7 @@ public: // Operations void SetAtCopy(const char* key, const char* newValue); + void SetAtCopy(const char* key, int newValue); void SetAt(const char* key, char* newValue); void SetAt(const char* key, void* newValue); void SetAt(const char* key, ieDword newValue); diff --git a/gemrb/plugins/GUIScript/GUIScript.cpp b/gemrb/plugins/GUIScript/GUIScript.cpp index f949f7f..cb13eb1 100644 --- a/gemrb/plugins/GUIScript/GUIScript.cpp +++ b/gemrb/plugins/GUIScript/GUIScript.cpp @@ -3804,18 +3804,15 @@ static PyObject *GetGameDate(DataStream *ds) int hours = ((int)GameTime)/300; int days = hours/24; hours -= days*24; - char tmpstr[10]; char *a=NULL,*b=NULL,*c=NULL; PyObject *retval; - sprintf(tmpstr,"%d",days); - core->GetTokenDictionary()->SetAtCopy("GAMEDAYS", tmpstr); + core->GetTokenDictionary()->SetAtCopy("GAMEDAYS", days); if (days) { if (days==1) a=core->GetString(10698); else a=core->GetString(10697); } - sprintf(tmpstr,"%d",hours); - core->GetTokenDictionary()->SetAtCopy("HOUR", tmpstr); + core->GetTokenDictionary()->SetAtCopy("HOUR", hours); if (hours || !a) { if (a) b=core->GetString(10699); if (hours==1) c=core->GetString(10701); ----------------------------------------------------------------------- This is an automated email from the git hooks/post-receive script. -- gemrb: Infinity Engine emulator |