From 55090a0566177ff1ce2ea42a3eced279f7af2754 Mon Sep 17 00:00:00 2001 From: Flakebi Date: Sat, 19 Jul 2014 20:43:19 +0200 Subject: [PATCH] Unify log output --- src/config/device_config.cpp | 17 +--- src/config/user_config.cpp | 4 +- src/graphics/camera.cpp | 4 +- src/graphics/camera.hpp | 7 +- src/graphics/material_manager.cpp | 4 +- src/graphics/particle_emitter.cpp | 2 +- src/graphics/particle_kind.cpp | 6 +- .../abstract_top_level_container.hpp | 9 +- src/guiengine/layout_manager.cpp | 16 ++-- src/guiengine/scalable_font.cpp | 11 +-- src/guiengine/screen.cpp | 8 +- .../widgets/dynamic_ribbon_widget.cpp | 4 +- src/guiengine/widgets/kart_stats_widget.cpp | 10 +- src/guiengine/widgets/ribbon_widget.cpp | 9 +- src/input/binding.cpp | 4 +- src/input/input_device.cpp | 2 +- src/network/protocols/get_public_address.cpp | 2 +- src/physics/physical_object.cpp | 12 +-- src/physics/triangle_mesh.cpp | 2 +- src/race/highscores.cpp | 8 +- src/race/history.cpp | 80 +++++----------- src/replay/replay_play.cpp | 95 +++++++------------ src/replay/replay_recorder.cpp | 12 ++- src/states_screens/credits.cpp | 16 ++-- src/states_screens/dialogs/addons_loading.cpp | 9 +- src/states_screens/grand_prix_lose.cpp | 4 +- src/states_screens/help_screen_1.cpp | 4 +- src/states_screens/kart_selection.cpp | 32 +++---- src/states_screens/main_menu_screen.cpp | 4 +- src/states_screens/options_screen_input2.cpp | 3 +- src/states_screens/race_gui_overworld.cpp | 20 ++-- src/states_screens/race_result_gui.cpp | 22 ++--- src/tracks/check_cannon.cpp | 8 +- src/tracks/check_goal.cpp | 4 +- src/tracks/check_lap.cpp | 9 +- src/tracks/check_line.cpp | 14 +-- src/tracks/check_manager.cpp | 11 +-- src/tracks/check_structure.cpp | 34 ++++--- src/tracks/graph_node.cpp | 12 +-- src/tracks/quad.cpp | 9 +- src/tracks/track.hpp | 5 +- src/tracks/track_manager.cpp | 30 +++--- src/tracks/track_object_presentation.cpp | 14 +-- src/utils/string_utils.cpp | 6 +- 44 files changed, 233 insertions(+), 365 deletions(-) diff --git a/src/config/device_config.cpp b/src/config/device_config.cpp index 32db91569..488550389 100644 --- a/src/config/device_config.cpp +++ b/src/config/device_config.cpp @@ -19,6 +19,7 @@ #include #include "config/device_config.hpp" +#include "utils/log.hpp" #include using namespace irr; @@ -226,7 +227,7 @@ bool DeviceConfig::deserializeAction(irr::io::IrrXMLReader* xml) // Never hurts to check ;) if (xml == NULL) { - fprintf(stderr, "Error: null pointer (DeviceConfig::deserializeAction)\n"); + Log::error("DeviceConfig", "Null pointer (DeviceConfig::deserializeAction)"); return false; } @@ -243,8 +244,8 @@ bool DeviceConfig::deserializeAction(irr::io::IrrXMLReader* xml) } if(binding_id==-1) { - printf("WARNING: DeviceConfig::deserializeAction : action '%s' is unknown\n", - name_string); + Log::warn("DeviceConfig", "DeviceConfig::deserializeAction : action '%s' is unknown.", + name_string); return false; } @@ -349,23 +350,15 @@ GamepadConfig::GamepadConfig(irr::io::IrrXMLReader* xml) : DeviceConfig( DEVICE_ { const char* name_string = xml->getAttributeValue("name"); if(name_string == NULL) - { - printf("ERROR: Unnamed joystick in config file\n"); - } + Log::error("DeviceConfig", "Unnamed joystick in config file."); else - { m_name = name_string; - } const char* enabled_string = xml->getAttributeValue("enabled"); if (enabled_string != NULL) - { m_enabled = (strcmp(enabled_string, "true") == 0); - } else - { m_enabled = true; - } m_plugged = 0; setDefaultBinds(); diff --git a/src/config/user_config.cpp b/src/config/user_config.cpp index 3cf9171cb..5294ef234 100644 --- a/src/config/user_config.cpp +++ b/src/config/user_config.cpp @@ -713,8 +713,8 @@ bool UserConfig::loadConfig() // add back the code previously there that upgraded the config file to the new // format instead of overwriting it. - GUIEngine::showMessage( _("Your config file was too old, so it was deleted and a new one will be created."), 10.0f); - printf("Your config file was too old, so it was deleted and a new one will be created."); + GUIEngine::showMessage(_("Your config file was too old, so it was deleted and a new one will be created."), 10.0f); + Log::info("UserConfig", "Your config file was too old, so it was deleted and a new one will be created."); delete root; return false; diff --git a/src/graphics/camera.cpp b/src/graphics/camera.cpp index 70a57c36f..2ebed145a 100644 --- a/src/graphics/camera.cpp +++ b/src/graphics/camera.cpp @@ -205,8 +205,8 @@ void Camera::setupCamera() break; default: if(UserConfigParams::logMisc()) - fprintf(stderr, "Incorrect number of players: '%d' - assuming 1.\n", - race_manager->getNumLocalPlayers()); + Log::warn("Camera", "Incorrect number of players: '%d' - assuming 1.", + race_manager->getNumLocalPlayers()); m_viewport = core::recti(0, 0, UserConfigParams::m_width, UserConfigParams::m_height); diff --git a/src/graphics/camera.hpp b/src/graphics/camera.hpp index e9555ea7f..125bc439f 100644 --- a/src/graphics/camera.hpp +++ b/src/graphics/camera.hpp @@ -155,10 +155,9 @@ private: m_type = EC_AHEAD_OF_KART; else { - fprintf(stderr, - "Invalid camera type '%s' - camera is ignored.\n", - s.c_str()); - return false; + Log::warn("Camera", "Invalid camera type '%s' - camera is ignored.", + s.c_str()); + return false; } node.get("xyz", &m_position); node.get("distance", &m_distance2); diff --git a/src/graphics/material_manager.cpp b/src/graphics/material_manager.cpp index a5fea5f95..544cf635a 100644 --- a/src/graphics/material_manager.cpp +++ b/src/graphics/material_manager.cpp @@ -239,7 +239,7 @@ bool MaterialManager::pushTempMaterial(const XMLNode *root, if(!node) { // We don't have access to the filename at this stage anymore :( - fprintf(stderr, "Unknown node in material.xml file\n"); + Log::warn("MaterialManager", "Unknown node in material.xml file."); continue; } try @@ -249,7 +249,7 @@ bool MaterialManager::pushTempMaterial(const XMLNode *root, catch(std::exception& e) { // The message contains a '%s' for the filename - fprintf(stderr, e.what(), filename.c_str()); + Log::warn("MaterialManager", e.what(), filename.c_str()); } } // for igetNumNodes)( return true; diff --git a/src/graphics/particle_emitter.cpp b/src/graphics/particle_emitter.cpp index bfc66d6b3..8bf4d0ada 100644 --- a/src/graphics/particle_emitter.cpp +++ b/src/graphics/particle_emitter.cpp @@ -581,7 +581,7 @@ void ParticleEmitter::setParticleType(const ParticleKind* type) } default: { - fprintf(stderr, "[ParticleEmitter] Unknown shape\n"); + Log::error("ParticleEmitter", "Unknown shape"); return; } } diff --git a/src/graphics/particle_kind.cpp b/src/graphics/particle_kind.cpp index e23b4e92e..d332ceacf 100644 --- a/src/graphics/particle_kind.cpp +++ b/src/graphics/particle_kind.cpp @@ -100,7 +100,7 @@ ParticleKind::ParticleKind(const std::string file) : m_min_start_color(255,255,2 } else { - fprintf(stderr, "[ParticleKind] main node has unknown value for attribute 'emitter'\n"); + Log::warn("ParticleKind", " main node has unknown value for attribute 'emitter'."); m_shape = EMITTER_POINT; } @@ -254,8 +254,8 @@ Material* ParticleKind::getMaterial() const } else { - fprintf(stderr, "[ParticleKind] WARNING: particle image '%s' does not appear in the list of " - "currently known materials\n", m_material_file.c_str()); + Log::warn("ParticleKind", "Particle image '%s' does not appear in the list of " + "currently known materials.", m_material_file.c_str()); return NULL; } } diff --git a/src/guiengine/abstract_top_level_container.hpp b/src/guiengine/abstract_top_level_container.hpp index 1f7bb874f..3387f51aa 100644 --- a/src/guiengine/abstract_top_level_container.hpp +++ b/src/guiengine/abstract_top_level_container.hpp @@ -87,12 +87,9 @@ namespace GUIEngine Widget* out = getWidget(name); T* outCasted = dynamic_cast( out ); if (out != NULL && outCasted == NULL) - { - fprintf(stderr, "Screen::getWidget : Widget '%s' of type '%s'" - "cannot be casted to requested type '%s'!\n", name, - typeid(*out).name(), typeid(T).name()); - abort(); - } + Log::fatal("Screen::getWidget", "Widget '%s' of type '%s'" + "cannot be casted to requested type '%s'!\n", name, + typeid(*out).name(), typeid(T).name()); return outCasted; } diff --git a/src/guiengine/layout_manager.cpp b/src/guiengine/layout_manager.cpp index 32643e221..268d45605 100644 --- a/src/guiengine/layout_manager.cpp +++ b/src/guiengine/layout_manager.cpp @@ -47,7 +47,7 @@ int atoi_p(const char* val) } else { - fprintf(stderr, "[LayoutManager] WARNING: Invalid value '%s' found in XML file where integer was expected\n", val); + Log::warn("LayoutManager", "Invalid value '%s' found in XML file where integer was expected.", val); return 0; } } @@ -461,7 +461,7 @@ void LayoutManager::doCalculateLayout(PtrVector& widgets, AbstractTopLev if (left_space < 0) { - fprintf(stderr, "[LayoutManager] WARNING: statically sized widgets took all the place!!\n"); + Log::warn("LayoutManager", "Statically sized widgets took all the place!!"); left_space = 0; } @@ -536,9 +536,9 @@ void LayoutManager::doCalculateLayout(PtrVector& widgets, AbstractTopLev if (widgets[n].m_w <= 0) { - fprintf(stderr, "WARNING: widget '%s' has a width of %i (left_space = %i, " - "fraction = %f, max_width = %s)\n", widgets[n].m_properties[PROP_ID].c_str(), - widgets[n].m_w, left_space, fraction, widgets[n].m_properties[PROP_MAX_WIDTH].c_str()); + Log::warn("LayoutManager", "Widget '%s' has a width of %i (left_space = %i, " + "fraction = %f, max_width = %s)", widgets[n].m_properties[PROP_ID].c_str(), + widgets[n].m_w, left_space, fraction, widgets[n].m_properties[PROP_MAX_WIDTH].c_str()); widgets[n].m_w = 1; } @@ -556,9 +556,9 @@ void LayoutManager::doCalculateLayout(PtrVector& widgets, AbstractTopLev if (widgets[n].m_h <= 0) { - fprintf(stderr, "WARNING: widget '%s' has a height of %i (left_space = %i, " - "fraction = %f, max_width = %s)\n", widgets[n].m_properties[PROP_ID].c_str(), - widgets[n].m_h, left_space, fraction, widgets[n].m_properties[PROP_MAX_WIDTH].c_str()); + Log::warn("LayoutManager", "Widget '%s' has a height of %i (left_space = %i, " + "fraction = %f, max_width = %s)\n", widgets[n].m_properties[PROP_ID].c_str(), + widgets[n].m_h, left_space, fraction, widgets[n].m_properties[PROP_MAX_WIDTH].c_str()); widgets[n].m_h = 1; } diff --git a/src/guiengine/scalable_font.cpp b/src/guiengine/scalable_font.cpp index f31a933fe..17cdcb78e 100644 --- a/src/guiengine/scalable_font.cpp +++ b/src/guiengine/scalable_font.cpp @@ -57,8 +57,7 @@ ScalableFont::ScalableFont(IGUIEnvironment *env, const std::string &filename) io::IXMLReader* reader = file_manager->createXMLReader(filename.c_str()); if (!load( reader )) { - fprintf(stderr, "[ScalableFont] Loading font failed\n"); - assert(false); + Log::fatal("ScalableFont", "Loading font failed"); } reader->drop(); @@ -157,7 +156,7 @@ void ScalableFont::doReadXmlFile(io::IXMLReader* xml) #ifdef DEBUG if (m_texture_files.find(i) != m_texture_files.end()) { - fprintf(stderr, "[ScalableFont] WARNING: Font conflict, two images have texture %i\n", i); + Log::warn("ScalableFont", "Font conflict, two images have texture %i.", i); } #endif @@ -258,7 +257,7 @@ bool ScalableFont::load(io::IXMLReader* xml) { if (!SpriteBank) { - fprintf(stderr, "[ScalableFont::load] SpriteBank is NULL!!\n"); + Log::error("ScalableFont::load", "SpriteBank is NULL!!"); return false; } @@ -633,7 +632,7 @@ void ScalableFont::draw(const core::stringw& text, if (texture == NULL) { - fprintf(stderr, "WARNING: character not found in current font\n"); + Log::warn("ScalableFont", "Character not found in current font"); continue; // no such character } } @@ -709,7 +708,7 @@ void ScalableFont::lazyLoadTexture(int texID) // couldn't load texture, abort. if (!SpriteBank->getTexture(texID)) { - fprintf(stderr, "!!!!! Unable to load all textures in the font\n"); + Log::error("ScalableFont::lazyLoadTexture", "Unable to load all textures in the font"); _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX; return; } diff --git a/src/guiengine/screen.cpp b/src/guiengine/screen.cpp index 4bc8b4e07..7adc7cf90 100644 --- a/src/guiengine/screen.cpp +++ b/src/guiengine/screen.cpp @@ -184,7 +184,7 @@ void Screen::addWidgets() Widget* w = getFirstWidget(); //std::cout << "First widget is " << (w == NULL ? "null" : w->m_properties[PROP_ID].c_str()) << std::endl; if (w != NULL) w->setFocusForPlayer( PLAYER_ID_GAME_MASTER ); - else fprintf(stderr, "Couldn't select first widget, NULL was returned\n"); + else Log::warn("Screen::AddWidgets", "Couldn't select first widget, NULL was returned"); } // addWidgets // ----------------------------------------------------------------------------- @@ -206,9 +206,9 @@ void Screen::manualRemoveWidget(Widget* w) #ifdef DEBUG if(!m_widgets.contains(w)) { - fprintf(stderr, "Widget '%d' not found in screen when removing.\n", - w->m_id); - fprintf(stderr, "This can be ignored, but is probably wrong.\n"); + Log::info("Screen", "Widget '%d' not found in screen when removing.", + w->m_id); + Log::info("Screen", "This can be ignored, but is probably wrong."); } #endif m_widgets.remove(w); diff --git a/src/guiengine/widgets/dynamic_ribbon_widget.cpp b/src/guiengine/widgets/dynamic_ribbon_widget.cpp index aaab4685b..0ef2b97e0 100644 --- a/src/guiengine/widgets/dynamic_ribbon_widget.cpp +++ b/src/guiengine/widgets/dynamic_ribbon_widget.cpp @@ -189,7 +189,7 @@ void DynamicRibbonWidget::add() if (m_child_width <= 0 || m_child_height <= 0) { - std::cerr << "/!\\ Warning /!\\ : ribbon grid widgets require 'child_width' and 'child_height' arguments" << std::endl; + Log::warn("DynamicRibbonWidget", "Ribbon grid widgets require 'child_width' and 'child_height' arguments"); m_child_width = 256; m_child_height = 256; } @@ -206,7 +206,7 @@ void DynamicRibbonWidget::add() if (m_h - m_label_height < 0) { - fprintf(stderr, "[DynamicRibbonWidget] WARNING: the widget is too small for anything to fit in it!!\n"); + Log::warn("DynamicRibbonWidget", "The widget is too small for anything to fit in it!!"); m_row_amount = 1; } else diff --git a/src/guiengine/widgets/kart_stats_widget.cpp b/src/guiengine/widgets/kart_stats_widget.cpp index 55c40108c..fb96946ad 100644 --- a/src/guiengine/widgets/kart_stats_widget.cpp +++ b/src/guiengine/widgets/kart_stats_widget.cpp @@ -66,13 +66,9 @@ KartStatsWidget::KartStatsWidget(core::recti area, const int player_id, } if(!props) - { - fprintf(stderr, - "[KartSelectionScreen] WARNING: Can't find default " - "kart '%s' nor any other kart.\n", - default_kart.c_str()); - exit(-1); - } + Log::fatal("KartSelectionScreen", "Can't find default " + "kart '%s' nor any other kart.", + default_kart.c_str()); } diff --git a/src/guiengine/widgets/ribbon_widget.cpp b/src/guiengine/widgets/ribbon_widget.cpp index f73315ff4..3f3481288 100644 --- a/src/guiengine/widgets/ribbon_widget.cpp +++ b/src/guiengine/widgets/ribbon_widget.cpp @@ -115,8 +115,8 @@ void RibbonWidget::add() if (m_active_children[i].m_type != WTYPE_ICON_BUTTON && m_active_children[i].m_type != WTYPE_BUTTON) { - fprintf(stderr, "/!\\ Warning /!\\ : ribbon widgets can only have " - "(icon)button widgets as children\n"); + Log::warn("RiggonWidget", "Ribbon widgets can only have " + "(icon)button widgets as children"); continue; } @@ -275,7 +275,7 @@ void RibbonWidget::add() } else { - fprintf(stderr, "Invalid tab bar contents\n"); + Log::error("RibbonWidget", "Invalid tab bar contents"); } m_active_children[i].m_element = subbtn; @@ -375,8 +375,7 @@ void RibbonWidget::add() } else { - fprintf(stderr, - "/!\\ Warning /!\\ : Invalid contents type in ribbon\n"); + Log::warn("RiggonWidget", "Invalid contents type in ribbon"); } diff --git a/src/input/binding.cpp b/src/input/binding.cpp index dcac002ea..062f8172c 100644 --- a/src/input/binding.cpp +++ b/src/input/binding.cpp @@ -51,7 +51,7 @@ bool Binding::deserialize(irr::io::IrrXMLReader* xml) // Proceed only if neccesary tags were found if ((id_string == NULL) || (event_string == NULL)) { - printf("No id-string or event-string given - ignored.\n"); + Log::warn("Binding", "No id-string or event-string given - ignored."); return false; } @@ -66,7 +66,7 @@ bool Binding::deserialize(irr::io::IrrXMLReader* xml) // If the action is a stick motion & a direction is defined if (dir_string == NULL) { - printf("WARNING: IT_STICKMOTION without direction, ignoring.\n"); + Log::warn("Binding", "IT_STICKMOTION without direction, ignoring."); return false; } diff --git a/src/input/input_device.cpp b/src/input/input_device.cpp index 70278fdfe..368d71f1d 100644 --- a/src/input/input_device.cpp +++ b/src/input/input_device.cpp @@ -156,7 +156,7 @@ void GamePadDevice::resetAxisDirection(const int axis, AbstractKart* pk = player->getKart(); if (pk == NULL) { - fprintf(stderr, "Error, trying to reset axis for an unknown player\n"); + Log::error("Binding", "Trying to reset axis for an unknown player."); return; } diff --git a/src/network/protocols/get_public_address.cpp b/src/network/protocols/get_public_address.cpp index 3fe92501c..33379e71b 100644 --- a/src/network/protocols/get_public_address.cpp +++ b/src/network/protocols/get_public_address.cpp @@ -118,7 +118,7 @@ void GetPublicAddress::asynchronousUpdate() hints.ai_socktype = SOCK_STREAM; if ((status = getaddrinfo(stun_servers[rand_result].c_str(), NULL, &hints, &res)) != 0) { - fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(status)); + Log::error("getaddrinfo", gai_strerror(status)); return; } for(p = res;p != NULL; p = p->ai_next) diff --git a/src/physics/physical_object.cpp b/src/physics/physical_object.cpp index f6a612336..57d2fa1c1 100644 --- a/src/physics/physical_object.cpp +++ b/src/physics/physical_object.cpp @@ -238,10 +238,7 @@ void PhysicalObject::init() } else { - fprintf(stderr, "[PhysicalObject] Unknown node type\n"); - max = 1.0f; - min = 0.0f; - assert(false); + Log::fatal("PhysicalObject", "Unknown node type"); } } else if (dynamic_cast(presentation) != NULL) @@ -256,10 +253,7 @@ void PhysicalObject::init() } else { - fprintf(stderr, "[PhysicalObject] Unknown node type\n"); - max = 1.0f; - min = 0.0f; - assert(false); + Log::fatal("PhysicalObject", "Unknown node type"); } Vec3 extend = max-min; // Adjust the mesth of the graphical object so that its center is where it @@ -453,7 +447,7 @@ void PhysicalObject::init() } case MP_NONE: default: - fprintf(stderr, "WARNING: Uninitialised moving shape\n"); + Log::warn("PhysicalObject", "Uninitialised moving shape"); // intended fall-through case MP_BOX: { diff --git a/src/physics/triangle_mesh.cpp b/src/physics/triangle_mesh.cpp index f8690b19c..e790950d0 100644 --- a/src/physics/triangle_mesh.cpp +++ b/src/physics/triangle_mesh.cpp @@ -112,7 +112,7 @@ void TriangleMesh::createCollisionShape(bool create_collision_object, const char btOptimizedBvh* bhv = btOptimizedBvh::deSerializeInPlace(bytes, pos, !IS_LITTLE_ENDIAN); if (bhv == NULL) { - fprintf(stderr, "[TriangleMesh] WARNING, failed to load serialized BHV\n"); + Log::warn("TriangleMesh", "Failed to load serialized BHV"); bhv_triangle_mesh = new btBvhTriangleMeshShape(&m_mesh, false /* useQuantizedAabbCompression */); } else diff --git a/src/race/highscores.cpp b/src/race/highscores.cpp index f00fd036a..4056730c3 100644 --- a/src/race/highscores.cpp +++ b/src/race/highscores.cpp @@ -212,10 +212,10 @@ void Highscores::getEntry(int number, std::string &kart_name, { if(number<0 || number>getNumberEntries()) { - fprintf(stderr, "Error, accessing undefined highscore entry:\n"); - fprintf(stderr,"number %d, but %d entries are defined\n",number, - getNumberEntries()); - fprintf(stderr, "This error can be ignored, but no highscores are available\n"); + Log::warn("Highscores", "Accessing undefined highscore entry:"); + Log::warn("Highscores", "Number %d, but %d entries are defined.", number, + getNumberEntries()); + Log::warn("Highscores", "This error can be ignored, but no highscores are available."); return; } kart_name = m_kart_name[number]; diff --git a/src/race/history.cpp b/src/race/history.cpp index f7c117f66..17cf3110e 100644 --- a/src/race/history.cpp +++ b/src/race/history.cpp @@ -127,7 +127,7 @@ void History::updateReplay(float dt) World *world = World::getWorld(); if(m_current>=(int)m_all_deltas.size()) { - printf("Replay finished.\n"); + Log::info("History", "Replay finished"); m_current = 0; // Note that for physics replay all physics parameters // need to be reset, e.g. velocity, ... @@ -158,20 +158,19 @@ void History::Save() { FILE *fd = fopen("history.dat","w"); if(fd) - printf("History saved in ./history.dat.\n"); + Log::info("History", "Saved in ./history.dat."); else { std::string fn = file_manager->getUserConfigFile("history.dat"); fd = fopen(fn.c_str(), "w"); if(fd) - printf("History saved in '%s'.\n",fn.c_str()); - + Log::info("History", "Saved in '%s'.", fn.c_str()); } if(!fd) { - printf("Can't open history.dat file for writing - can't save history.\n"); - printf("Make sure history.dat in the current directory or the config\n"); - printf("directory is writable.\n"); + Log::info("History", "Can't open history.dat file for writing - can't save history."); + Log::info("History", "Make sure history.dat in the current directory " + "or the config directory is writable."); return; } @@ -231,75 +230,46 @@ void History::Load() FILE *fd = fopen("history.dat","r"); if(fd) - printf("Reading ./history.dat\n"); + Log::info("History", "Reading ./history.dat"); else { std::string fn = file_manager->getUserConfigFile("history.dat"); fd = fopen(fn.c_str(), "r"); if(fd) - printf("Reading '%s'.\n", fn.c_str()); + Log::info("History", "Reading '%s'.", fn.c_str()); } if(!fd) - { - fprintf(stderr, "ERROR: could not open history.dat\n"); - exit(-2); - } + Log::fatal("History", "Could not open history.dat"); if (fgets(s, 1023, fd) == NULL) - { - fprintf(stderr, "ERROR: could not read history.dat\n"); - exit(-2); - } + Log::fatal("History", "Could not read history.dat."); if (sscanf(s,"Version: %1023s",s1)!=1) - { - fprintf(stderr, "ERROR: no Version information found in history file (bogus history file)\n"); - exit(-2); - } - else - { - if (strcmp(s1,STK_VERSION)) - { - fprintf(stderr, "WARNING: history is version '%s'\n",s1); - fprintf(stderr, " STK version is '%s'\n",STK_VERSION); - } - } + Log::fatal("History", "No Version information found in history file (bogus history file)."); + else if (strcmp(s1,STK_VERSION)) + Log::warn("History", "History is version '%s', STK version is '%s'.", s1, STK_VERSION); if (fgets(s, 1023, fd) == NULL) - { - fprintf(stderr, "ERROR: could not read history.dat\n"); - exit(-2); - } + Log::fatal("History", "Could not read history.dat."); unsigned int num_karts; if(sscanf(s, "numkarts: %d",&num_karts)!=1) - { - fprintf(stderr,"WARNING: No number of karts found in history file.\n"); - exit(-2); - } + Log::fatal("History", "No number of karts found in history file."); race_manager->setNumKarts(num_karts); fgets(s, 1023, fd); if(sscanf(s, "numplayers: %d",&n)!=1) - { - fprintf(stderr,"WARNING: No number of players found in history file.\n"); - exit(-2); - } + Log::fatal("History", "No number of players found in history file."); race_manager->setNumLocalPlayers(n); fgets(s, 1023, fd); if(sscanf(s, "difficulty: %d",&n)!=1) - { - fprintf(stderr,"WARNING: No difficulty found in history file.\n"); - exit(-2); - } + Log::fatal("History", "No difficulty found in history file."); race_manager->setDifficulty((RaceManager::Difficulty)n); fgets(s, 1023, fd); if(sscanf(s, "track: %1023s",s1)!=1) - { - fprintf(stderr,"WARNING: Track not found in history file.\n"); - } + Log::warn("History", "Track not found in history file."); race_manager->setTrack(s1); // This value doesn't really matter, but should be defined, otherwise // the racing phase can switch to 'ending' @@ -308,12 +278,8 @@ void History::Load() for(unsigned int i=0; igetNumPlayers()) { @@ -323,10 +289,8 @@ void History::Load() // FIXME: The model information is currently ignored fgets(s, 1023, fd); if(sscanf(s,"size: %d",&m_size)!=1) - { - fprintf(stderr,"WARNING: Number of records not found in history file.\n"); - exit(-2); - } + Log::fatal("History", "Number of records not found in history file."); + allocateMemory(m_size); m_current = -1; diff --git a/src/replay/replay_play.cpp b/src/replay/replay_play.cpp index ed3534023..a3af26002 100644 --- a/src/replay/replay_play.cpp +++ b/src/replay/replay_play.cpp @@ -88,70 +88,51 @@ void ReplayPlay::Load() FILE *fd = openReplayFile(/*writeable*/false); if(!fd) { - printf("Can't read '%s', ghost replay disabled.\n", + Log::error("Replay", "Can't read '%s', ghost replay disabled.", getReplayFilename().c_str()); destroy(); return; } - printf("Reading replay file '%s'.\n", getReplayFilename().c_str()); + Log::info("Replay", "Reading replay file '%s'.", getReplayFilename().c_str()); if (fgets(s, 1023, fd) == NULL) - { - fprintf(stderr, "ERROR: could not read '%s'.\n", - getReplayFilename().c_str()); - exit(-2); - } + Log::fatal("Replay", "Could not read '%s'.", getReplayFilename().c_str()); unsigned int version; - if (sscanf(s,"Version: %d", &version)!=1) - { - fprintf(stderr, "ERROR: no Version information found in replay file" - " (bogus replay file)\n"); - exit(-2); - } + if (sscanf(s,"Version: %d", &version) != 1) + Log::fatal("Replay", "No Version information found in replay file (bogus replay file)."); - if (version!=getReplayVersion()) + if (version != getReplayVersion()) { - fprintf(stderr, "WARNING: replay is version '%d'\n",version); - fprintf(stderr, " STK version is '%d'\n",getReplayVersion()); - fprintf(stderr, " We try to proceed, but it may fail.\n"); + Log::warn("Replay", "Replay is version '%d'",version); + Log::warn("Replay", "STK version is '%d'",getReplayVersion()); + Log::warn("Replay", "We try to proceed, but it may fail."); } if (fgets(s, 1023, fd) == NULL) - { - fprintf(stderr, "ERROR: could not read '%s'.\n", - getReplayFilename().c_str()); - exit(-2); - } + Log::fatal("Replay", "Could not read '%s'.", getReplayFilename().c_str()); int n; - if(sscanf(s, "difficulty: %d",&n)!=1) - { - fprintf(stderr,"WARNING: No difficulty found in replay file.\n"); - exit(-2); - } + if(sscanf(s, "difficulty: %d", &n) != 1) + Log::fatal("Replay", " No difficulty found in replay file."); if(race_manager->getDifficulty()!=(RaceManager::Difficulty)n) - printf("Warning, difficulty of replay is '%d', " - "while '%d' is selected.\n", - race_manager->getDifficulty(), n); + Log::warn("Replay", "Difficulty of replay is '%d', " + "while '%d' is selected.", + race_manager->getDifficulty(), n); fgets(s, 1023, fd); - if(sscanf(s, "track: %s",s1)!=1) - { - fprintf(stderr,"WARNING: Track not found in replay file.\n"); - } + if(sscanf(s, "track: %s", s1) != 1) + Log::warn("Replay", "Track not found in replay file."); assert(std::string(s1)==race_manager->getTrackName()); race_manager->setTrack(s1); unsigned int num_laps; fgets(s, 1023, fd); - if(sscanf(s, "Laps: %d",&num_laps)!=1) - { - fprintf(stderr,"WARNING: No number of laps found in replay file.\n"); - exit(-2); - } + if(sscanf(s, "Laps: %d", &num_laps) != 1) + Log::fatal("Replay", "No number of laps found in replay file."); + race_manager->setNumLaps(num_laps); // eof actually doesn't trigger here, since it requires first to try @@ -175,25 +156,18 @@ void ReplayPlay::readKartData(FILE *fd, char *next_line) { char s[1024]; if(sscanf(next_line, "model: %s", s)!=1) - { - fprintf(stderr, - "WARNING: No model information for kart %d found.\n", + Log::fatal("Replay", "No model information for kart %d found.", m_ghost_karts.size()); - exit(-2); - } + m_ghost_karts.push_back(new GhostKart(std::string(s))); m_ghost_karts[m_ghost_karts.size()-1].init(RaceManager::KT_GHOST); fgets(s, 1023, fd); unsigned int size; if(sscanf(s,"size: %d",&size)!=1) - { - fprintf(stderr, - "WARNING: Number of records not found in replay file " - "for kart %d.\n", + Log::fatal("Replay", "Number of records not found in replay file " + "for kart %d.", m_ghost_karts.size()-1); - exit(-2); - } for(unsigned int i=0; igetIdent().c_str()); + Log::warn("ReplayRecorder", buffer); + } continue; } TransformEvent *p = &(m_transform_events[i][m_count_transforms[i]-1]); @@ -153,12 +157,12 @@ void ReplayRecorder::Save() FILE *fd = openReplayFile(/*writeable*/true); if(!fd) { - printf("Can't open '%s' for writing - can't save replay data.\n", - getReplayFilename().c_str()); + Log::error("ReplayRecorder", "Can't open '%s' for writing - can't save replay data.", + getReplayFilename().c_str()); return; } - printf("Replay saved in '%s'.\n", getReplayFilename().c_str()); + Log::info("ReplayRecorder", "Replay saved in '%s'.\n", getReplayFilename().c_str()); World *world = World::getWorld(); unsigned int num_karts = world->getNumKarts(); diff --git a/src/states_screens/credits.cpp b/src/states_screens/credits.cpp index 4927175d9..019aa3476 100644 --- a/src/states_screens/credits.cpp +++ b/src/states_screens/credits.cpp @@ -85,7 +85,7 @@ bool CreditsScreen::getWideLine(std::ifstream& file, core::stringw* out) { if (!file.good()) { - fprintf(stderr, "getWideLine : File is not good!\n"); + Log::error("CreditsScreen", "getWideLine: File is not good!"); return false; } wchar_t wide_char; @@ -147,8 +147,8 @@ void CreditsScreen::loadedFromFile() if (file.fail() || !file.is_open() || file.eof()) { - fprintf(stderr, "\n/!\\ Failed to open file at '%s'\n\n", - creditsfile.c_str()); + Log::error("CreditsScreen", "Failed to open file at '%s'.", + creditsfile.c_str()); return; } @@ -160,10 +160,8 @@ void CreditsScreen::loadedFromFile() if (file.fail() || !file.is_open() || file.eof()) { - fprintf(stderr, - "\n/!\\ Failed to read file at '%s', unexpected EOF\n\n", - creditsfile.c_str()); - assert(false); + Log::error("CreditsScreen", "Failed to read file at '%s', unexpected EOF.", + creditsfile.c_str()); return; } @@ -203,9 +201,7 @@ void CreditsScreen::loadedFromFile() if (lineCount == 0) { - fprintf(stderr, - "\n/!\\ Could not read anything from CREDITS file!\n\n"); - assert(false); + Log::error("CreditsScreen", "Could not read anything from CREDITS file!"); return; } diff --git a/src/states_screens/dialogs/addons_loading.cpp b/src/states_screens/dialogs/addons_loading.cpp index 2d6f1ef2d..1d82e4b13 100644 --- a/src/states_screens/dialogs/addons_loading.cpp +++ b/src/states_screens/dialogs/addons_loading.cpp @@ -384,11 +384,10 @@ void AddonsLoading::doUninstall() error = !addons_manager->uninstall(m_addon); if(error) { - printf("[addons]Directory '%s' can not be removed.\n", - m_addon.getDataDir().c_str()); - printf("[addons]Please remove this directory manually.\n"); - core::stringw msg = StringUtils::insertValues( - _("Problems removing the addon '%s'."), + Log::warn("Addons", "Directory '%s' can not be removed.", + m_addon.getDataDir().c_str()); + Log::warn("Addons", "Please remove this directory manually."); + core::stringw msg = StringUtils::insertValues(_("Problems removing the addon '%s'."), core::stringw(m_addon.getName().c_str())); getWidget("description")->setText(msg.c_str()); } diff --git a/src/states_screens/grand_prix_lose.cpp b/src/states_screens/grand_prix_lose.cpp index f9bc459fd..27673542b 100644 --- a/src/states_screens/grand_prix_lose.cpp +++ b/src/states_screens/grand_prix_lose.cpp @@ -252,9 +252,9 @@ void GrandPrixLose::setKarts(std::vector ident_arg) } else { - fprintf(stderr, "[GrandPrixLose] WARNING: could not find a kart named '%s'\n", ident_arg[n].c_str()); + Log::warn("GrandPrixLose", "Could not find a kart named '%s'.", ident_arg[n].c_str()); m_kart_node[n] = NULL; - }// if kart !=NULL + } // if kart != NULL } } // setKarts diff --git a/src/states_screens/help_screen_1.cpp b/src/states_screens/help_screen_1.cpp index 380e342a5..6a4ae514c 100644 --- a/src/states_screens/help_screen_1.cpp +++ b/src/states_screens/help_screen_1.cpp @@ -71,8 +71,8 @@ void HelpScreen1::eventCallback(Widget* widget, const std::string& name, const i if (kart_properties_manager->getKart(UserConfigParams::m_default_kart) == NULL) { - fprintf(stderr, "[MainMenuScreen] WARNING: cannot find kart '%s', will revert to default\n", - UserConfigParams::m_default_kart.c_str()); + Log::warn("HelpScreen1", "Cannot find kart '%s', will revert to default", + UserConfigParams::m_default_kart.c_str()); UserConfigParams::m_default_kart.revertToDefaults(); } race_manager->setLocalKartInfo(0, UserConfigParams::m_default_kart); diff --git a/src/states_screens/kart_selection.cpp b/src/states_screens/kart_selection.cpp index 0195ee189..c32dc85ca 100644 --- a/src/states_screens/kart_selection.cpp +++ b/src/states_screens/kart_selection.cpp @@ -331,13 +331,9 @@ PlayerKartWidget::PlayerKartWidget(KartSelectionScreen* parent, } if(!props) - { - fprintf(stderr, - "[KartSelectionScreen] WARNING: Can't find default " - "kart '%s' nor any other kart.\n", - default_kart.c_str()); - exit(-1); - } + Log::fatal("KartSelectionScreen", "Can't find default " + "kart '%s' nor any other kart.", + default_kart.c_str()); } m_kartInternalName = props->getIdent(); @@ -423,14 +419,12 @@ void PlayerKartWidget::setPlayerID(const int newPlayerID) if (StateManager::get()->getActivePlayer(newPlayerID) != m_associated_player) { - Log::warn("[KartSelectionScreen]", "Internal " - "inconsistency, PlayerKartWidget has IDs and " - "pointers that do not correspond to one player"); - fprintf(stderr, - " Player: %p - Index: %d - m_associated_player: %p\n", - StateManager::get()->getActivePlayer(newPlayerID), - newPlayerID, m_associated_player); - assert(false); + Log::error("KartSelectionScreen", "Internal " + "inconsistency, PlayerKartWidget has IDs and " + "pointers that do not correspond to one player"); + Log::fatal("KartSelectionScreen", " Player: %p - Index: %d - m_associated_player: %p", + StateManager::get()->getActivePlayer(newPlayerID), + newPlayerID, m_associated_player); } // Remove current focus, but rembmer it @@ -1612,11 +1606,9 @@ void KartSelectionScreen::updateKartWidgetModel(uint8_t widget_id, ->setText( selectionText.c_str(), false ); } else - { - fprintf(stderr, "[KartSelectionScreen] WARNING: could not " - "find a kart named '%s'\n", - selection.c_str()); - } + Log::warn("KartSelectionScreen", "could not " + "find a kart named '%s'", + selection.c_str()); } } diff --git a/src/states_screens/main_menu_screen.cpp b/src/states_screens/main_menu_screen.cpp index 55938fb3f..45a038b11 100644 --- a/src/states_screens/main_menu_screen.cpp +++ b/src/states_screens/main_menu_screen.cpp @@ -380,8 +380,8 @@ void MainMenuScreen::eventCallback(Widget* widget, const std::string& name, if (kart_properties_manager->getKart(UserConfigParams::m_default_kart) == NULL) { - fprintf(stderr, "[MainMenuScreen] WARNING: cannot find kart '%s', will revert to default\n", - UserConfigParams::m_default_kart.c_str()); + Log::warn("MainMenuScreen", "Cannot find kart '%s', will revert to default", + UserConfigParams::m_default_kart.c_str()); UserConfigParams::m_default_kart.revertToDefaults(); } race_manager->setLocalKartInfo(0, UserConfigParams::m_default_kart); diff --git a/src/states_screens/options_screen_input2.cpp b/src/states_screens/options_screen_input2.cpp index 0ed577dea..c4d13f3eb 100644 --- a/src/states_screens/options_screen_input2.cpp +++ b/src/states_screens/options_screen_input2.cpp @@ -567,7 +567,8 @@ void OptionsScreenInput2::onConfirm() const bool success = input_manager->getDeviceList()->deleteConfig(m_config); assert(success); - if (!success) fprintf(stderr, "Failed to delete config!\n"); + if (!success) + Log::error("OptionsScreenInput2", "Failed to delete config!"); m_config = NULL; input_manager->getDeviceList()->serialize(); diff --git a/src/states_screens/race_gui_overworld.cpp b/src/states_screens/race_gui_overworld.cpp index f7cd19e05..cdef71b1e 100644 --- a/src/states_screens/race_gui_overworld.cpp +++ b/src/states_screens/race_gui_overworld.cpp @@ -471,8 +471,8 @@ void RaceGUIOverworld::drawGlobalMiniMap() if (challenge == NULL) { - fprintf(stderr, "[RaceGUIOverworld] ERROR: Cannot find challenge <%s>\n", - challenges[n].m_challenge_id.c_str()); + Log::error("RaceGUIOverworld", "Cannot find challenge <%s>.", + challenges[n].m_challenge_id.c_str()); break; } @@ -483,10 +483,10 @@ void RaceGUIOverworld::drawGlobalMiniMap() if (gp == NULL) { - fprintf(stderr, "[RaceGUIOverworld] ERROR: Cannot find GP <%s>, " - "referenced from challenge <%s>\n", - challenge->getGPId().c_str(), - challenges[n].m_challenge_id.c_str()); + Log::error("RaceGUIOverworld", "Cannot find GP <%s>, " + "referenced from challenge <%s>", + challenge->getGPId().c_str(), + challenges[n].m_challenge_id.c_str()); break; } @@ -508,10 +508,10 @@ void RaceGUIOverworld::drawGlobalMiniMap() Track* track = track_manager->getTrack(challenge->getTrackId()); if (track == NULL) { - fprintf(stderr, "[RaceGUIOverworld] ERROR: Cannot find track <%s>, " - "referenced from challenge <%s>\n", - challenge->getTrackId().c_str(), - challenges[n].m_challenge_id.c_str()); + Log::error("RaceGUIOverworld", "Cannot find track <%s>, " + "referenced from challenge <%s>", + challenge->getTrackId().c_str(), + challenges[n].m_challenge_id.c_str()); break; } diff --git a/src/states_screens/race_result_gui.cpp b/src/states_screens/race_result_gui.cpp index 9b5803421..73c7b3577 100644 --- a/src/states_screens/race_result_gui.cpp +++ b/src/states_screens/race_result_gui.cpp @@ -297,9 +297,8 @@ void RaceResultGUI::eventCallback(GUIEngine::Widget* widget, } return; } - fprintf(stderr, "Incorrect event '%s' when things are unlocked.\n", - name.c_str()); - assert(false); + Log::fatal("RaceResultGUI", "Incorrect event '%s' when things are unlocked.", + name.c_str()); } // If we're playing online : @@ -342,11 +341,8 @@ void RaceResultGUI::eventCallback(GUIEngine::Widget* widget, MessageDialog::MESSAGE_DIALOG_CONFIRM, this, false); } else if (!getWidget(name.c_str())->isVisible()) - { - fprintf(stderr, "Incorrect event '%s' when things are unlocked.\n", - name.c_str()); - assert(false); - } + Log::fatal("RaceResultGUI", "Incorrect event '%s' when things are unlocked.", + name.c_str()); return; } @@ -387,10 +383,8 @@ void RaceResultGUI::eventCallback(GUIEngine::Widget* widget, } } else - { - fprintf(stderr, "Incorrect event '%s' for normal race.\n", - name.c_str()); - } + Log::fatal("RaceResultGUI", "Incorrect event '%s' for normal race.", + name.c_str()); return; } // eventCallback @@ -615,8 +609,8 @@ void RaceResultGUI::onUpdate(float dt) } catch (std::exception& e) { - fprintf(stderr, "[RaceResultGUI] WARNING: exception caught when " - "trying to load music: %s\n", e.what()); + Log::error("RaceResultGUI", "Exception caught when " + "trying to load music: %s", e.what()); } } } // onUpdate diff --git a/src/tracks/check_cannon.cpp b/src/tracks/check_cannon.cpp index 4b0120e6b..7effbe71b 100644 --- a/src/tracks/check_cannon.cpp +++ b/src/tracks/check_cannon.cpp @@ -36,12 +36,8 @@ CheckCannon::CheckCannon(const XMLNode &node, unsigned int index) : CheckLine(node, index) { core::vector3df p1, p2; - if(!node.get("target-p1", &p1) || - !node.get("target-p2", &p2) ) - { - printf("CheckCannon has no target line specified.\n"); - exit(-1); - } + if(!node.get("target-p1", &p1) || !node.get("target-p2", &p2)) + Log::fatal("CheckCannon", "No target line specified."); m_target.setLine(p1, p2); m_curve = new Ipo(*(node.getNode("curve")), /*fps*/25, diff --git a/src/tracks/check_goal.cpp b/src/tracks/check_goal.cpp index 736859cbf..f582f182f 100644 --- a/src/tracks/check_goal.cpp +++ b/src/tracks/check_goal.cpp @@ -72,8 +72,8 @@ void CheckGoal::update(float dt) if(isTriggered(m_previous_position[ball_index], xyz, ball_index)) { if(UserConfigParams::m_check_debug) - printf("CHECK: Goal check structure %d triggered for object %s.\n", - m_index, obj->getPresentation()->getNode()->getDebugName()); + Log::info("CheckGoal", "Goal check structure %d triggered for object %s.", + m_index, obj->getPresentation()->getNode()->getDebugName()); trigger(ball_index); } m_previous_position[ball_index] = xyz; diff --git a/src/tracks/check_lap.cpp b/src/tracks/check_lap.cpp index 71f6591af..bf92b9b10 100644 --- a/src/tracks/check_lap.cpp +++ b/src/tracks/check_lap.cpp @@ -71,11 +71,10 @@ bool CheckLap::isTriggered(const Vec3 &old_pos, const Vec3 &new_pos, bool result =(m_previous_distance[indx]>0.95f*track_length && current_distance<7.0f); if(UserConfigParams::m_check_debug && result) - { - printf("CHECK: Kart %s crossed start line from %f to %f.\n", - World::getWorld()->getKart(indx)->getIdent().c_str(), - m_previous_distance[indx], current_distance); - } + Log::info("CheckLap", "Kart %s crossed start line from %f to %f.", + World::getWorld()->getKart(indx)->getIdent().c_str(), + m_previous_distance[indx], current_distance); + m_previous_distance[indx] = current_distance; return result; diff --git a/src/tracks/check_line.cpp b/src/tracks/check_line.cpp index 36015b334..f67c76b29 100644 --- a/src/tracks/check_line.cpp +++ b/src/tracks/check_line.cpp @@ -173,14 +173,14 @@ bool CheckLine::isTriggered(const Vec3 &old_pos, const Vec3 &new_pos, if(UserConfigParams::m_check_debug && !result) { if(World::getWorld()->getNumKarts()>0) - printf("CHECK: Kart %s crosses line, but wrong height " - "(%f vs %f).\n", - World::getWorld()->getKart(indx)->getIdent().c_str(), - new_pos.getY(), m_min_height); + Log::info("CheckLine", "Kart %s crosses line, but wrong height " + "(%f vs %f).", + World::getWorld()->getKart(indx)->getIdent().c_str(), + new_pos.getY(), m_min_height); else - printf("CHECK: Kart %d crosses line, but wrong height " - "(%f vs %f).\n", - indx, new_pos.getY(), m_min_height); + Log::info("CheckLine", "Kart %d crosses line, but wrong height " + "(%f vs %f).", + indx, new_pos.getY(), m_min_height); } } diff --git a/src/tracks/check_manager.cpp b/src/tracks/check_manager.cpp index f80b6be39..7ece0621e 100644 --- a/src/tracks/check_manager.cpp +++ b/src/tracks/check_manager.cpp @@ -64,7 +64,7 @@ void CheckManager::load(const XMLNode &node) m_all_checks.push_back(cs); } // checksphere else - printf("Unknown check structure '%s' - ignored.\n", type.c_str()); + Log::warn("CheckManager", "Unknown check structure '%s' - ignored.", type.c_str()); } // for i(c) != NULL) return i; } - fprintf(stderr, - "No check-lap structure found! This can cause incorrect kart\n"); - fprintf(stderr, - "ranking when crossing the line, but can otherwise be ignored.\n"); + Log::warn("CheckManager", "No check-lap structure found! This can cause incorrect kart"); + Log::warn("CheckManager", "ranking when crossing the line, but can otherwise be ignored."); for (unsigned int i=0; igetType()==CheckStructure::CT_NEW_LAP) return i; } - fprintf(stderr, "Error, no kind of lap line for track found, aborting.\n"); - exit(-1); + Log::fatal("CheckManager", "Error, no kind of lap line for track found, aborting."); } // getLapLineIndex // ---------------------------------------------------------------------------- diff --git a/src/tracks/check_structure.cpp b/src/tracks/check_structure.cpp index 5a3f8b05e..a99b19ca9 100644 --- a/src/tracks/check_structure.cpp +++ b/src/tracks/check_structure.cpp @@ -54,9 +54,7 @@ CheckStructure::CheckStructure(const XMLNode &node, unsigned int index) else if(node.getName()=="cannon") m_check_type = CT_CANNON; else - { - printf("Unknown check structure '%s' - ignored.\n", kind.c_str()); - } + Log::warn("CheckStructure", "Unknown check structure '%s' - ignored.", kind.c_str()); node.get("same-group", &m_same_group); // Make sure that the index of this check structure is included in @@ -108,8 +106,8 @@ void CheckStructure::update(float dt) if(m_is_active[i] && isTriggered(m_previous_position[i], xyz, i)) { if(UserConfigParams::m_check_debug) - printf("CHECK: Check structure %d triggered for kart %s.\n", - m_index, world->getKart(i)->getIdent().c_str()); + Log::info("CheckStructure", "Check structure %d triggered for kart %s.", + m_index, world->getKart(i)->getIdent().c_str()); trigger(i); } m_previous_position[i] = xyz; @@ -144,18 +142,18 @@ void CheckStructure::changeStatus(const std::vector indices, cs->m_is_active[kart_index] = false; if(UserConfigParams::m_check_debug) { - printf("CHECK: Deactivating %d for %s.\n", - indices[i], - World::getWorld()->getKart(kart_index)->getIdent().c_str()); + Log::info("CheckStructure", "Deactivating %d for %s.", + indices[i], + World::getWorld()->getKart(kart_index)->getIdent().c_str()); } break; case CS_ACTIVATE: cs->m_is_active[kart_index] = true; if(UserConfigParams::m_check_debug) { - printf("CHECK: Activating %d for %s.\n", - indices[i], - World::getWorld()->getKart(kart_index)->getIdent().c_str()); + Log::info("CheckStructure", "Activating %d for %s.", + indices[i], + World::getWorld()->getKart(kart_index)->getIdent().c_str()); } break; case CS_TOGGLE: @@ -166,10 +164,10 @@ void CheckStructure::changeStatus(const std::vector indices, // non-POD type 'struct std::_Bit_reference' through '...'; // call will abort at runtime"). So we use this somewhat // unusual but portable construct. - printf("CHECK: Toggling %d for %s from %d.\n", - indices[i], - World::getWorld()->getKart(kart_index)->getIdent().c_str(), - cs->m_is_active[kart_index]==true); + Log::info("CheckStructure", "Toggling %d for %s from %d.", + indices[i], + World::getWorld()->getKart(kart_index)->getIdent().c_str(), + cs->m_is_active[kart_index]==true); } cs->m_is_active[kart_index] = !cs->m_is_active[kart_index]; } // switch @@ -213,9 +211,9 @@ void CheckStructure::trigger(unsigned int kart_index) World::getWorld()->newLap(kart_index); if(UserConfigParams::m_check_debug) { - printf("CHECK: %s new lap %d triggered\n", - World::getWorld()->getKart(kart_index)->getIdent().c_str(), - m_index); + Log::info("CheckStructure", "%s new lap %d triggered", + World::getWorld()->getKart(kart_index)->getIdent().c_str(), + m_index); } changeStatus(m_check_structures_to_change_state, kart_index, CS_ACTIVATE); diff --git a/src/tracks/graph_node.cpp b/src/tracks/graph_node.cpp index e43eeb988..ac5967de5 100644 --- a/src/tracks/graph_node.cpp +++ b/src/tracks/graph_node.cpp @@ -30,10 +30,8 @@ GraphNode::GraphNode(unsigned int quad_index, unsigned int node_index) { if (quad_index >= QuadSet::get()->getNumberOfQuads()) - { - fprintf(stderr, "[GraphNode] ERROR: No driveline found, or empty driveline"); - abort(); - } + Log::fatal("GraphNode", "No driveline found, or empty driveline."); + m_quad_index = quad_index; m_node_index = node_index; m_distance_from_start = -1.0f; @@ -130,10 +128,10 @@ void GraphNode::setupPathsToNode() gn.markAllSuccessorsToUse(i, &m_path_to_node); } #ifdef DEBUG - for(unsigned int i=0; i #include @@ -31,10 +32,10 @@ Quad::Quad(const Vec3 &p0, const Vec3 &p1, const Vec3 &p2, const Vec3 &p3, if(p1.sideOfLine2D(p0, p2)>0 || p3.sideOfLine2D(p0, p2)<0) { - printf("Warning: quad has wrong orientation: p0=%f %f %f p1=%f %f %f\n", - p0.getX(), p0.getY(), p0.getZ(),p1.getX(), p1.getY(), p1.getZ()); - printf("The quad will be swapped, nevertheless test for correctness -\n"); - printf("quads must be counter-clockwise oriented.\n"); + Log::warn("Quad", "Quad has wrong orientation: p0=%f %f %f p1=%f %f %f", + p0.getX(), p0.getY(), p0.getZ(),p1.getX(), p1.getY(), p1.getZ()); + Log::warn("Quad", "The quad will be swapped, nevertheless test for correctness -"); + Log::warn("Quad", "quads must be counter-clockwise oriented."); m_p[0]=p1; m_p[1]=p0; m_p[2]=p3; m_p[3]=p2; } else diff --git a/src/tracks/track.hpp b/src/tracks/track.hpp index 1d7073569..6b715dac9 100644 --- a/src/tracks/track.hpp +++ b/src/tracks/track.hpp @@ -498,10 +498,7 @@ public: btTransform getStartTransform (unsigned int index) const { if (index >= m_start_transforms.size()) - { - fprintf(stderr, "No start position for kart %i\n", index); - abort(); - } + Log::fatal("Tracj", "No start position for kart %i.", index); return m_start_transforms[index]; } // ------------------------------------------------------------------------ diff --git a/src/tracks/track_manager.cpp b/src/tracks/track_manager.cpp index c987ec522..b2092b13e 100644 --- a/src/tracks/track_manager.cpp +++ b/src/tracks/track_manager.cpp @@ -98,9 +98,8 @@ void TrackManager::setUnavailableTracks(const std::vector &tracks) if (std::find(tracks.begin(), tracks.end(), id)==tracks.end()) { m_track_avail[i-m_tracks.begin()] = false; - fprintf(stderr, - "Track '%s' not available on all clients, disabled.\n", - id.c_str()); + Log::warn("TrackManager", "Track '%s' not available on all clients, disabled.", + id.c_str()); } // if id not in tracks } // for all available tracks in track manager @@ -174,7 +173,7 @@ bool TrackManager::loadTrack(const std::string& dirname) } catch (std::exception& e) { - fprintf(stderr, "[TrackManager] ERROR: Cannot load track <%s> : %s\n", + Log::error("TrackManager", "Cannot load track <%s> : %s\n", dirname.c_str(), e.what()); return false; } @@ -182,12 +181,12 @@ bool TrackManager::loadTrack(const std::string& dirname) if (track->getVersion()m_min_track_version || track->getVersion()>stk_config->m_max_track_version) { - fprintf(stderr, "[TrackManager] Warning: track '%s' is not supported " + Log::warn("TrackManager", "Track '%s' is not supported " "by this binary, ignored. (Track is version %i, this " - "executable supports from %i to %i)\n", - track->getIdent().c_str(), track->getVersion(), - stk_config->m_min_track_version, - stk_config->m_max_track_version); + "executable supports from %i to %i).", + track->getIdent().c_str(), track->getVersion(), + stk_config->m_min_track_version, + stk_config->m_max_track_version); delete track; return false; } @@ -206,22 +205,15 @@ void TrackManager::removeTrack(const std::string &ident) { Track *track = getTrack(ident); if (track == NULL) - { - fprintf(stderr, "[TrackManager] ERROR: There is no track named '%s'!!\n", ident.c_str()); - assert(false); - return; - } + Log::fatal("TrackManager", "There is no track named '%s'!!", ident.c_str()); if (track->isInternal()) return; std::vector::iterator it = std::find(m_tracks.begin(), m_tracks.end(), track); if (it == m_tracks.end()) - { - fprintf(stderr, "[TrackManager] INTERNAL ERROR: Cannot find track '%s' in map!!\n", ident.c_str()); - assert(false); - return; - } + Log::fatal("TrackManager", "Cannot find track '%s' in map!!", ident.c_str()); + int index = it - m_tracks.begin(); // Remove the track from all groups it belongs to diff --git a/src/tracks/track_object_presentation.cpp b/src/tracks/track_object_presentation.cpp index d3b53686d..6aef4dcc7 100644 --- a/src/tracks/track_object_presentation.cpp +++ b/src/tracks/track_object_presentation.cpp @@ -496,10 +496,7 @@ TrackObjectPresentationSound::TrackObjectPresentationSound(const XMLNode& xml_no } } else - { - fprintf(stderr, - "[TrackObject] Sound emitter object could not be created\n"); - } + Log::error("TrackObject", "Sound emitter object could not be created."); if (trigger_when_near) { @@ -753,9 +750,7 @@ TrackObjectPresentationActionTrigger::TrackObjectPresentationActionTrigger(const m_action_active = true; if (m_action.size() == 0) - { - fprintf(stderr, "[TrackObject] WARNING: action-trigger has no action defined\n"); - } + Log::warn("TrackObject", "Action-trigger has no action defined."); ItemManager::get()->newItem(m_init_xyz, trigger_distance, this); } @@ -891,10 +886,7 @@ void TrackObjectPresentationActionTrigger::onTriggerItemApproached(Item* who) return; } else - { - fprintf(stderr, "[TrackObject] WARNING: unknown action <%s>\n", - m_action.c_str()); - } + Log::warn("TrackObject", "Unknown action '%s'", m_action.c_str()); } diff --git a/src/utils/string_utils.cpp b/src/utils/string_utils.cpp index a096f88c5..091440a0c 100644 --- a/src/utils/string_utils.cpp +++ b/src/utils/string_utils.cpp @@ -520,7 +520,7 @@ namespace StringUtils // which admittedly only works for min < 100000 - which is about 68 // days - good enough. char s[12]; - sprintf ( s, "%02d:%02d:%02d", min, sec, hundredths) ; + sprintf(s, "%02d:%02d:%02d", min, sec, hundredths); return std::string(s); } // timeToString @@ -738,8 +738,8 @@ namespace StringUtils + 10*very_minor + release_candidate; - if(version<=0) - printf("Invalid version string '%s'.\n", s.c_str()); + if(version <= 0) + Log::error("StringUtils", "Invalid version string '%s'.", s.c_str()); return version; } // versionToInt