- attempt to NOT convert to utf8 twice

This commit is contained in:
Mark Vejvoda
2011-06-26 03:38:28 +00:00
parent fd8ed536bb
commit aa677cfc97
8 changed files with 57 additions and 23 deletions

View File

@@ -19,6 +19,7 @@
#include "core_data.h" #include "core_data.h"
#include "util.h" #include "util.h"
#include <stdexcept> #include <stdexcept>
#include "string_utils.h"
#include "leak_dumper.h" #include "leak_dumper.h"
using namespace std; using namespace std;
@@ -183,8 +184,13 @@ void ChatManager::keyPress(SDL_KeyboardEvent c) {
if(editEnabled && text.size() < maxTextLenght) { if(editEnabled && text.size() < maxTextLenght) {
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] key = [%c] [%d]\n",__FILE__,__FUNCTION__,__LINE__,c.keysym.sym,c.keysym.sym); SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] key = [%c] [%d]\n",__FILE__,__FUNCTION__,__LINE__,c.keysym.sym,c.keysym.sym);
//space is the first meaningful code //space is the first meaningful code
if(extractKeyPressed(c) >= SDLK_SPACE) { SDLKey key = extractKeyPressed(c);
text += extractKeyPressed(c); if(key >= SDLK_SPACE) {
char szCharText[20]="";
sprintf(szCharText,"%c",key);
char *utfStr = String::ConvertToUTF8(&szCharText[0]);
text += utfStr;
delete [] utfStr;
} }
} }
} }

View File

@@ -28,9 +28,10 @@
#include <algorithm> #include <algorithm>
#include <time.h> #include <time.h>
#include "cache_manager.h" #include "cache_manager.h"
#include "leak_dumper.h" #include "string_utils.h"
#include "map_preview.h" #include "map_preview.h"
#include "leak_dumper.h"
namespace Glest{ namespace Game{ namespace Glest{ namespace Game{
@@ -2142,7 +2143,13 @@ void MenuStateConnectedGame::keyPress(SDL_KeyboardEvent c) {
// (c=='-') || (c=='(') || (c==')')) { // (c=='-') || (c=='(') || (c==')')) {
if(activeInputLabel->getText().size() < maxTextSize) { if(activeInputLabel->getText().size() < maxTextSize) {
string text= activeInputLabel->getText(); string text= activeInputLabel->getText();
text.insert(text.end() -1, key);
char szCharText[20]="";
sprintf(szCharText,"%c",key);
char *utfStr = String::ConvertToUTF8(&szCharText[0]);
text.insert(text.end() -1, utfStr[0]);
delete [] utfStr;
activeInputLabel->setText(text); activeInputLabel->setText(text);
switchSetupRequestFlagType |= ssrft_NetworkPlayerName; switchSetupRequestFlagType |= ssrft_NetworkPlayerName;

View File

@@ -30,6 +30,7 @@
#include "cache_manager.h" #include "cache_manager.h"
#include <iterator> #include <iterator>
#include "map_preview.h" #include "map_preview.h"
#include "string_utils.h"
#include "leak_dumper.h" #include "leak_dumper.h"
namespace Glest{ namespace Game{ namespace Glest{ namespace Game{
@@ -2953,7 +2954,13 @@ void MenuStateCustomGame::keyPress(SDL_KeyboardEvent c) {
// (c=='-') || (c=='(') || (c==')')) { // (c=='-') || (c=='(') || (c==')')) {
if(activeInputLabel->getText().size() < maxTextSize) { if(activeInputLabel->getText().size() < maxTextSize) {
string text= activeInputLabel->getText(); string text= activeInputLabel->getText();
text.insert(text.end()-1, key); //text.insert(text.end()-1, key);
char szCharText[20]="";
sprintf(szCharText,"%c",key);
char *utfStr = String::ConvertToUTF8(&szCharText[0]);
text.insert(text.end() -1, utfStr[0]);
delete [] utfStr;
activeInputLabel->setText(text); activeInputLabel->setText(text);
MutexSafeWrapper safeMutex((publishToMasterserverThread != NULL ? publishToMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__)); MutexSafeWrapper safeMutex((publishToMasterserverThread != NULL ? publishToMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__));

View File

@@ -23,6 +23,7 @@
#include "client_interface.h" #include "client_interface.h"
#include "conversion.h" #include "conversion.h"
#include "game.h" #include "game.h"
#include "string_utils.h"
#include "socket.h" #include "socket.h"
#include "leak_dumper.h" #include "leak_dumper.h"
@@ -520,7 +521,13 @@ void MenuStateJoinGame::keyPress(SDL_KeyboardEvent c) {
if(key >= SDLK_0 && key <= SDLK_9) { if(key >= SDLK_0 && key <= SDLK_9) {
if(labelServerIp.getText().size() < maxTextSize) { if(labelServerIp.getText().size() < maxTextSize) {
string text= labelServerIp.getText(); string text= labelServerIp.getText();
text.insert(text.end()-1, key); //text.insert(text.end()-1, key);
char szCharText[20]="";
sprintf(szCharText,"%c",key);
char *utfStr = String::ConvertToUTF8(&szCharText[0]);
text.insert(text.end() -1, utfStr[0]);
delete [] utfStr;
labelServerIp.setText(text); labelServerIp.setText(text);
} }
} }

View File

@@ -19,7 +19,7 @@
#include "util.h" #include "util.h"
#include "menu_state_graphic_info.h" #include "menu_state_graphic_info.h"
#include "menu_state_keysetup.h" #include "menu_state_keysetup.h"
#include "string_utils.h"
#include "leak_dumper.h" #include "leak_dumper.h"
using namespace Shared::Util; using namespace Shared::Util;
@@ -708,7 +708,13 @@ void MenuStateOptions::keyPress(SDL_KeyboardEvent c) {
//(c=='-')||(c=='(')||(c==')')){ //(c=='-')||(c=='(')||(c==')')){
if(activeInputLabel->getText().size()<maxTextSize){ if(activeInputLabel->getText().size()<maxTextSize){
string text= activeInputLabel->getText(); string text= activeInputLabel->getText();
text.insert(text.end()-1, key); //text.insert(text.end()-1, key);
char szCharText[20]="";
sprintf(szCharText,"%c",key);
char *utfStr = String::ConvertToUTF8(&szCharText[0]);
text.insert(text.end() -1, utfStr[0]);
delete [] utfStr;
activeInputLabel->setText(text); activeInputLabel->setText(text);
} }
//} //}

View File

@@ -249,21 +249,21 @@ void TotalUpgrade::reset() {
void TotalUpgrade::sum(const UpgradeTypeBase *ut) { void TotalUpgrade::sum(const UpgradeTypeBase *ut) {
maxHp+= ut->getMaxHp(); maxHp+= ut->getMaxHp();
maxHp = max(0,maxHp); //maxHp = max(0,maxHp);
maxEp+= ut->getMaxEp(); maxEp+= ut->getMaxEp();
maxEp = max(0,maxEp); //maxEp = max(0,maxEp);
sight+= ut->getSight(); sight+= ut->getSight();
sight = max(0,sight); //sight = max(0,sight);
armor+= ut->getArmor(); armor+= ut->getArmor();
armor = max(0,armor); //armor = max(0,armor);
attackStrength+= ut->getAttackStrength(); attackStrength+= ut->getAttackStrength();
attackStrength = max(0,attackStrength); //attackStrength = max(0,attackStrength);
attackRange+= ut->getAttackRange(); attackRange+= ut->getAttackRange();
attackRange = max(0,attackRange); //attackRange = max(0,attackRange);
moveSpeed+= ut->getMoveSpeed(); moveSpeed+= ut->getMoveSpeed();
moveSpeed = max(0,moveSpeed); //moveSpeed = max(0,moveSpeed);
prodSpeed+= ut->getProdSpeed(); prodSpeed+= ut->getProdSpeed();
prodSpeed = max(0,prodSpeed); //prodSpeed = max(0,prodSpeed);
} }
void TotalUpgrade::incLevel(const UnitType *ut) { void TotalUpgrade::incLevel(const UnitType *ut) {

View File

@@ -67,9 +67,9 @@ void TextRenderer2DGl::render(const string &text, float x, float y, bool centere
Vec2f rasterPos; Vec2f rasterPos;
if(font->getTextHandler() != NULL) { if(font->getTextHandler() != NULL) {
char *utfStr = String::ConvertToUTF8(renderText.c_str()); //char *utfStr = String::ConvertToUTF8(renderText.c_str());
renderText = utfStr; //renderText = utfStr;
delete [] utfStr; //delete [] utfStr;
if(centered) { if(centered) {
rasterPos.x= x - font->getTextHandler()->Advance(renderText.c_str()) / 2.f; rasterPos.x= x - font->getTextHandler()->Advance(renderText.c_str()) / 2.f;
@@ -455,9 +455,9 @@ void TextRenderer3DGl::internalRender(const string &text, float x, float y, boo
FontMetrics *metrics= font->getMetrics(); FontMetrics *metrics= font->getMetrics();
if(font->getTextHandler() != NULL) { if(font->getTextHandler() != NULL) {
char *utfStr = String::ConvertToUTF8(renderText.c_str()); //char *utfStr = String::ConvertToUTF8(renderText.c_str());
renderText = utfStr; //renderText = utfStr;
delete [] utfStr; //delete [] utfStr;
//centered = false; //centered = false;
if(centered) { if(centered) {

View File

@@ -990,7 +990,8 @@ bool isKeyPressed(SDLKey compareKey, SDL_KeyboardEvent input) {
SDLKey extractKeyPressed(SDL_KeyboardEvent input) { SDLKey extractKeyPressed(SDL_KeyboardEvent input) {
SDLKey c = SDLK_UNKNOWN; SDLKey c = SDLK_UNKNOWN;
if(input.keysym.unicode > 0 && input.keysym.unicode < 0x80) { //if(input.keysym.unicode > 0 && input.keysym.unicode < 0x80) {
if(input.keysym.unicode > 0) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
c = (SDLKey)input.keysym.unicode; c = (SDLKey)input.keysym.unicode;
//c = toupper(c); //c = toupper(c);