Release builds of the game should hide the debug console by default and instead log to a debugging file. Release Build 8413.
This commit is contained in:
parent
cb39f0859b
commit
758696d28b
@ -193,7 +193,7 @@
|
|||||||
<AdditionalIncludeDirectories>C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\OneDrive\Documents\include</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\OneDrive\Documents\include</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
@ -153,6 +153,7 @@ float AiL::SIZE_CHANGE_SPEED=1;
|
|||||||
|
|
||||||
AiL::AiL()
|
AiL::AiL()
|
||||||
{
|
{
|
||||||
|
debugLogger.open("debug.log");
|
||||||
utils::datafile::Read(DATA,"assets/config/configuration.txt");
|
utils::datafile::Read(DATA,"assets/config/configuration.txt");
|
||||||
std::filesystem::create_directories("save_file_path"_S);
|
std::filesystem::create_directories("save_file_path"_S);
|
||||||
|
|
||||||
@ -207,7 +208,7 @@ AiL::AiL()
|
|||||||
|
|
||||||
std::vector<std::string>values=DATA.GetProperty("class_list").GetValues();
|
std::vector<std::string>values=DATA.GetProperty("class_list").GetValues();
|
||||||
for(const std::string&cl:values){
|
for(const std::string&cl:values){
|
||||||
std::cout<<cl<<std::endl;
|
LOG(cl);
|
||||||
utils::datafile::Read(DATA,CONFIG_PATH + "class_directory"_S + cl + ".txt");
|
utils::datafile::Read(DATA,CONFIG_PATH + "class_directory"_S + cl + ".txt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,7 +304,7 @@ bool AiL::OnUserCreate(){
|
|||||||
|
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
emscripten_idb_async_load("/assets",("save_file_path"_S+"system.conf").c_str(),0,[](void*arg,void*data,int length){
|
emscripten_idb_async_load("/assets",("save_file_path"_S+"system.conf").c_str(),0,[](void*arg,void*data,int length){
|
||||||
std::cout<<"Loaded System Save File successfully!"<<std::endl;
|
LOG("Loaded System Save File successfully!");
|
||||||
|
|
||||||
std::string rawMetadata=(char*)data;
|
std::string rawMetadata=(char*)data;
|
||||||
std::ofstream file("save_file_path"_S+"system.conf");
|
std::ofstream file("save_file_path"_S+"system.conf");
|
||||||
@ -313,7 +314,7 @@ bool AiL::OnUserCreate(){
|
|||||||
file.close();
|
file.close();
|
||||||
GameSettings::Initialize();
|
GameSettings::Initialize();
|
||||||
},[](void*arg){
|
},[](void*arg){
|
||||||
std::cout<<"Failed to load System Save File!"<<std::endl;
|
LOG("Failed to load System Save File!");
|
||||||
});
|
});
|
||||||
#else
|
#else
|
||||||
GameSettings::Initialize();
|
GameSettings::Initialize();
|
||||||
@ -328,9 +329,9 @@ bool AiL::OnUserCreate(){
|
|||||||
SetupDiscord();
|
SetupDiscord();
|
||||||
if(SteamAPI_RestartAppIfNecessary(2895980U))return false; //Immediately quit if steam is detected and can be started through it.
|
if(SteamAPI_RestartAppIfNecessary(2895980U))return false; //Immediately quit if steam is detected and can be started through it.
|
||||||
if(Steam_Init()){
|
if(Steam_Init()){
|
||||||
std::cout<<"Steam API Initialized successfully!"<<std::endl;
|
LOG("Steam API Initialized successfully!");
|
||||||
}else{
|
}else{
|
||||||
std::cout<<"Steam API failed to initialize!"<<std::endl;
|
LOG("Steam API failed to initialize!");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@ -339,7 +340,7 @@ bool AiL::OnUserCreate(){
|
|||||||
|
|
||||||
if(!gamepack.Loaded()&&"GENERATE_GAMEPACK"_B){
|
if(!gamepack.Loaded()&&"GENERATE_GAMEPACK"_B){
|
||||||
gamepack.SavePack("assets/"+"gamepack_file"_S,PACK_KEY);
|
gamepack.SavePack("assets/"+"gamepack_file"_S,PACK_KEY);
|
||||||
std::cout<<"Game Pack has been generated!"<<std::endl<<"========================"<<std::endl<<std::endl;
|
LOG("Game Pack has been generated!"<<std::endl<<"========================"<<std::endl);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -381,7 +382,7 @@ bool AiL::OnUserUpdate(float fElapsedTime){
|
|||||||
if(Discord){
|
if(Discord){
|
||||||
auto result=Discord->RunCallbacks();
|
auto result=Discord->RunCallbacks();
|
||||||
if(result!=::discord::Result::Ok){
|
if(result!=::discord::Result::Ok){
|
||||||
std::cout<<"Discord Error Code "<<int(result)<<std::endl;
|
LOG("Discord Error Code "<<int(result));
|
||||||
delete Discord;
|
delete Discord;
|
||||||
Discord=nullptr;
|
Discord=nullptr;
|
||||||
}
|
}
|
||||||
@ -1948,7 +1949,7 @@ void AiL::InitializeLevel(std::string mapFile,MapName map){
|
|||||||
MAP_TILESETS["assets/maps/"+baseSourceDir].reflectiveData=tileset.GetData().ReflectiveData;
|
MAP_TILESETS["assets/maps/"+baseSourceDir].reflectiveData=tileset.GetData().ReflectiveData;
|
||||||
MAP_TILESETS["assets/maps/"+baseSourceDir].isTerrain=tileset.GetData().isTerrain;
|
MAP_TILESETS["assets/maps/"+baseSourceDir].isTerrain=tileset.GetData().isTerrain;
|
||||||
MAP_TILESETS["assets/maps/"+baseSourceDir].collision.SetInitialized();
|
MAP_TILESETS["assets/maps/"+baseSourceDir].collision.SetInitialized();
|
||||||
std::cout<<"assets/maps/"+baseSourceDir<<" Animation Data Size: "<<MAP_TILESETS["assets/maps/"+baseSourceDir].animationData.size()<<std::endl;
|
LOG("assets/maps/"+baseSourceDir<<" Animation Data Size: "<<MAP_TILESETS["assets/maps/"+baseSourceDir].animationData.size());
|
||||||
std::string mapPath="assets/maps/"+tileset.GetData().ImageData.data["source"];
|
std::string mapPath="assets/maps/"+tileset.GetData().ImageData.data["source"];
|
||||||
if(gamepack.Loaded()){
|
if(gamepack.Loaded()){
|
||||||
r->Load(mapPath,&gamepack);
|
r->Load(mapPath,&gamepack);
|
||||||
@ -1959,7 +1960,7 @@ void AiL::InitializeLevel(std::string mapFile,MapName map){
|
|||||||
gamepack.AddFile(mapPath);
|
gamepack.AddFile(mapPath);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
std::cout<<"WARNING! "<<mapPath<<" does not exist, auto-generating mock-up texture"<<std::endl;
|
LOG("WARNING! "<<mapPath<<" does not exist, auto-generating mock-up texture");
|
||||||
r->Create(tileset.GetData().imagewidth,tileset.GetData().imageheight);
|
r->Create(tileset.GetData().imagewidth,tileset.GetData().imageheight);
|
||||||
SetDrawTarget(r->Sprite());
|
SetDrawTarget(r->Sprite());
|
||||||
int tileXCount=tileset.GetData().imagewidth/tileset.GetData().tilewidth;
|
int tileXCount=tileset.GetData().imagewidth/tileset.GetData().tilewidth;
|
||||||
@ -2001,7 +2002,7 @@ void AiL::InitializeLevel(std::string mapFile,MapName map){
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(MAP_DATA[map].MapData.optimized){
|
if(MAP_DATA[map].MapData.optimized){
|
||||||
std::cout<<"Generating optimized map for Map "<<map<<std::endl;
|
LOG("Generating optimized map for Map "<<map);
|
||||||
MAP_DATA[map].optimizedTile=NEW Renderable();
|
MAP_DATA[map].optimizedTile=NEW Renderable();
|
||||||
MAP_DATA[map].optimizedTile->Create(MAP_DATA[map].MapData.width*MAP_DATA[map].MapData.tilewidth,MAP_DATA[map].MapData.height*MAP_DATA[map].MapData.tileheight);
|
MAP_DATA[map].optimizedTile->Create(MAP_DATA[map].MapData.width*MAP_DATA[map].MapData.tilewidth,MAP_DATA[map].MapData.height*MAP_DATA[map].MapData.tileheight);
|
||||||
SetDrawTarget(MAP_DATA[map].optimizedTile->Sprite());
|
SetDrawTarget(MAP_DATA[map].optimizedTile->Sprite());
|
||||||
@ -2028,7 +2029,7 @@ void AiL::InitializeLevel(std::string mapFile,MapName map){
|
|||||||
SetPixelMode(prevMode);
|
SetPixelMode(prevMode);
|
||||||
MAP_DATA[map].optimizedTile->Decal()->Update();
|
MAP_DATA[map].optimizedTile->Decal()->Update();
|
||||||
SetDrawTarget(nullptr);
|
SetDrawTarget(nullptr);
|
||||||
std::cout<<" Clearing Layer Data..."<<std::endl;
|
LOG(" Clearing Layer Data...");
|
||||||
MAP_DATA[map].LayerData.clear();
|
MAP_DATA[map].LayerData.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2695,11 +2696,11 @@ int main()
|
|||||||
if(line.find("AiL\\")!=std::string::npos){
|
if(line.find("AiL\\")!=std::string::npos){
|
||||||
if(!leaked){
|
if(!leaked){
|
||||||
leaked=true;
|
leaked=true;
|
||||||
std::cout<<std::endl<<std::endl<<std::endl<<"Memory leak detected!"<<std::endl;
|
LOG(std::endl<<std::endl<<std::endl<<"Memory leak detected!");
|
||||||
}
|
}
|
||||||
std::cout<<line<<std::endl;
|
LOG(line);
|
||||||
std::getline(file,line);
|
std::getline(file,line);
|
||||||
std::cout<<line<<std::endl;
|
LOG(line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(leaked)ERR("")
|
if(leaked)ERR("")
|
||||||
@ -2710,6 +2711,14 @@ int main()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef _DEBUG
|
||||||
|
#ifdef _WIN32
|
||||||
|
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
|
||||||
|
main();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
datafilestringdata operator ""_s(const char*key,std::size_t len){
|
datafilestringdata operator ""_s(const char*key,std::size_t len){
|
||||||
AiL::OutputDebugInfo(key,len);
|
AiL::OutputDebugInfo(key,len);
|
||||||
return {DATA,std::string(key,len)};
|
return {DATA,std::string(key,len)};
|
||||||
@ -2783,7 +2792,7 @@ void AiL::OutputDebugInfo(const char*key,std::size_t len){
|
|||||||
if(utils::datafile::DEBUG_ACCESS_OPTIONS){
|
if(utils::datafile::DEBUG_ACCESS_OPTIONS){
|
||||||
std::string k=std::string(key);
|
std::string k=std::string(key);
|
||||||
if(!k.starts_with("debug_")){
|
if(!k.starts_with("debug_")){
|
||||||
std::cout<<"Reading "<<k<<std::endl;
|
LOG("Reading "<<k);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -3152,7 +3161,7 @@ void AiL::InitializeGraphics(){
|
|||||||
for(auto&val:DATA["Images"].GetKeys()){
|
for(auto&val:DATA["Images"].GetKeys()){
|
||||||
std::string key=val.first;
|
std::string key=val.first;
|
||||||
std::string imgFile=DATA["Images"][key].GetString(0);
|
std::string imgFile=DATA["Images"][key].GetString(0);
|
||||||
std::cout<<"Loading image "+imgFile+"..."<<std::endl;
|
LOG("Loading image "+imgFile+"...");
|
||||||
bool filtering=false;
|
bool filtering=false;
|
||||||
bool clamping=false;
|
bool clamping=false;
|
||||||
if(DATA["Images"][key].GetValueCount()>1){
|
if(DATA["Images"][key].GetValueCount()>1){
|
||||||
@ -3196,11 +3205,11 @@ void AiL::InitializeGraphics(){
|
|||||||
}
|
}
|
||||||
SetPixelMode(prevMode);
|
SetPixelMode(prevMode);
|
||||||
|
|
||||||
std::cout<<"Theme "<<themeName<<" Loaded."<<std::endl;
|
LOG("Theme "<<themeName<<" Loaded.");
|
||||||
|
|
||||||
if(DATA["Themes"][themeName].HasProperty("CustomBack")){
|
if(DATA["Themes"][themeName].HasProperty("CustomBack")){
|
||||||
std::string backPath=DATA["Themes"][themeName]["CustomBack"].GetString();
|
std::string backPath=DATA["Themes"][themeName]["CustomBack"].GetString();
|
||||||
std::cout<<" Custom background detected, Loading "<<backPath<<"..."<<std::endl;
|
LOG(" Custom background detected, Loading "<<backPath<<"...");
|
||||||
if(!GFX.count(backPath)){
|
if(!GFX.count(backPath)){
|
||||||
Renderable&background=GFX[backPath];
|
Renderable&background=GFX[backPath];
|
||||||
LoadResource(background,"GFX_Prefix"_S+backPath,false,false);
|
LoadResource(background,"GFX_Prefix"_S+backPath,false,false);
|
||||||
@ -3215,15 +3224,15 @@ void AiL::InitializeGraphics(){
|
|||||||
Renderable&image=GFX[img];
|
Renderable&image=GFX[img];
|
||||||
LoadResource(image,"GFX_Prefix"_S+img);
|
LoadResource(image,"GFX_Prefix"_S+img);
|
||||||
}
|
}
|
||||||
std::cout<<VisualNovel::graphicsToLoad.size()<<" images for visual novel engine have been loaded."<<std::endl;
|
LOG(VisualNovel::graphicsToLoad.size()<<" images for visual novel engine have been loaded.");
|
||||||
|
|
||||||
SetFontSprite("GFX_Prefix"_S+"font.png",&gamepack,"GENERATE_GAMEPACK"_B);
|
SetFontSprite("GFX_Prefix"_S+"font.png",&gamepack,"GENERATE_GAMEPACK"_B);
|
||||||
std::cout<<"Custom font loaded."<<std::endl;
|
LOG("Custom font loaded.");
|
||||||
|
|
||||||
Menu::themes.SetInitialized();
|
Menu::themes.SetInitialized();
|
||||||
std::cout<<Menu::themes.size()<<" themes have been loaded."<<std::endl;
|
LOG(Menu::themes.size()<<" themes have been loaded.");
|
||||||
GFX.SetInitialized();
|
GFX.SetInitialized();
|
||||||
std::cout<<GFX.size()<<" images have been loaded."<<std::endl;
|
LOG(GFX.size()<<" images have been loaded.");
|
||||||
}
|
}
|
||||||
|
|
||||||
const Map&AiL::GetCurrentMap()const{
|
const Map&AiL::GetCurrentMap()const{
|
||||||
@ -3273,12 +3282,12 @@ void AiL::ValidateGameStatus(){
|
|||||||
monsterCounts[monsterName]++;
|
monsterCounts[monsterName]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cout<<"Spawns Report for "<<map<<":"<<std::endl;
|
LOG("Spawns Report for "<<map<<":");
|
||||||
for(auto&[monster,count]:monsterCounts){
|
for(auto&[monster,count]:monsterCounts){
|
||||||
std::cout<<"\t"<<count<<"x "<<monster<<std::endl;
|
LOG("\t"<<count<<"x "<<monster);
|
||||||
}
|
}
|
||||||
std::map<ItemInfo*,long>totalDrops;
|
std::map<ItemInfo*,long>totalDrops;
|
||||||
std::cout<<"Monte Carlo Test: 100000 tries:"<<std::endl;
|
LOG("Monte Carlo Test: 100000 tries:");
|
||||||
for(int i=0;i<100000;i++){
|
for(int i=0;i<100000;i++){
|
||||||
//Try to kill every single monster and see what drops.
|
//Try to kill every single monster and see what drops.
|
||||||
for(auto&[monster,count]:monsterCounts){
|
for(auto&[monster,count]:monsterCounts){
|
||||||
@ -3292,9 +3301,9 @@ void AiL::ValidateGameStatus(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cout<<"Average: "<<std::endl;
|
LOG("Average: ");
|
||||||
for(auto&[itemInfo,count]:totalDrops){
|
for(auto&[itemInfo,count]:totalDrops){
|
||||||
std::cout<<"\t"<<itemInfo->Name()<<" x"<<std::format("{:.3}",count/100000.)<<std::endl;
|
LOG("\t"<<itemInfo->Name()<<" x"<<std::format("{:.3}",count/100000.));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3531,10 +3540,10 @@ void AiL::EndGame(){
|
|||||||
discord::LogLevel::Debug, [](discord::LogLevel level, const char* message) {
|
discord::LogLevel::Debug, [](discord::LogLevel level, const char* message) {
|
||||||
std::cerr << "Log(" << static_cast<uint32_t>(level) << "): " << message << "\n";
|
std::cerr << "Log(" << static_cast<uint32_t>(level) << "): " << message << "\n";
|
||||||
});
|
});
|
||||||
std::cout<<"Connected to Discord!"<<std::endl;
|
LOG("Connected to Discord!");
|
||||||
UpdateDiscordStatus("Main Menu",player.get()->GetClassName());
|
UpdateDiscordStatus("Main Menu",player.get()->GetClassName());
|
||||||
}else{
|
}else{
|
||||||
std::cout<<"Could not connect to Discord. Error Code "<<int(result)<<std::endl;
|
LOG("Could not connect to Discord. Error Code "<<int(result));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -3562,9 +3571,9 @@ void AiL::UpdateDiscordStatus(std::string levelName,std::string className){
|
|||||||
}
|
}
|
||||||
Discord->ActivityManager().UpdateActivity(newActivity,[](::discord::Result result){
|
Discord->ActivityManager().UpdateActivity(newActivity,[](::discord::Result result){
|
||||||
if(result==::discord::Result::Ok){
|
if(result==::discord::Result::Ok){
|
||||||
std::cout<<"Discord Activity successfully updated!"<<std::endl;
|
LOG("Discord Activity successfully updated!");
|
||||||
}else{
|
}else{
|
||||||
std::cout<<"Could not update Discord Activity. Error Code "<<int(result)<<std::endl;
|
LOG("Could not update Discord Activity. Error Code "<<int(result));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
@ -3583,7 +3592,7 @@ void AiL::UpdateDiscordStatus(std::string levelName,std::string className){
|
|||||||
}else{
|
}else{
|
||||||
if(Steam_Init()){
|
if(Steam_Init()){
|
||||||
retry=true;
|
retry=true;
|
||||||
std::cout<<"Steam API Initialized successfully!"<<std::endl;
|
LOG("Steam API Initialized successfully!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(retry){
|
if(retry){
|
||||||
@ -3597,7 +3606,7 @@ void AiL::InitializePlayerLevelCap(){
|
|||||||
player->levelCap++;
|
player->levelCap++;
|
||||||
}
|
}
|
||||||
if(player->levelCap<=1)ERR("Could not detect level cap properly!")
|
if(player->levelCap<=1)ERR("Could not detect level cap properly!")
|
||||||
std::cout<<"Level cap detected as "<<int(player->levelCap)<<std::endl;
|
LOG("Level cap detected as "<<int(player->levelCap));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AiL::ResetGame(bool changeToMainMenu){
|
void AiL::ResetGame(bool changeToMainMenu){
|
||||||
@ -3796,7 +3805,7 @@ bool AiL::Steam_Init(){
|
|||||||
if(SteamAPI_Init()){
|
if(SteamAPI_Init()){
|
||||||
if(SteamUtils()!=nullptr){
|
if(SteamUtils()!=nullptr){
|
||||||
SteamUtils()->SetWarningMessageHook([](int severity,const char*message){
|
SteamUtils()->SetWarningMessageHook([](int severity,const char*message){
|
||||||
std::cout<<std::format("STEAM[{}]: {}",severity,std::string(message))<<std::endl;
|
LOG(std::format("STEAM[{}]: {}",severity,std::string(message)));
|
||||||
});
|
});
|
||||||
if(steamKeyboardCallbackListener==nullptr){
|
if(steamKeyboardCallbackListener==nullptr){
|
||||||
steamKeyboardCallbackListener=new SteamKeyboardCallbackHandler();
|
steamKeyboardCallbackListener=new SteamKeyboardCallbackHandler();
|
||||||
|
@ -250,7 +250,7 @@ void sig::Animation::InitializeAnimations(){
|
|||||||
for(auto&dat:GFX){
|
for(auto&dat:GFX){
|
||||||
std::string imgFile=dat.first;
|
std::string imgFile=dat.first;
|
||||||
if(!ANIMATION_DATA.count(imgFile)){
|
if(!ANIMATION_DATA.count(imgFile)){
|
||||||
std::cout<<"WARNING! Animation data for "<<imgFile<<" not found! Auto-generating..."<<std::endl;
|
LOG("WARNING! Animation data for "<<imgFile<<" not found! Auto-generating...");
|
||||||
CreateStillAnimation(imgFile,GFX[imgFile].Sprite()->Size());
|
CreateStillAnimation(imgFile,GFX[imgFile].Sprite()->Size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,9 @@ All rights reserved.
|
|||||||
#include <any>
|
#include <any>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <source_location>
|
#include <source_location>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
inline std::ofstream debugLogger;
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#ifndef __EMSCRIPTEN__
|
#ifndef __EMSCRIPTEN__
|
||||||
@ -67,10 +70,18 @@ All rights reserved.
|
|||||||
std::stringstream errStream; \
|
std::stringstream errStream; \
|
||||||
errStream<<err; \
|
errStream<<err; \
|
||||||
Error::log(errStream,std::source_location::current());}
|
Error::log(errStream,std::source_location::current());}
|
||||||
|
#define LOG(msg) { \
|
||||||
|
std::stringstream debugStream; \
|
||||||
|
debugStream<<msg; \
|
||||||
|
Error::debug(debugStream,std::source_location::current());}
|
||||||
class Error{
|
class Error{
|
||||||
public:
|
public:
|
||||||
|
inline static void debug(std::stringstream&str,std::source_location loc){
|
||||||
|
debugLogger<<loc.file_name()<<"("<<loc.line()<<":"<<loc.column()<<") "<<loc.function_name()<<": "<<str.str()<<std::endl;
|
||||||
|
std::cout<<loc.file_name()<<"("<<loc.line()<<":"<<loc.column()<<") "<<loc.function_name()<<": "<<str.str()<<std::endl;
|
||||||
|
}
|
||||||
inline static void log(std::stringstream&str,std::source_location loc){
|
inline static void log(std::stringstream&str,std::source_location loc){
|
||||||
|
debugLogger<<loc.file_name()<<"("<<loc.line()<<":"<<loc.column()<<") "<<loc.function_name()<<": "<<str.str()<<std::endl;
|
||||||
std::cout<<loc.file_name()<<"("<<loc.line()<<":"<<loc.column()<<") "<<loc.function_name()<<": "<<str.str()<<std::endl;
|
std::cout<<loc.file_name()<<"("<<loc.line()<<":"<<loc.column()<<") "<<loc.function_name()<<": "<<str.str()<<std::endl;
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
@ -84,7 +95,7 @@ All rights reserved.
|
|||||||
class Error{
|
class Error{
|
||||||
public:
|
public:
|
||||||
inline static void log(std::stringstream&str,std::source_location loc){
|
inline static void log(std::stringstream&str,std::source_location loc){
|
||||||
std::cout<<loc.file_name()<<"("<<loc.line()<<":"<<loc.column()<<") "<<loc.function_name()<<": "<<str.str()<<std::endl;
|
LOG(loc.file_name()<<"("<<loc.line()<<":"<<loc.column()<<") "<<loc.function_name()<<": "<<str.str());
|
||||||
#ifdef __DEBUG__
|
#ifdef __DEBUG__
|
||||||
throw;
|
throw;
|
||||||
#endif
|
#endif
|
||||||
|
@ -111,7 +111,7 @@ void GameSettings::Initialize(){
|
|||||||
std::string loadSystemFilename="save_file_path"_S+"system.conf";
|
std::string loadSystemFilename="save_file_path"_S+"system.conf";
|
||||||
|
|
||||||
if(std::filesystem::exists(loadSystemFilename)){
|
if(std::filesystem::exists(loadSystemFilename)){
|
||||||
std::cout<<"Reading system data file..."<<std::endl;
|
LOG("Reading system data file...");
|
||||||
utils::datafile::Read(loadSystemFile,loadSystemFilename);
|
utils::datafile::Read(loadSystemFile,loadSystemFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,8 +335,8 @@ void ItemInfo::InitializeItems(){
|
|||||||
if(tempItem.Description().length()==0)ERR("WARNING! Item "<<info.name<<" does not have a description!");
|
if(tempItem.Description().length()==0)ERR("WARNING! Item "<<info.name<<" does not have a description!");
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout<<ITEM_DATA.size()<<" items have been loaded."<<std::endl;
|
LOG(ITEM_DATA.size()<<" items have been loaded.");
|
||||||
std::cout<<ITEM_CATEGORIES.size()<<" item categories have been loaded."<<std::endl;
|
LOG(ITEM_CATEGORIES.size()<<" item categories have been loaded.");
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemProps::ItemProps(utils::datafile*scriptProps,utils::datafile*customProps)
|
ItemProps::ItemProps(utils::datafile*scriptProps,utils::datafile*customProps)
|
||||||
@ -423,7 +423,7 @@ void ItemInfo::InitializeScripts(){
|
|||||||
};
|
};
|
||||||
|
|
||||||
ITEM_SCRIPTS.SetInitialized();
|
ITEM_SCRIPTS.SetInitialized();
|
||||||
std::cout<<ITEM_SCRIPTS.size()<<" item scripts have been loaded."<<std::endl;
|
LOG(ITEM_SCRIPTS.size()<<" item scripts have been loaded.");
|
||||||
}
|
}
|
||||||
|
|
||||||
Item::Item()
|
Item::Item()
|
||||||
|
@ -174,13 +174,13 @@ void Input::Initialize(){
|
|||||||
|
|
||||||
void Input::LoadSteamButtonIcons(){
|
void Input::LoadSteamButtonIcons(){
|
||||||
GFX.Unlock();
|
GFX.Unlock();
|
||||||
std::cout<<std::format("Steam Icons may be required... Loading in {} icons",int(k_EInputActionOrigin_Count))<<std::endl;
|
LOG(std::format("Steam Icons may be required... Loading in {} icons",int(k_EInputActionOrigin_Count)));
|
||||||
for(int i=1;i<k_EInputActionOrigin_Count;i++){
|
for(int i=1;i<k_EInputActionOrigin_Count;i++){
|
||||||
const char*imageName{SteamInput()->GetGlyphPNGForActionOrigin(EInputActionOrigin(i),k_ESteamInputGlyphSize_Small,0U)};
|
const char*imageName{SteamInput()->GetGlyphPNGForActionOrigin(EInputActionOrigin(i),k_ESteamInputGlyphSize_Small,0U)};
|
||||||
if(imageName!=nullptr){
|
if(imageName!=nullptr){
|
||||||
std::string loadImage{imageName};
|
std::string loadImage{imageName};
|
||||||
if(loadImage.length()>0&&!GFX.count(loadImage)){
|
if(loadImage.length()>0&&!GFX.count(loadImage)){
|
||||||
std::cout<<std::format("Loading steam image {}",loadImage)<<std::endl;
|
LOG(std::format("Loading steam image {}",loadImage));
|
||||||
GFX[loadImage].Load(loadImage);
|
GFX[loadImage].Load(loadImage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ void Merchant::Initialize(){
|
|||||||
merchantCount++;
|
merchantCount++;
|
||||||
}
|
}
|
||||||
if(merchantCount==0)ERR(std::format("WARNING! No merchants available for Chapter {}!",chapter));
|
if(merchantCount==0)ERR(std::format("WARNING! No merchants available for Chapter {}!",chapter));
|
||||||
std::cout<<std::format("Added {} merchants to Chapter {}",merchantCount,chapter)<<std::endl;
|
LOG(std::format("Added {} merchants to Chapter {}",merchantCount,chapter));
|
||||||
}
|
}
|
||||||
Merchant::RandomizeTravelingMerchant();
|
Merchant::RandomizeTravelingMerchant();
|
||||||
}
|
}
|
||||||
@ -255,7 +255,7 @@ void Merchant::SetTravelingMerchant(std::string_view key){
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cout<<std::format("WARNING! Could not set traveling merchant with key {}!",std::string(key))<<std::endl;
|
LOG(std::format("WARNING! Could not set traveling merchant with key {}!",std::string(key)));
|
||||||
std::cout<<"Falling back to a randomized merchant."<<std::endl;
|
LOG("Falling back to a randomized merchant.");
|
||||||
RandomizeTravelingMerchant();
|
RandomizeTravelingMerchant();
|
||||||
}
|
}
|
@ -724,7 +724,7 @@ bool Player::Hurt(int damage,bool onUpperLevel,float z){
|
|||||||
float finalPctDmgTaken=armorDmgTaken*otherDmgTaken;
|
float finalPctDmgTaken=armorDmgTaken*otherDmgTaken;
|
||||||
|
|
||||||
if(finalPctDmgTaken<=6._Pct){
|
if(finalPctDmgTaken<=6._Pct){
|
||||||
std::cout<<"WARNING! Damage Reduction has somehow ended up below 6%, which is over the cap!"<<std::endl;
|
LOG("WARNING! Damage Reduction has somehow ended up below 6%, which is over the cap!");
|
||||||
}
|
}
|
||||||
|
|
||||||
finalPctDmgTaken=std::max(6.25_Pct,finalPctDmgTaken);//Apply Damage Cap.
|
finalPctDmgTaken=std::max(6.25_Pct,finalPctDmgTaken);//Apply Damage Cap.
|
||||||
|
@ -208,11 +208,11 @@ const void SaveFile::SaveGame(){
|
|||||||
if(response!="ERR"){
|
if(response!="ERR"){
|
||||||
Server_SaveFile([](std::string_view response){
|
Server_SaveFile([](std::string_view response){
|
||||||
if(response=="ERR"){
|
if(response=="ERR"){
|
||||||
std::cout<<"WARNING! Could not save data to server!"<<std::endl;
|
LOG("WARNING! Could not save data to server!");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
std::cout<<"WARNING! Could not save metadata to server!"<<std::endl;
|
LOG("WARNING! Could not save metadata to server!");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Server_SaveMetadataFile(RetryResponse);
|
Server_SaveMetadataFile(RetryResponse);
|
||||||
@ -227,9 +227,9 @@ const void SaveFile::SaveGame(){
|
|||||||
}
|
}
|
||||||
std::string contents=fileContents.str();
|
std::string contents=fileContents.str();
|
||||||
emscripten_idb_async_store("/assets",("save_file_path"_S+std::format("save.{:04}",saveFileID)).c_str(),contents.data(),contents.length(),0,[](void*arg){
|
emscripten_idb_async_store("/assets",("save_file_path"_S+std::format("save.{:04}",saveFileID)).c_str(),contents.data(),contents.length(),0,[](void*arg){
|
||||||
std::cout<<"Successfully saved save file "<<saveFileID<<"!"<<std::endl;
|
LOG("Successfully saved save file "<<saveFileID<<"!");
|
||||||
},[](void*arg){
|
},[](void*arg){
|
||||||
std::cout<<"Failed to save save file "<<saveFileID<<"!"<<std::endl;
|
LOG("Failed to save save file "<<saveFileID<<"!");
|
||||||
});
|
});
|
||||||
|
|
||||||
file.close();
|
file.close();
|
||||||
@ -245,9 +245,9 @@ const void SaveFile::SaveGame(){
|
|||||||
}
|
}
|
||||||
std::string metaContents=metafileContents.str();
|
std::string metaContents=metafileContents.str();
|
||||||
emscripten_idb_async_store("/assets",("save_file_path"_S+"metadata.dat").c_str(),metaContents.data(),metaContents.length(),0,[](void*arg){
|
emscripten_idb_async_store("/assets",("save_file_path"_S+"metadata.dat").c_str(),metaContents.data(),metaContents.length(),0,[](void*arg){
|
||||||
std::cout<<"Successfully saved metafile!"<<std::endl;
|
LOG("Successfully saved metafile!");
|
||||||
},[](void*arg){
|
},[](void*arg){
|
||||||
std::cout<<"Failed to save save metafile!"<<std::endl;
|
LOG("Failed to save save metafile!");
|
||||||
});
|
});
|
||||||
|
|
||||||
metafile.close();
|
metafile.close();
|
||||||
@ -262,9 +262,9 @@ const void SaveFile::SaveGame(){
|
|||||||
}
|
}
|
||||||
std::string systemContents=systemFileContents.str();
|
std::string systemContents=systemFileContents.str();
|
||||||
emscripten_idb_async_store("/assets",("save_file_path"_S+"system.conf").c_str(),systemContents.data(),systemContents.length(),0,[](void*arg){
|
emscripten_idb_async_store("/assets",("save_file_path"_S+"system.conf").c_str(),systemContents.data(),systemContents.length(),0,[](void*arg){
|
||||||
std::cout<<"Successfully saved system file!"<<std::endl;
|
LOG("Successfully saved system file!");
|
||||||
},[](void*arg){
|
},[](void*arg){
|
||||||
std::cout<<"Failed to save system file!"<<std::endl;
|
LOG("Failed to save system file!");
|
||||||
});
|
});
|
||||||
|
|
||||||
systemfile.close();
|
systemfile.close();
|
||||||
@ -366,7 +366,7 @@ void SaveFile::LoadFile(){
|
|||||||
|
|
||||||
GameState::ChangeState(States::OVERWORLD_MAP,0.5f);
|
GameState::ChangeState(States::OVERWORLD_MAP,0.5f);
|
||||||
}else{
|
}else{
|
||||||
std::cout<<std::format("WARNING! File {} does not exist for loading!","save_file_path"_S+std::format("save.{:04}",saveFileID))<<std::endl;
|
LOG(std::format("WARNING! File {} does not exist for loading!","save_file_path"_S+std::format("save.{:04}",saveFileID)));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -382,12 +382,12 @@ const void SaveFile::LoadGame(){
|
|||||||
file.close();
|
file.close();
|
||||||
LoadFile();
|
LoadFile();
|
||||||
}else{
|
}else{
|
||||||
std::cout<<"WARNING! Could not load save file!"<<std::endl;
|
LOG("WARNING! Could not load save file!");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
emscripten_idb_async_load("/assets",("save_file_path"_S+std::format("save.{:04}",saveFileID)).c_str(),0,[](void*arg,void*data,int length){
|
emscripten_idb_async_load("/assets",("save_file_path"_S+std::format("save.{:04}",saveFileID)).c_str(),0,[](void*arg,void*data,int length){
|
||||||
std::cout<<"Loaded Save File "<<saveFileID<<" successfully!"<<std::endl;
|
LOG("Loaded Save File "<<saveFileID<<" successfully!");
|
||||||
|
|
||||||
std::string rawMetadata=(char*)data;
|
std::string rawMetadata=(char*)data;
|
||||||
std::ofstream file("save_file_path"_S+std::format("save.{:04}",saveFileID));
|
std::ofstream file("save_file_path"_S+std::format("save.{:04}",saveFileID));
|
||||||
@ -397,7 +397,7 @@ const void SaveFile::LoadGame(){
|
|||||||
file.close();
|
file.close();
|
||||||
LoadFile();
|
LoadFile();
|
||||||
},[](void*arg){
|
},[](void*arg){
|
||||||
std::cout<<"Failed to load Save File "<<saveFileID<<"!"<<std::endl;
|
LOG("Failed to load Save File "<<saveFileID<<"!");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@ -433,7 +433,7 @@ const void SaveFile::SetSaveFileOfflineID_TransitionToOverworldMap(){
|
|||||||
SaveFile::saveFileID=saveFileCount;
|
SaveFile::saveFileID=saveFileCount;
|
||||||
GameState::ChangeState(States::OVERWORLD_MAP);
|
GameState::ChangeState(States::OVERWORLD_MAP);
|
||||||
},[](void*arg){
|
},[](void*arg){
|
||||||
std::cout<<"Failed to load metadata! Initializing as save file 0."<<std::endl;
|
LOG("Failed to load metadata! Initializing as save file 0.");
|
||||||
SaveFile::saveFileID=0; //Since we couldn't find metadata, we are assuming we start at save file 0.
|
SaveFile::saveFileID=0; //Since we couldn't find metadata, we are assuming we start at save file 0.
|
||||||
GameState::ChangeState(States::OVERWORLD_MAP);
|
GameState::ChangeState(States::OVERWORLD_MAP);
|
||||||
});
|
});
|
||||||
@ -494,7 +494,7 @@ const void SaveFile::UpdateSaveGameData(std::function<void()>afterSaveGameDataUp
|
|||||||
gameFilesList->RemoveAllComponents();
|
gameFilesList->RemoveAllComponents();
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
emscripten_idb_async_load("/assets",("save_file_path"_S+"metadata.dat").c_str(),0,[](void*arg,void*data,int length){
|
emscripten_idb_async_load("/assets",("save_file_path"_S+"metadata.dat").c_str(),0,[](void*arg,void*data,int length){
|
||||||
std::cout<<"Loaded metadata successfully!"<<std::endl;
|
LOG("Loaded metadata successfully!");
|
||||||
auto gameFilesList=Component<ScrollableWindowComponent>(LOAD_GAME,"Game Files List");
|
auto gameFilesList=Component<ScrollableWindowComponent>(LOAD_GAME,"Game Files List");
|
||||||
|
|
||||||
std::string rawMetadata=(char*)data;
|
std::string rawMetadata=(char*)data;
|
||||||
@ -521,7 +521,7 @@ const void SaveFile::UpdateSaveGameData(std::function<void()>afterSaveGameDataUp
|
|||||||
}
|
}
|
||||||
SaveFile::afterSaveGameDataUpdate();
|
SaveFile::afterSaveGameDataUpdate();
|
||||||
},[](void*arg){
|
},[](void*arg){
|
||||||
std::cout<<"Failed to load metadata!"<<std::endl;
|
LOG("Failed to load metadata!");
|
||||||
SaveFile::afterSaveGameDataUpdate();
|
SaveFile::afterSaveGameDataUpdate();
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
@ -632,9 +632,9 @@ const void SaveFile::Server_SaveMetadataFile(std::function<void(std::string_view
|
|||||||
std::string contents=fileContents.str();
|
std::string contents=fileContents.str();
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
emscripten_idb_async_store("/assets",("save_file_path"_S+"metadata.dat"+"_online").c_str(),contents.data(),contents.length(),0,[](void*arg){
|
emscripten_idb_async_store("/assets",("save_file_path"_S+"metadata.dat"+"_online").c_str(),contents.data(),contents.length(),0,[](void*arg){
|
||||||
std::cout<<"Saved metadata successfully!"<<std::endl;
|
LOG("Saved metadata successfully!");
|
||||||
},[](void*arg){
|
},[](void*arg){
|
||||||
std::cout<<"Failed to save metadata!"<<std::endl;
|
LOG("Failed to save metadata!");
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
game->SendRequest("save_server"_S,CreateServerRequest(SaveFileOperation::SAVE_METADATA_FILE,fileContents.str()));
|
game->SendRequest("save_server"_S,CreateServerRequest(SaveFileOperation::SAVE_METADATA_FILE,fileContents.str()));
|
||||||
|
@ -87,7 +87,7 @@ public:
|
|||||||
|
|
||||||
removedCount+=Menu::menus[parentMenu]->components.erase(componentName);
|
removedCount+=Menu::menus[parentMenu]->components.erase(componentName);
|
||||||
if(removedCount!=1){
|
if(removedCount!=1){
|
||||||
std::cout<<"WARNING! Attempted to remove subbuttons from button listing, but not found!";
|
LOG("WARNING! Attempted to remove subbuttons from button listing, but not found!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -103,7 +103,7 @@ public:
|
|||||||
|
|
||||||
removedCount+=Menu::menus[parentMenu]->components.erase(button.lock()->GetName());
|
removedCount+=Menu::menus[parentMenu]->components.erase(button.lock()->GetName());
|
||||||
if(removedCount!=1){
|
if(removedCount!=1){
|
||||||
std::cout<<"WARNING! Attempted to remove buttons from button listing, but not found!";
|
LOG("WARNING! Attempted to remove buttons from button listing, but not found!");
|
||||||
}
|
}
|
||||||
CalculateBounds();
|
CalculateBounds();
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,7 @@ class TMXParser{
|
|||||||
if (newTag.tag.length()==0) { //Tag's empty, so first line is the tag.
|
if (newTag.tag.length()==0) { //Tag's empty, so first line is the tag.
|
||||||
newTag.tag=data;
|
newTag.tag=data;
|
||||||
#if _DEBUG
|
#if _DEBUG
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<"Tag: "<<newTag.tag<<"\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG("Tag: "<<newTag.tag<<"\n";
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
std::string key = data.substr(0,data.find("="));
|
std::string key = data.substr(0,data.find("="));
|
||||||
@ -402,7 +402,7 @@ class TMXParser{
|
|||||||
|
|
||||||
newTag.data[key]=value;
|
newTag.data[key]=value;
|
||||||
#if _DEBUG
|
#if _DEBUG
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<" "<<key<<":"<<newTag.data[key]<<"\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG(" "<<key<<":"<<newTag.data[key]<<"\n";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -534,11 +534,11 @@ class TMXParser{
|
|||||||
prevZoneData=&zones.back();
|
prevZoneData=&zones.back();
|
||||||
}else{
|
}else{
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<"Unsupported tag format! Ignoring."<<"\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG("Unsupported tag format! Ignoring."<<"\n";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<"\n"<<"=============\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG("\n"<<"=============\n";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
TMXParser::TMXParser(std::string file){
|
TMXParser::TMXParser(std::string file){
|
||||||
@ -596,7 +596,7 @@ class TMXParser{
|
|||||||
|
|
||||||
if(infiniteMap){
|
if(infiniteMap){
|
||||||
#if _DEBUG
|
#if _DEBUG
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<"Infinite map detected. Parsing stopped early."<<std::endl;
|
if(_DEBUG_MAP_LOAD_INFO)LOG("Infinite map detected. Parsing stopped early.");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -682,7 +682,7 @@ class TMXParser{
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<"Parsed Map Data:\n"<<parsedMapInfo<<"\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG("Parsed Map Data:\n"<<parsedMapInfo<<"\n";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
@ -19,10 +19,6 @@ Remove Unlock All Button
|
|||||||
Sword attack should linger
|
Sword attack should linger
|
||||||
Add game file debug logging
|
Add game file debug logging
|
||||||
|
|
||||||
Controller Vibration
|
|
||||||
|
|
||||||
PS5 LED color support
|
|
||||||
|
|
||||||
============================================
|
============================================
|
||||||
|
|
||||||
Make another actions config file for the main build (The app # is different)
|
Make another actions config file for the main build (The app # is different)
|
@ -116,7 +116,7 @@ class TSXParser{
|
|||||||
if(valid&&data.length()>0){
|
if(valid&&data.length()>0){
|
||||||
if (newTag.tag.length()==0) { //Tag's empty, so first line is the tag.
|
if (newTag.tag.length()==0) { //Tag's empty, so first line is the tag.
|
||||||
newTag.tag=data;
|
newTag.tag=data;
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<"Tag: "<<newTag.tag<<"\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG("Tag: "<<newTag.tag<<"\n");
|
||||||
} else {
|
} else {
|
||||||
std::string key = data.substr(0,data.find("="));
|
std::string key = data.substr(0,data.find("="));
|
||||||
std::string value = data.substr(data.find("=")+1,std::string::npos);
|
std::string value = data.substr(data.find("=")+1,std::string::npos);
|
||||||
@ -126,7 +126,7 @@ class TSXParser{
|
|||||||
value = value.substr(0,value.length()-1);
|
value = value.substr(0,value.length()-1);
|
||||||
|
|
||||||
newTag.data[key]=value;
|
newTag.data[key]=value;
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<" "<<key<<":"<<newTag.data[key]<<"\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG(" "<<key<<":"<<newTag.data[key]<<"\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -194,7 +194,7 @@ class TSXParser{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<"\n"<<"=============\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG("\n"<<"=============\n";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
TSXParser::TSXParser(std::string file)
|
TSXParser::TSXParser(std::string file)
|
||||||
@ -228,7 +228,7 @@ class TSXParser{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
if(_DEBUG_MAP_LOAD_INFO)std::cout<<"Parsed Tileset Data:\n"<<parsedTilesetInfo<<"\n";
|
if(_DEBUG_MAP_LOAD_INFO)LOG("Parsed Tileset Data:\n"<<parsedTilesetInfo<<"\n");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
@ -45,7 +45,7 @@ INCLUDE_game
|
|||||||
int Test::totalTests=0;
|
int Test::totalTests=0;
|
||||||
|
|
||||||
void Test::is(std::string conditionStr,bool testResult){
|
void Test::is(std::string conditionStr,bool testResult){
|
||||||
std::cout<<"Running test "<<Test::totalTests<<std::endl;
|
LOG("Running test "<<Test::totalTests);
|
||||||
if(!testResult){
|
if(!testResult){
|
||||||
ERR(("\t"+conditionStr+" returned FALSE"));
|
ERR(("\t"+conditionStr+" returned FALSE"));
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ All rights reserved.
|
|||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 0
|
#define VERSION_MINOR 0
|
||||||
#define VERSION_PATCH 0
|
#define VERSION_PATCH 0
|
||||||
#define VERSION_BUILD 8399
|
#define VERSION_BUILD 8413
|
||||||
|
|
||||||
#define stringify(a) stringify_(a)
|
#define stringify(a) stringify_(a)
|
||||||
#define stringify_(a) #a
|
#define stringify_(a) #a
|
||||||
|
@ -52,6 +52,7 @@ All rights reserved.
|
|||||||
#include <limits>
|
#include <limits>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include "Error.h"
|
||||||
#include FT_FREETYPE_H
|
#include FT_FREETYPE_H
|
||||||
#include FT_GLYPH_H
|
#include FT_GLYPH_H
|
||||||
|
|
||||||
@ -160,7 +161,7 @@ namespace olc {
|
|||||||
FT_Set_Transform(toUse->fontFace, &rotMat, &pen);
|
FT_Set_Transform(toUse->fontFace, &rotMat, &pen);
|
||||||
FT_Error error = FT_Load_Char(toUse->fontFace, chr, FT_LOAD_RENDER);
|
FT_Error error = FT_Load_Char(toUse->fontFace, chr, FT_LOAD_RENDER);
|
||||||
if(error){
|
if(error){
|
||||||
std::cout<<"FT Error: "<<error<<std::endl;
|
LOG("FT Error: "<<error);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,7 +169,7 @@ namespace olc {
|
|||||||
FT_Glyph glyph;
|
FT_Glyph glyph;
|
||||||
error = FT_Get_Glyph(slot, &glyph);
|
error = FT_Get_Glyph(slot, &glyph);
|
||||||
if(error){
|
if(error){
|
||||||
std::cout<<"FT Error: "<<error<<std::endl;
|
LOG("FT Error: "<<error);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user