diff --git a/desktop_version/src/Entity.cpp b/desktop_version/src/Entity.cpp index b28f9300..f9e65ab7 100644 --- a/desktop_version/src/Entity.cpp +++ b/desktop_version/src/Entity.cpp @@ -69,15 +69,14 @@ void entityclass::init() SDL_memset(customcrewmoods, true, sizeof(customcrewmoods)); - flags.resize(100); + resetallflags(); collect.resize(100); customcollect.resize(100); } void entityclass::resetallflags() { - flags.clear(); - flags.resize(100); + SDL_memset(flags, false, sizeof(flags)); } int entityclass::swncolour( int t ) diff --git a/desktop_version/src/Entity.h b/desktop_version/src/Entity.h index fddd8673..f5f60bc9 100644 --- a/desktop_version/src/Entity.h +++ b/desktop_version/src/Entity.h @@ -182,7 +182,7 @@ public: std::vector blocks; - std::vector flags; + bool flags[100]; std::vector collect; std::vector customcollect; diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index 72859387..83db79de 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -5365,19 +5365,7 @@ void Game::loadquick() } } - if (pKey == "flags") - { - std::string TextString = (pText); - if(TextString.length()) - { - std::vector values = split(TextString,','); - obj.flags.clear(); - for(size_t i = 0; i < values.size(); i++) - { - obj.flags.push_back((bool) atoi(values[i].c_str())); - } - } - } + LOAD_ARRAY_RENAME(flags, obj.flags) LOAD_ARRAY(crewstats) @@ -5580,19 +5568,7 @@ void Game::customloadquick(std::string savfile) } } - if (pKey == "flags") - { - std::string TextString = (pText); - if(TextString.length()) - { - std::vector values = split(TextString,','); - obj.flags.clear(); - for(size_t i = 0; i < values.size(); i++) - { - obj.flags.push_back((bool) atoi(values[i].c_str())); - } - } - } + LOAD_ARRAY_RENAME(flags, obj.flags) LOAD_ARRAY_RENAME(moods, obj.customcrewmoods) @@ -5971,7 +5947,7 @@ void Game::savetele() msgs->LinkEndChild( msg ); std::string flags; - for(size_t i = 0; i < obj.flags.size(); i++ ) + for(size_t i = 0; i < SDL_arraysize(obj.flags); i++ ) { flags += help.String((int) obj.flags[i]) + ","; } @@ -6167,7 +6143,7 @@ void Game::savequick() msgs->LinkEndChild( msg ); std::string flags; - for(size_t i = 0; i < obj.flags.size(); i++ ) + for(size_t i = 0; i < SDL_arraysize(obj.flags); i++ ) { flags += help.String((int) obj.flags[i]) + ","; } @@ -6356,7 +6332,7 @@ void Game::customsavequick(std::string savfile) msgs->LinkEndChild( msg ); std::string flags; - for(size_t i = 0; i < obj.flags.size(); i++ ) + for(size_t i = 0; i < SDL_arraysize(obj.flags); i++ ) { flags += help.String((int) obj.flags[i]) + ","; } @@ -6582,19 +6558,7 @@ void Game::loadtele() } } - if (pKey == "flags") - { - std::string TextString = (pText); - if(TextString.length()) - { - std::vector values = split(TextString,','); - obj.flags.clear(); - for(size_t i = 0; i < values.size(); i++) - { - obj.flags.push_back((bool) atoi(values[i].c_str())); - } - } - } + LOAD_ARRAY_RENAME(flags, obj.flags) LOAD_ARRAY(crewstats) diff --git a/desktop_version/src/Script.cpp b/desktop_version/src/Script.cpp index 4db102ab..c1540694 100644 --- a/desktop_version/src/Script.cpp +++ b/desktop_version/src/Script.cpp @@ -183,8 +183,8 @@ void scriptclass::run() } else if (words[0] == "customifflag") { - int flag = ss_toi(words[1]); - if (flag >= 0 && flag < (int) obj.flags.size() && obj.flags[flag]) + size_t flag = ss_toi(words[1]); + if (flag < SDL_arraysize(obj.flags) && obj.flags[flag]) { load("custom_"+words[2]); position--; @@ -1357,8 +1357,8 @@ void scriptclass::run() } else if (words[0] == "ifflag") { - int flag = ss_toi(words[1]); - if (flag >= 0 && flag < (int) obj.flags.size() && obj.flags[flag]) + size_t flag = ss_toi(words[1]); + if (flag < SDL_arraysize(obj.flags) && obj.flags[flag]) { load(words[2]); position--; @@ -3701,8 +3701,7 @@ void scriptclass::hardreset() obj.trophytype = 0; obj.altstates = 0; - obj.flags.clear(); - obj.flags.resize(100); + obj.resetallflags(); for (i = 0; i < (int) SDL_arraysize(obj.customcrewmoods); i++){ obj.customcrewmoods[i]=true;