tfs build options:
g++ actions.cpp
g++ allocator.cpp
CXXFLAGS = -std=c++03 -Os -fomit-frame-pointer -Wall -Wextra -Wno-strict-aliasing -Wno-unused-parameter -Wno-array-bounds -pipe -I/usr/include/libxml2 -I/usr/include/lua5.1 -I. -DHAVE_CONFIG_H -D__USE_MYSQL__ -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D_THREAD_SAFE -D_REENTRANT
g++ admin.cpp
LDFLAGS = -s -llua5.1 -lmariadbclient -lcrypto -lboost_filesystem -lboost_date_time -lboost_system -lboost_regex -lboost_thread -lz -lgmp -lxml2 -pthread
CC = g++
g++ baseevents.cpp
g++ beds.cpp
g++ chat.cpp
g++ combat.cpp
g++ condition.cpp
g++ configmanager.cpp
g++ connection.cpp
g++ container.cpp
g++ creature.cpp
g++ creatureevent.cpp
g++ cylinder.cpp
g++ database.cpp
g++ databasemanager.cpp
g++ databasemysql.cpp
g++ databasesqlite.cpp
g++ depot.cpp
g++ dispatcher.cpp
g++ exception.cpp
g++ fileloader.cpp
g++ game.cpp
g++ gameservers.cpp
g++ globalevent.cpp
g++ group.cpp
g++ house.cpp
game.cpp: In constructor ‘Game::Game()’:
game.cpp:80:24: warning: iteration 2 invokes undefined behavior [-Waggressive-loop-optimizations]
globalSaveMessage[i] = false;
~~~~~~~~~~~~~~~~~~~~~^~~~~~~
game.cpp:79:23: note: within this loop
for(int16_t i = 0; i < 3; i++)
~~^~~
In file included from game.cpp:18:0:
game.h: In member function ‘void Game::globalSave()’:
game.h:616:78: warning: iteration 2 invokes undefined behavior [-Waggressive-loop-optimizations]
void setGlobalSaveMessage(int16_t key, bool value) {globalSaveMessage[key] = value;}
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
game.cpp:6340:23: note: within this loop
for(int16_t i = 0; i < 3; i++)
~~^~~
g++ housetile.cpp
g++ ioban.cpp
g++ ioguild.cpp
g++ iologindata.cpp
g++ iomap.cpp
g++ iomapserialize.cpp
g++ itemattributes.cpp
g++ item.cpp
g++ items.cpp
g++ luascript.cpp
g++ mailbox.cpp
g++ manager.cpp
g++ map.cpp
g++ monster.cpp
monster.cpp: In member function ‘bool Monster::isFriend(const Creature*)’:
monster.cpp:315:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if(creature->getPlayer() && !targetPlayers)
^~
monster.cpp:318:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
if(!isSummon() || !master->getPlayer())
^~
monster.cpp: In member function ‘bool Monster::isOpponent(const Creature*)’:
monster.cpp:338:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if(creature->getPlayer() && !targetPlayers)
^~
monster.cpp:341:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
return (isSummon() && master->getPlayer() && creature != master) || ((creature->getPlayer()
^~~~~~
g++ monsters.cpp
g++ movement.cpp
g++ networkmessage.cpp
g++ npc.cpp
g++ otserv.cpp
g++ outfit.cpp
g++ outputmessage.cpp
g++ party.cpp
g++ player.cpp
g++ position.cpp
g++ protocol.cpp
g++ protocolgame.cpp
g++ protocolhttp.cpp
protocolgame.cpp: In member function ‘void ProtocolGame::AddCreatureSpeak(NetworkMessage_ptr, const Creature*, SpeakClasses, std::__cxx11::string, uint16_t, uint32_t, Position*, ProtocolGame*)’:
protocolgame.cpp:2971:137: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
if((speaker && (type != SPEAK_RVR_ANSWER ) && (!speaker->isAccountManager()) && (!speaker->hasCustomFlag(PlayerCustomFlag_HideLevel)) && ((pg == NULL)) || ((pg != NULL) && (!pg->getIsCast()))))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
g++ protocollogin.cpp
g++ protocolold.cpp
g++ quests.cpp
g++ raids.cpp
g++ rsa.cpp
g++ scheduler.cpp
g++ scriptmanager.cpp
g++ server.cpp
g++ spawn.cpp
g++ spells.cpp
g++ status.cpp
g++ talkaction.cpp
g++ teleport.cpp
g++ textlogger.cpp
g++ thing.cpp
g++ tile.cpp
g++ tools.cpp
g++ trashholder.cpp
g++ vocation.cpp
g++ waitlist.cpp
g++ weapons.cpp
CC -o tfs