1 #pragma once 2 3 //******************************************************************************************** 4 //* 5 //* This file is part of Egoboo. 6 //* 7 //* Egoboo is free software: you can redistribute it and/or modify it 8 //* under the terms of the GNU General Public License as published by 9 //* the Free Software Foundation, either version 3 of the License, or 10 //* (at your option) any later version. 11 //* 12 //* Egoboo is distributed in the hope that it will be useful, but 13 //* WITHOUT ANY WARRANTY; without even the implied warranty of 14 //* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 //* General Public License for more details. 16 //* 17 //* You should have received a copy of the GNU General Public License 18 //* along with Egoboo. If not, see <http://www.gnu.org/licenses/>. 19 //* 20 //******************************************************************************************** 21 22 /// @file egoboo_config.h 23 /// @brief System-dependent global parameters. 24 /// @todo some of this stuff is compiler dependent, rather than system dependent. 25 26 //-------------------------------------------------------------------------------------------- 27 //-------------------------------------------------------------------------------------------- 28 // compliation flags 29 30 // object pre-allocations 31 #define MAX_CHR 512 ///< Maximum number of characters 32 #define MAX_ENC 200 ///< Maximum number of enchantments 33 #define MAX_PRT 2048 ///< Maximum number of particles 34 #define TOTAL_MAX_DYNA 64 ///< Maximum number of dynamic lights 35 36 #define MAX_TEXTURE (MAX_CHR * 4) ///< Maximum number of textures 37 #define MAX_ICON (MAX_TEXTURE + 4) ///< Maximum number of icons 38 39 #define MAX_SKIN 4 ///< The maxumum number of skins per model. This must remain hard coded at 4 for the moment. 40 41 /// profile pre-allocations 42 #define MAX_PROFILE 256 ///< Maximum number of object profiles 43 #define MAX_AI MAX_PROFILE ///< Maximum number of scripts 44 45 /// per-object pre-allocations 46 #define MAX_WAVE 30 ///< Maximum number of *.wav/*.ogg per object 47 #define MAX_PIP_PER_PROFILE 13 ///< Maximum number of part*.txt per object 48 #define MAX_PIP (MAX_PROFILE * MAX_PIP_PER_PROFILE) 49 50 // Some macro switches 51 #undef OLD_CAMERA_MODE ///< Use the old camera style 52 #undef ENABLE_BODY_GRAB ///< Enable the grabbing of bodies? 53 #undef TEST_NAN_RESULT ///< Test the result of certain math operations 54 55 #undef USE_LUA_CONSOLE ///< LUA support for the console 56 57 #undef RENDER_HMAP ///< render the mesh's heightmap? 58 #undef DEBUG_MESH_NORMALS ///< render the mesh normals 59 #define LOG_TO_CONSOLE ///< dump all log info to file and to the console. Only useful if your compiler generates console for program output. Otherwise the results will end up in a file called stdout.txt 60 61 #define DEBUG_BSP ///< Print debugging info about the BSP/octree state 62 63 #define DEBUG_RENDERLIST ///< Print debugging info for the currently rendered mesh 64 65 #undef DEBUG_PROFILE ///< Switch the profiling functions on and off 66 #undef DEBUG_PROFILE_DISPLAY ///< Display the results for the performance profiling 67 #undef DEBUG_PROFILE_RENDER ///< Display the results for the performance profiling of the generric rendering 68 #undef DEBUG_PROFILE_MESH ///< Display the results for the performance profiling of the mesh rendering sub-system 69 #undef DEBUG_PROFILE_INIT ///< Display the results for the performance profiling of the rendering initialization 70 71 #undef DEBUG_OBJECT_SPAWN ///< Log debug info for every object spawned 72 73 #undef DEBUG_PRT_LIST ///< Track every single deletion from the PrtList to make sure the same element is not deleted twice. Prevents corruption of the PrtList.free_lst 74 #undef DEBUG_ENC_LIST ///< Track every single deletion from the EncList to make sure the same element is not deleted twice. Prevents corruption of the EncList.free_lst 75 #undef DEBUG_CHR_LIST ///< Track every single deletion from the ChrList to make sure the same element is not deleted twice. Prevents corruption of the ChrList.free_lst 76 77 #define CLIP_LIGHT_FANS ///< is the light_fans() function going to be throttled? 78 #undef CLIP_ALL_LIGHT_FANS ///< a switch for selecting how the fans will be updated 79 80 #undef DEBUG_WAYPOINTS ///< display error messages when adding waypoints. It will also prevent "unsafe" waypoint being added to the waypoint list. 81 82 /// How much script debugging. 83 /// 0 -- debugging off ( requires defined(_DEBUG) ) 84 /// >= 1 -- Log the amount of script time that every object uses (requires defined(_DEBUG) and DEBUG_PROFILE) 85 /// >= 2 -- Log the amount of time that every single script command uses (requires defined(_DEBUG) and DEBUG_PROFILE) 86 /// >= 3 -- decompile every script (requires defined(_DEBUG)) 87 #define DEBUG_SCRIPT_LEVEL 0 88 89 //#undef DRAW_CHR_BBOX ///< display selected character bounding boxes 90 #define DRAW_PRT_BBOX ///< display selected particle bounding boxes 91 92 //-------------------------------------------------------------------------------------------- 93 //-------------------------------------------------------------------------------------------- 94 // do the includes last so that the compile switches are always set 95 #include "egoboo_platform.h" 96 #include "egoboo_endian.h" 97 98 #define EGOBOO_CONFIG_H 99