From 31f744b5f9dc5cfad6161a6a5ff272f0d531dffd Mon Sep 17 00:00:00 2001 From: Lemongrass3110 Date: Tue, 10 Feb 2026 00:37:58 +0100 Subject: [PATCH] Unity or amalgamated build for skills (#9797) --- .github/workflows/analysis_codeql.yml | 3 +- src/map/CMakeLists.txt | 2 + src/map/Makefile.in | 4 +- src/map/map-server-generator.vcxproj | 1712 ++++++++++++----- src/map/map-server-generator.vcxproj.filters | 12 - src/map/map-server.vcxproj | 1712 ++++++++++++----- src/map/map-server.vcxproj.filters | 12 - src/map/skill.cpp | 5 +- src/map/skills/acolyte/blazingflameblast.hpp | 2 +- src/map/skills/acolyte/duplelight.hpp | 1 - src/map/skills/acolyte/effligo.hpp | 2 +- src/map/skills/acolyte/holywater.hpp | 4 +- src/map/skills/acolyte/impositiomanus.hpp | 1 - src/map/skills/acolyte/incagi.hpp | 4 +- src/map/skills/acolyte/medialevotum.hpp | 2 +- src/map/skills/acolyte/renovatio.hpp | 2 +- .../skills/acolyte/skill_factory_acolyte.cpp | 129 +- src/map/skills/acolyte/suffragium.hpp | 1 - src/map/skills/acolyte/vituperatum.hpp | 2 +- src/map/skills/archer/aimedbolt.hpp | 2 +- src/map/skills/archer/chargearrow.hpp | 2 +- src/map/skills/archer/crescivebolt.hpp | 2 +- src/map/skills/archer/doublestrafe.hpp | 2 +- src/map/skills/archer/fearbreeze.hpp | 2 +- src/map/skills/archer/hawkboomerang.hpp | 2 +- src/map/skills/archer/hawkrush.hpp | 2 +- src/map/skills/archer/phantasmicarrow.hpp | 2 +- src/map/skills/archer/sensitivekeen.hpp | 2 +- .../skills/archer/skill_factory_archer.cpp | 111 +- src/map/skills/archer/wargbite.hpp | 2 +- src/map/skills/archer/wargstrike.hpp | 2 +- src/map/skills/archer/wildwalk.hpp | 2 +- src/map/skills/gunslinger/bullseye.hpp | 2 +- src/map/skills/gunslinger/disarm.hpp | 2 +- src/map/skills/gunslinger/dust.hpp | 2 +- src/map/skills/gunslinger/fullbuster.hpp | 2 +- src/map/skills/gunslinger/piercingshot.hpp | 2 +- src/map/skills/gunslinger/rapidshower.hpp | 2 +- .../gunslinger/skill_factory_gunslinger.cpp | 35 +- src/map/skills/gunslinger/spreadattack.hpp | 2 +- src/map/skills/gunslinger/tracking.hpp | 2 +- src/map/skills/gunslinger/tripleaction.hpp | 2 +- src/map/skills/mage/energycoat.hpp | 2 +- src/map/skills/mage/skill_factory_mage.cpp | 137 +- src/map/skills/mercenary/mercenary_bash.hpp | 2 +- .../mercenary/skill_factory_mercenary.cpp | 7 +- src/map/skills/merchant/aciddemonstration.hpp | 2 +- src/map/skills/merchant/acidterror.hpp | 2 +- src/map/skills/merchant/carttermination.hpp | 2 +- src/map/skills/merchant/crazyuproar.hpp | 2 +- src/map/skills/merchant/mammonite.hpp | 2 +- .../merchant/skill_factory_merchant.cpp | 105 +- src/map/skills/merchant/triplelaser.hpp | 2 +- src/map/skills/ninja/skill_factory_ninja.cpp | 3 +- src/map/skills/novice/helpangel.hpp | 2 +- src/map/skills/novice/megasonicblow.hpp | 2 +- src/map/skills/novice/overcomingcrisis.hpp | 2 +- src/map/skills/novice/shieldchainrush.hpp | 2 +- .../skills/novice/skill_factory_novice.cpp | 28 +- src/map/skills/novice/spiralpiercemax.hpp | 2 +- src/map/skills/npc/skill_factory_npc.cpp | 3 +- src/map/skills/skill_factory.cpp | 31 +- src/map/skills/skill_impl.cpp | 34 +- src/map/skills/skill_impl.hpp | 18 + src/map/skills/status_skill_impl.cpp | 31 - src/map/skills/status_skill_impl.hpp | 17 - .../summoner/skill_factory_summoner.cpp | 2 +- src/map/skills/swordman/bash.hpp | 2 +- src/map/skills/swordman/dragonicaura.hpp | 2 +- src/map/skills/swordman/dragonicpierce.hpp | 2 +- src/map/skills/swordman/holycross.hpp | 2 +- src/map/skills/swordman/imperialcross.hpp | 2 +- src/map/skills/swordman/pierce.hpp | 2 +- src/map/skills/swordman/shieldboomerang.hpp | 2 +- src/map/skills/swordman/shieldreflect.hpp | 2 +- .../swordman/skill_factory_swordman.cpp | 89 +- src/map/skills/swordman/smite.hpp | 2 +- src/map/skills/swordman/spearboomerang.hpp | 2 +- src/map/skills/swordman/spiralpierce.hpp | 2 +- src/map/skills/swordman/stormslash.hpp | 2 +- src/map/skills/swordman/traumaticblow.hpp | 2 +- src/map/skills/taekwon/counter.hpp | 2 +- src/map/skills/taekwon/downkick.hpp | 2 +- src/map/skills/taekwon/eska.hpp | 2 +- src/map/skills/taekwon/eske.hpp | 2 +- src/map/skills/taekwon/eswoo.hpp | 2 +- src/map/skills/taekwon/kaahi.hpp | 2 +- src/map/skills/taekwon/kaite.hpp | 2 +- src/map/skills/taekwon/kaizel.hpp | 2 +- src/map/skills/taekwon/kaupe.hpp | 2 +- .../skills/taekwon/skill_factory_taekwon.cpp | 115 +- src/map/skills/thief/counterinstinct.hpp | 2 +- src/map/skills/thief/crossimpact.hpp | 2 +- src/map/skills/thief/crossripperslasher.hpp | 2 +- src/map/skills/thief/darkclaw.hpp | 2 +- src/map/skills/thief/darkillusion.hpp | 2 +- src/map/skills/thief/enchantdeadlypoison.hpp | 2 +- src/map/skills/thief/envenom.hpp | 2 +- src/map/skills/thief/eternalslash.hpp | 2 +- src/map/skills/thief/hallucinationwalk.hpp | 2 +- src/map/skills/thief/phantommenace.hpp | 2 +- src/map/skills/thief/sandattack.hpp | 2 +- src/map/skills/thief/shadowstab.hpp | 2 +- src/map/skills/thief/skill_factory_thief.cpp | 116 +- src/map/skills/thief/snatch.hpp | 2 +- src/map/skills/thief/sonicblow.hpp | 2 +- src/map/skills/thief/souldestroyer.hpp | 2 +- src/map/skills/thief/throwvenomknife.hpp | 2 +- src/map/skills/thief/venompressure.hpp | 2 +- src/map/skills/thief/weaponcrush.hpp | 2 +- src/map/skills/weapon_skill_impl.cpp | 11 - src/map/skills/weapon_skill_impl.hpp | 13 - tools/ci/codeql_config.yml | 9 + 113 files changed, 3178 insertions(+), 1497 deletions(-) delete mode 100644 src/map/skills/status_skill_impl.cpp delete mode 100644 src/map/skills/status_skill_impl.hpp delete mode 100644 src/map/skills/weapon_skill_impl.cpp delete mode 100644 src/map/skills/weapon_skill_impl.hpp create mode 100644 tools/ci/codeql_config.yml diff --git a/.github/workflows/analysis_codeql.yml b/.github/workflows/analysis_codeql.yml index d54c038149..76d2fc8268 100644 --- a/.github/workflows/analysis_codeql.yml +++ b/.github/workflows/analysis_codeql.yml @@ -47,8 +47,7 @@ jobs: # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support languages: cpp - # Trigger security and quality findings - queries: +security-and-quality + config-file: tools/ci/codeql_config.yml # A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler. - name: Variable Parsing - PRE diff --git a/src/map/CMakeLists.txt b/src/map/CMakeLists.txt index 30d44718f7..5b0904a8b8 100644 --- a/src/map/CMakeLists.txt +++ b/src/map/CMakeLists.txt @@ -10,7 +10,9 @@ set( MAP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "" ) if( BUILD_SERVERS ) message( STATUS "Creating target map-server" ) file(GLOB_RECURSE MAP_HEADERS ${MAP_SOURCE_DIR}/*.hpp) +list(FILTER MAP_HEADERS EXCLUDE REGEX ".*/skills/.*") file(GLOB_RECURSE MAP_SOURCES ${MAP_SOURCE_DIR}/*.cpp) +list(FILTER MAP_SOURCES EXCLUDE REGEX ".*/skills/.*") set( DEPENDENCIES common ryml) set( LIBRARIES ${GLOBAL_LIBRARIES} ${MYSQL_LIBRARIES} ) set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${COMMON_BASE_INCLUDE_DIRS} ${RA_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIRS} ) diff --git a/src/map/Makefile.in b/src/map/Makefile.in index deca649392..41b684316d 100644 --- a/src/map/Makefile.in +++ b/src/map/Makefile.in @@ -25,7 +25,9 @@ MAP_H = $(shell find ../ -type f -name "*.hpp") \ $(shell ls ../config/*.hpp) \ ../custom/battle_config_struct.inc -MAP_OBJ = $(shell find . -type f -name "*.cpp" | sed -e "s/\.cpp/\.o/g" -e "s/^\.\///") +MAP_OBJ = $(shell find . -type f -name "*.cpp" \ + -not -path "./skills/*" \ + | sed -e "s/\.cpp/\.o/g" -e "s/^\.\///") #MAP_OBJ += $(shell ls *.c | sed -e "s/\.c/\.o/g") MAP_DIR_OBJ = $(MAP_OBJ:%=obj/%) MAP_GEN_DIR_OBJ = $(MAP_OBJ:%=obj-gen/%) diff --git a/src/map/map-server-generator.vcxproj b/src/map/map-server-generator.vcxproj index e248a4fe8e..90ada001b0 100644 --- a/src/map/map-server-generator.vcxproj +++ b/src/map/map-server-generator.vcxproj @@ -512,7 +512,6 @@ - @@ -669,7 +668,6 @@ - @@ -718,435 +716,1287 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + diff --git a/src/map/map-server-generator.vcxproj.filters b/src/map/map-server-generator.vcxproj.filters index 4dbcb48773..a2f13a6b85 100644 --- a/src/map/map-server-generator.vcxproj.filters +++ b/src/map/map-server-generator.vcxproj.filters @@ -1185,9 +1185,6 @@ Header Files\Skills - - Header Files\Skills - Header Files\Skills\Summoner @@ -1656,9 +1653,6 @@ Header Files\Skills\Thief - - Header Files\Skills - @@ -2474,9 +2468,6 @@ Source Files\Skills - - Source Files\Skills - Source Files\Skills\Summoner @@ -2945,8 +2936,5 @@ Source Files\Skills\Thief - - Source Files\Skills - diff --git a/src/map/map-server.vcxproj b/src/map/map-server.vcxproj index 475192a7a8..71414fe201 100644 --- a/src/map/map-server.vcxproj +++ b/src/map/map-server.vcxproj @@ -512,7 +512,6 @@ - @@ -669,7 +668,6 @@ - @@ -718,435 +716,1287 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + diff --git a/src/map/map-server.vcxproj.filters b/src/map/map-server.vcxproj.filters index 4dbcb48773..a2f13a6b85 100644 --- a/src/map/map-server.vcxproj.filters +++ b/src/map/map-server.vcxproj.filters @@ -1185,9 +1185,6 @@ Header Files\Skills - - Header Files\Skills - Header Files\Skills\Summoner @@ -1656,9 +1653,6 @@ Header Files\Skills\Thief - - Header Files\Skills - @@ -2474,9 +2468,6 @@ Source Files\Skills - - Source Files\Skills - Source Files\Skills\Summoner @@ -2945,8 +2936,5 @@ Source Files\Skills\Thief - - Source Files\Skills - diff --git a/src/map/skill.cpp b/src/map/skill.cpp index c48cad01f0..2eb92ee365 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -45,7 +45,10 @@ #include "script.hpp" #include "status.hpp" #include "unit.hpp" -#include "./skills/skill_factory.hpp" + +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "skills/skill_factory.cpp" using namespace rathena; diff --git a/src/map/skills/acolyte/blazingflameblast.hpp b/src/map/skills/acolyte/blazingflameblast.hpp index 08bf10c7dd..8c9be18714 100644 --- a/src/map/skills/acolyte/blazingflameblast.hpp +++ b/src/map/skills/acolyte/blazingflameblast.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillBlazingFlameBlast : public WeaponSkillImpl { public: diff --git a/src/map/skills/acolyte/duplelight.hpp b/src/map/skills/acolyte/duplelight.hpp index fa2a83e784..a4671a71da 100644 --- a/src/map/skills/acolyte/duplelight.hpp +++ b/src/map/skills/acolyte/duplelight.hpp @@ -4,7 +4,6 @@ #pragma once #include "../skill_impl.hpp" -#include "../weapon_skill_impl.hpp" // AB_DUPLELIGHT_MAGIC class SkillDupleLightMagic : public SkillImpl { diff --git a/src/map/skills/acolyte/effligo.hpp b/src/map/skills/acolyte/effligo.hpp index c94c4fbda0..9bd6458d9c 100644 --- a/src/map/skills/acolyte/effligo.hpp +++ b/src/map/skills/acolyte/effligo.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillEffligo : public WeaponSkillImpl { public: diff --git a/src/map/skills/acolyte/holywater.hpp b/src/map/skills/acolyte/holywater.hpp index 7a9c3e3810..f518255637 100644 --- a/src/map/skills/acolyte/holywater.hpp +++ b/src/map/skills/acolyte/holywater.hpp @@ -1,5 +1,7 @@ // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder#pragma once +// For more information, see LICENCE in the main folder + +#pragma once #include "../skill_impl.hpp" diff --git a/src/map/skills/acolyte/impositiomanus.hpp b/src/map/skills/acolyte/impositiomanus.hpp index abfd469f16..e6b4df37e4 100644 --- a/src/map/skills/acolyte/impositiomanus.hpp +++ b/src/map/skills/acolyte/impositiomanus.hpp @@ -6,7 +6,6 @@ #include #include "../skill_impl.hpp" -#include "../status_skill_impl.hpp" #ifdef RENEWAL class SkillImpositioManus : public SkillImpl { diff --git a/src/map/skills/acolyte/incagi.hpp b/src/map/skills/acolyte/incagi.hpp index f727e259af..4cc9094e30 100644 --- a/src/map/skills/acolyte/incagi.hpp +++ b/src/map/skills/acolyte/incagi.hpp @@ -1,5 +1,7 @@ // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder#pragma once +// For more information, see LICENCE in the main folder + +#pragma once #include "../skill_impl.hpp" diff --git a/src/map/skills/acolyte/medialevotum.hpp b/src/map/skills/acolyte/medialevotum.hpp index 8a80427714..80ef519e44 100644 --- a/src/map/skills/acolyte/medialevotum.hpp +++ b/src/map/skills/acolyte/medialevotum.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillMedialeVotum : public StatusSkillImpl { public: diff --git a/src/map/skills/acolyte/renovatio.hpp b/src/map/skills/acolyte/renovatio.hpp index 4cab1c1494..85c39015cf 100644 --- a/src/map/skills/acolyte/renovatio.hpp +++ b/src/map/skills/acolyte/renovatio.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillRenovatio : public StatusSkillImpl { public: diff --git a/src/map/skills/acolyte/skill_factory_acolyte.cpp b/src/map/skills/acolyte/skill_factory_acolyte.cpp index 9d8f3167b8..1893349b39 100644 --- a/src/map/skills/acolyte/skill_factory_acolyte.cpp +++ b/src/map/skills/acolyte/skill_factory_acolyte.cpp @@ -5,71 +5,72 @@ #include -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "adoramus.hpp" -#include "ancilla.hpp" -#include "angelus.hpp" -#include "arbitrium.hpp" -#include "aspersio.hpp" -#include "blazingflameblast.hpp" -#include "blessing.hpp" -#include "bssacramenti.hpp" -#include "cantocandidus.hpp" -#include "clearance.hpp" -#include "coluceoheal.hpp" -#include "competentia.hpp" -#include "convenio.hpp" -#include "crementia.hpp" -#include "crucis.hpp" -#include "cure.hpp" -#include "decagi.hpp" -#include "dilectioheal.hpp" -#include "divinusflos.hpp" -#include "duplelight.hpp" -#include "effligo.hpp" -#include "epiclesis.hpp" -#include "explosionblaster.hpp" -#include "firstbrand.hpp" -#include "framen.hpp" -#include "gloria.hpp" -#include "heal.hpp" -#include "highnessheal.hpp" -#include "holylight.hpp" -#include "holywater.hpp" -#include "impositiomanus.hpp" -#include "incagi.hpp" -#include "judex.hpp" -#include "kyrieeleison.hpp" -#include "laudaagnus.hpp" -#include "laudaramus.hpp" -#include "lexdivina.hpp" -#include "magnificat.hpp" -#include "magnusexorcismus.hpp" -#include "massiveflameblaster.hpp" -#include "medialevotum.hpp" -#include "oleumsanctum.hpp" -#include "oratio.hpp" -#include "petitio.hpp" -#include "pneuma.hpp" -#include "pneumaticusprocella.hpp" -#include "praefatio.hpp" -#include "renovatio.hpp" -#include "reparatio.hpp" -#include "ruwach.hpp" -#include "sanctuary.hpp" -#include "secondfaith.hpp" -#include "secondflame.hpp" -#include "secondjudgement.hpp" -#include "silentium.hpp" -#include "statusrecovery.hpp" -#include "suffragium.hpp" -#include "thirdconsecration.hpp" -#include "thirdflamebomb.hpp" -#include "thirdpunish.hpp" -#include "turnundead.hpp" -#include "vituperatum.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "adoramus.cpp" +#include "ancilla.cpp" +#include "angelus.cpp" +#include "arbitrium.cpp" +#include "aspersio.cpp" +#include "blazingflameblast.cpp" +#include "blessing.cpp" +#include "bssacramenti.cpp" +#include "cantocandidus.cpp" +#include "clearance.cpp" +#include "coluceoheal.cpp" +#include "competentia.cpp" +#include "convenio.cpp" +#include "crementia.cpp" +#include "crucis.cpp" +#include "cure.cpp" +#include "decagi.cpp" +#include "dilectioheal.cpp" +#include "divinusflos.cpp" +#include "duplelight.cpp" +#include "effligo.cpp" +#include "epiclesis.cpp" +#include "explosionblaster.cpp" +#include "firstbrand.cpp" +#include "framen.cpp" +#include "gloria.cpp" +#include "heal.cpp" +#include "highnessheal.cpp" +#include "holylight.cpp" +#include "holywater.cpp" +#include "impositiomanus.cpp" +#include "incagi.cpp" +#include "judex.cpp" +#include "kyrieeleison.cpp" +#include "laudaagnus.cpp" +#include "laudaramus.cpp" +#include "lexdivina.cpp" +#include "magnificat.cpp" +#include "magnusexorcismus.cpp" +#include "massiveflameblaster.cpp" +#include "medialevotum.cpp" +#include "oleumsanctum.cpp" +#include "oratio.cpp" +#include "petitio.cpp" +#include "pneuma.cpp" +#include "pneumaticusprocella.cpp" +#include "praefatio.cpp" +#include "renovatio.cpp" +#include "reparatio.cpp" +#include "ruwach.cpp" +#include "sanctuary.cpp" +#include "secondfaith.cpp" +#include "secondflame.cpp" +#include "secondjudgement.cpp" +#include "silentium.cpp" +#include "statusrecovery.cpp" +#include "suffragium.cpp" +#include "thirdconsecration.cpp" +#include "thirdflamebomb.cpp" +#include "thirdpunish.cpp" +#include "turnundead.cpp" +#include "vituperatum.cpp" std::unique_ptr SkillFactoryAcolyte::create(const e_skill skill_id) const { switch( skill_id ){ diff --git a/src/map/skills/acolyte/suffragium.hpp b/src/map/skills/acolyte/suffragium.hpp index 7d537a4b33..127fe4b0bd 100644 --- a/src/map/skills/acolyte/suffragium.hpp +++ b/src/map/skills/acolyte/suffragium.hpp @@ -6,7 +6,6 @@ #include #include "../skill_impl.hpp" -#include "../status_skill_impl.hpp" #ifdef RENEWAL class SkillSuffragium : public SkillImpl { diff --git a/src/map/skills/acolyte/vituperatum.hpp b/src/map/skills/acolyte/vituperatum.hpp index 46c54fca44..9e724adfe0 100644 --- a/src/map/skills/acolyte/vituperatum.hpp +++ b/src/map/skills/acolyte/vituperatum.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillVituperatum : public StatusSkillImpl { public: diff --git a/src/map/skills/archer/aimedbolt.hpp b/src/map/skills/archer/aimedbolt.hpp index 9e0a2c4aef..3551e9d016 100644 --- a/src/map/skills/archer/aimedbolt.hpp +++ b/src/map/skills/archer/aimedbolt.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillAimedBolt : public WeaponSkillImpl { public: diff --git a/src/map/skills/archer/chargearrow.hpp b/src/map/skills/archer/chargearrow.hpp index 31cdd185fc..827d83d593 100644 --- a/src/map/skills/archer/chargearrow.hpp +++ b/src/map/skills/archer/chargearrow.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "../../battle.hpp" diff --git a/src/map/skills/archer/crescivebolt.hpp b/src/map/skills/archer/crescivebolt.hpp index 2e6f9f5163..468a877a6b 100644 --- a/src/map/skills/archer/crescivebolt.hpp +++ b/src/map/skills/archer/crescivebolt.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillCresciveBolt : public WeaponSkillImpl { public: diff --git a/src/map/skills/archer/doublestrafe.hpp b/src/map/skills/archer/doublestrafe.hpp index dedd0cd1eb..de82e45b68 100644 --- a/src/map/skills/archer/doublestrafe.hpp +++ b/src/map/skills/archer/doublestrafe.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "../../battle.hpp" class SkillDoubleStrafe : public WeaponSkillImpl diff --git a/src/map/skills/archer/fearbreeze.hpp b/src/map/skills/archer/fearbreeze.hpp index 4ccdb79fc6..82293bf879 100644 --- a/src/map/skills/archer/fearbreeze.hpp +++ b/src/map/skills/archer/fearbreeze.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillFearBreeze : public StatusSkillImpl { public: diff --git a/src/map/skills/archer/hawkboomerang.hpp b/src/map/skills/archer/hawkboomerang.hpp index f063b165d9..de4a398eea 100644 --- a/src/map/skills/archer/hawkboomerang.hpp +++ b/src/map/skills/archer/hawkboomerang.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillHawkBoomerang : public WeaponSkillImpl { public: diff --git a/src/map/skills/archer/hawkrush.hpp b/src/map/skills/archer/hawkrush.hpp index 2a0e223264..ad1b0cc685 100644 --- a/src/map/skills/archer/hawkrush.hpp +++ b/src/map/skills/archer/hawkrush.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillHawkRush : public WeaponSkillImpl { public: diff --git a/src/map/skills/archer/phantasmicarrow.hpp b/src/map/skills/archer/phantasmicarrow.hpp index 9a7bbe61b0..5a7ec1c5b3 100644 --- a/src/map/skills/archer/phantasmicarrow.hpp +++ b/src/map/skills/archer/phantasmicarrow.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillPhantasmicArrow : public WeaponSkillImpl { public: diff --git a/src/map/skills/archer/sensitivekeen.hpp b/src/map/skills/archer/sensitivekeen.hpp index c32bb8346e..683ee5d21d 100644 --- a/src/map/skills/archer/sensitivekeen.hpp +++ b/src/map/skills/archer/sensitivekeen.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSensitiveKeen : public WeaponSkillImpl { public: diff --git a/src/map/skills/archer/skill_factory_archer.cpp b/src/map/skills/archer/skill_factory_archer.cpp index 3ab9fbebc2..e94ec15355 100644 --- a/src/map/skills/archer/skill_factory_archer.cpp +++ b/src/map/skills/archer/skill_factory_archer.cpp @@ -3,62 +3,63 @@ #include "skill_factory_archer.hpp" -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "aimedbolt.hpp" -#include "anklesnare.hpp" -#include "arrowshower.hpp" -#include "arrowstorm.hpp" -#include "beaststrafing.hpp" -#include "blastmine.hpp" -#include "blitzbeat.hpp" -#include "camouflage.hpp" -#include "chargearrow.hpp" -#include "claymoretrap.hpp" -#include "clusterbomb.hpp" -#include "cobalttrap.hpp" -#include "concentration.hpp" -#include "crescivebolt.hpp" -#include "deepblindtrap.hpp" -#include "detect.hpp" -#include "detonator.hpp" -#include "doublestrafe.hpp" -#include "electricshocker.hpp" -#include "falconassault.hpp" -#include "fearbreeze.hpp" -#include "firingtrap.hpp" -#include "flametrap.hpp" -#include "flasher.hpp" -#include "focusedarrowstrike.hpp" -#include "freezingtrap.hpp" -#include "galestorm.hpp" -#include "hawkboomerang.hpp" -#include "hawkmastery.hpp" -#include "hawkrush.hpp" -#include "iceboundtrap.hpp" -#include "landmine.hpp" -#include "magentatrap.hpp" -#include "maizetrap.hpp" -#include "makingarrow.hpp" -#include "phantasmicarrow.hpp" -#include "removetrap.hpp" -#include "sandman.hpp" -#include "sensitivekeen.hpp" -#include "shockwavetrap.hpp" -#include "skidtrap.hpp" -#include "solidtrap.hpp" -#include "springtrap.hpp" -#include "swifttrap.hpp" -#include "talkiebox.hpp" -#include "verduretrap.hpp" -#include "wargbite.hpp" -#include "wargdash.hpp" -#include "wargmastery.hpp" -#include "wargrider.hpp" -#include "wargstrike.hpp" -#include "wildwalk.hpp" -#include "windwalker.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "aimedbolt.cpp" +#include "anklesnare.cpp" +#include "arrowshower.cpp" +#include "arrowstorm.cpp" +#include "beaststrafing.cpp" +#include "blastmine.cpp" +#include "blitzbeat.cpp" +#include "camouflage.cpp" +#include "chargearrow.cpp" +#include "claymoretrap.cpp" +#include "clusterbomb.cpp" +#include "cobalttrap.cpp" +#include "concentration.cpp" +#include "crescivebolt.cpp" +#include "deepblindtrap.cpp" +#include "detect.cpp" +#include "detonator.cpp" +#include "doublestrafe.cpp" +#include "electricshocker.cpp" +#include "falconassault.cpp" +#include "fearbreeze.cpp" +#include "firingtrap.cpp" +#include "flametrap.cpp" +#include "flasher.cpp" +#include "focusedarrowstrike.cpp" +#include "freezingtrap.cpp" +#include "galestorm.cpp" +#include "hawkboomerang.cpp" +#include "hawkmastery.cpp" +#include "hawkrush.cpp" +#include "iceboundtrap.cpp" +#include "landmine.cpp" +#include "magentatrap.cpp" +#include "maizetrap.cpp" +#include "makingarrow.cpp" +#include "phantasmicarrow.cpp" +#include "removetrap.cpp" +#include "sandman.cpp" +#include "sensitivekeen.cpp" +#include "shockwavetrap.cpp" +#include "skidtrap.cpp" +#include "solidtrap.cpp" +#include "springtrap.cpp" +#include "swifttrap.cpp" +#include "talkiebox.cpp" +#include "verduretrap.cpp" +#include "wargbite.cpp" +#include "wargdash.cpp" +#include "wargmastery.cpp" +#include "wargrider.cpp" +#include "wargstrike.cpp" +#include "wildwalk.cpp" +#include "windwalker.cpp" std::unique_ptr SkillFactoryArcher::create(const e_skill skill_id) const { switch( skill_id ){ diff --git a/src/map/skills/archer/wargbite.hpp b/src/map/skills/archer/wargbite.hpp index e1b719848c..2d8661e6ec 100644 --- a/src/map/skills/archer/wargbite.hpp +++ b/src/map/skills/archer/wargbite.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillWargBite : public WeaponSkillImpl { public: diff --git a/src/map/skills/archer/wargstrike.hpp b/src/map/skills/archer/wargstrike.hpp index 1c654c2f7a..8fa1c56006 100644 --- a/src/map/skills/archer/wargstrike.hpp +++ b/src/map/skills/archer/wargstrike.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillWargStrike : public WeaponSkillImpl { public: diff --git a/src/map/skills/archer/wildwalk.hpp b/src/map/skills/archer/wildwalk.hpp index 5504577fbf..a7b06b947f 100644 --- a/src/map/skills/archer/wildwalk.hpp +++ b/src/map/skills/archer/wildwalk.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillWildWalk : public WeaponSkillImpl { public: diff --git a/src/map/skills/gunslinger/bullseye.hpp b/src/map/skills/gunslinger/bullseye.hpp index c1e29187a1..30d293bab3 100644 --- a/src/map/skills/gunslinger/bullseye.hpp +++ b/src/map/skills/gunslinger/bullseye.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/gunslinger/disarm.hpp b/src/map/skills/gunslinger/disarm.hpp index 7f9aee96cf..9964bcd729 100644 --- a/src/map/skills/gunslinger/disarm.hpp +++ b/src/map/skills/gunslinger/disarm.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/gunslinger/dust.hpp b/src/map/skills/gunslinger/dust.hpp index 826a8f7772..569d4a7742 100644 --- a/src/map/skills/gunslinger/dust.hpp +++ b/src/map/skills/gunslinger/dust.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/gunslinger/fullbuster.hpp b/src/map/skills/gunslinger/fullbuster.hpp index 572fdc194c..a65e7d5247 100644 --- a/src/map/skills/gunslinger/fullbuster.hpp +++ b/src/map/skills/gunslinger/fullbuster.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/gunslinger/piercingshot.hpp b/src/map/skills/gunslinger/piercingshot.hpp index 30d57b5808..80f5b601bd 100644 --- a/src/map/skills/gunslinger/piercingshot.hpp +++ b/src/map/skills/gunslinger/piercingshot.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/gunslinger/rapidshower.hpp b/src/map/skills/gunslinger/rapidshower.hpp index 28ddf6d07e..8045b69377 100644 --- a/src/map/skills/gunslinger/rapidshower.hpp +++ b/src/map/skills/gunslinger/rapidshower.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/gunslinger/skill_factory_gunslinger.cpp b/src/map/skills/gunslinger/skill_factory_gunslinger.cpp index 1bb0ed5d28..171e56f511 100644 --- a/src/map/skills/gunslinger/skill_factory_gunslinger.cpp +++ b/src/map/skills/gunslinger/skill_factory_gunslinger.cpp @@ -5,24 +5,25 @@ #include -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "bullseye.hpp" -#include "cracker.hpp" -#include "desperado.hpp" -#include "disarm.hpp" -#include "dust.hpp" -#include "fling.hpp" -#include "fullbuster.hpp" -#include "gatlingfever.hpp" -#include "glittering.hpp" -#include "grounddrift.hpp" -#include "piercingshot.hpp" -#include "rapidshower.hpp" -#include "spreadattack.hpp" -#include "tracking.hpp" -#include "tripleaction.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "bullseye.cpp" +#include "cracker.cpp" +#include "desperado.cpp" +#include "disarm.cpp" +#include "dust.cpp" +#include "fling.cpp" +#include "fullbuster.cpp" +#include "gatlingfever.cpp" +#include "glittering.cpp" +#include "grounddrift.cpp" +#include "piercingshot.cpp" +#include "rapidshower.cpp" +#include "spreadattack.cpp" +#include "tracking.cpp" +#include "tripleaction.cpp" std::unique_ptr SkillFactoryGunslinger::create(const e_skill skill_id) const { switch (skill_id) { diff --git a/src/map/skills/gunslinger/spreadattack.hpp b/src/map/skills/gunslinger/spreadattack.hpp index 8b40b4c744..4e1c4385dc 100644 --- a/src/map/skills/gunslinger/spreadattack.hpp +++ b/src/map/skills/gunslinger/spreadattack.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/gunslinger/tracking.hpp b/src/map/skills/gunslinger/tracking.hpp index a644fd0b19..faedab0126 100644 --- a/src/map/skills/gunslinger/tracking.hpp +++ b/src/map/skills/gunslinger/tracking.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/gunslinger/tripleaction.hpp b/src/map/skills/gunslinger/tripleaction.hpp index be0d17b66f..4f010ef3af 100644 --- a/src/map/skills/gunslinger/tripleaction.hpp +++ b/src/map/skills/gunslinger/tripleaction.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/mage/energycoat.hpp b/src/map/skills/mage/energycoat.hpp index a3a035f168..7459d2b26d 100644 --- a/src/map/skills/mage/energycoat.hpp +++ b/src/map/skills/mage/energycoat.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillEnergyCoat : public StatusSkillImpl { public: diff --git a/src/map/skills/mage/skill_factory_mage.cpp b/src/map/skills/mage/skill_factory_mage.cpp index b854825baa..fc71c2abca 100644 --- a/src/map/skills/mage/skill_factory_mage.cpp +++ b/src/map/skills/mage/skill_factory_mage.cpp @@ -3,75 +3,76 @@ #include "skill_factory_mage.hpp" -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "allbloom.hpp" -#include "astralstrike.hpp" -#include "chainlightning.hpp" -#include "coldbolt.hpp" -#include "comet.hpp" -#include "crimsonarrow.hpp" -#include "crimsonrock.hpp" -#include "crystalimpact.hpp" -#include "deadlyprojection.hpp" -#include "destructivehurricane.hpp" -#include "drainlife.hpp" -#include "earthspike.hpp" -#include "earthstrain.hpp" -#include "energycoat.hpp" -#include "energyconversion.hpp" -#include "fireball.hpp" -#include "firebolt.hpp" -#include "firepillar.hpp" -#include "firewall.hpp" -#include "floralflareroad.hpp" -#include "frostdiver.hpp" -#include "frostnova.hpp" -#include "frostymisty.hpp" -#include "frozenslash.hpp" -#include "ganbantein.hpp" -#include "gravitationfield.hpp" -#include "heavensdrive.hpp" -#include "hellinferno.hpp" -#include "icewall.hpp" -#include "jackfrost.hpp" -#include "jupitelthunder.hpp" -#include "lightningbolt.hpp" -#include "lordofvermilion.hpp" -#include "meteorstorm.hpp" -#include "mysteryillusion.hpp" -#include "napalmbeat.hpp" -#include "napalmvulcan.hpp" -#include "quagmire.hpp" -#include "rainofcrystal.hpp" -#include "readingspellbook.hpp" -#include "release.hpp" -#include "rockdown.hpp" -#include "safetywall.hpp" -#include "sense.hpp" -#include "siennaexecrate.hpp" -#include "sight.hpp" -#include "sightblaster.hpp" -#include "sightrasher.hpp" -#include "soulexpansion.hpp" -#include "soulstrike.hpp" -#include "soulvulcanstrike.hpp" -#include "stasis.hpp" -#include "stonecurse.hpp" -#include "stormcannon.hpp" -#include "stormgust.hpp" -#include "strantumtremor.hpp" -#include "summonfireball.hpp" -#include "summonlightningball.hpp" -#include "summonstone.hpp" -#include "summonwaterball.hpp" -#include "tetravortex.hpp" -#include "thunderstorm.hpp" -#include "tornadostorm.hpp" -#include "violentquake.hpp" -#include "waterball.hpp" -#include "whiteimprison.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "allbloom.cpp" +#include "astralstrike.cpp" +#include "chainlightning.cpp" +#include "coldbolt.cpp" +#include "comet.cpp" +#include "crimsonarrow.cpp" +#include "crimsonrock.cpp" +#include "crystalimpact.cpp" +#include "deadlyprojection.cpp" +#include "destructivehurricane.cpp" +#include "drainlife.cpp" +#include "earthspike.cpp" +#include "earthstrain.cpp" +#include "energycoat.cpp" +#include "energyconversion.cpp" +#include "fireball.cpp" +#include "firebolt.cpp" +#include "firepillar.cpp" +#include "firewall.cpp" +#include "floralflareroad.cpp" +#include "frostdiver.cpp" +#include "frostnova.cpp" +#include "frostymisty.cpp" +#include "frozenslash.cpp" +#include "ganbantein.cpp" +#include "gravitationfield.cpp" +#include "heavensdrive.cpp" +#include "hellinferno.cpp" +#include "icewall.cpp" +#include "jackfrost.cpp" +#include "jupitelthunder.cpp" +#include "lightningbolt.cpp" +#include "lordofvermilion.cpp" +#include "meteorstorm.cpp" +#include "mysteryillusion.cpp" +#include "napalmbeat.cpp" +#include "napalmvulcan.cpp" +#include "quagmire.cpp" +#include "rainofcrystal.cpp" +#include "readingspellbook.cpp" +#include "release.cpp" +#include "rockdown.cpp" +#include "safetywall.cpp" +#include "sense.cpp" +#include "siennaexecrate.cpp" +#include "sight.cpp" +#include "sightblaster.cpp" +#include "sightrasher.cpp" +#include "soulexpansion.cpp" +#include "soulstrike.cpp" +#include "soulvulcanstrike.cpp" +#include "stasis.cpp" +#include "stonecurse.cpp" +#include "stormcannon.cpp" +#include "stormgust.cpp" +#include "strantumtremor.cpp" +#include "summonfireball.cpp" +#include "summonlightningball.cpp" +#include "summonstone.cpp" +#include "summonwaterball.cpp" +#include "tetravortex.cpp" +#include "thunderstorm.cpp" +#include "tornadostorm.cpp" +#include "violentquake.cpp" +#include "waterball.cpp" +#include "whiteimprison.cpp" std::unique_ptr SkillFactoryMage::create(const e_skill skill_id) const { switch (skill_id) { diff --git a/src/map/skills/mercenary/mercenary_bash.hpp b/src/map/skills/mercenary/mercenary_bash.hpp index dfdd7d2f70..6938487f0a 100644 --- a/src/map/skills/mercenary/mercenary_bash.hpp +++ b/src/map/skills/mercenary/mercenary_bash.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "../../battle.hpp" diff --git a/src/map/skills/mercenary/skill_factory_mercenary.cpp b/src/map/skills/mercenary/skill_factory_mercenary.cpp index 8c58504c54..d4a797e2f6 100644 --- a/src/map/skills/mercenary/skill_factory_mercenary.cpp +++ b/src/map/skills/mercenary/skill_factory_mercenary.cpp @@ -3,10 +3,11 @@ #include "skill_factory_mercenary.hpp" -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "mercenary_bash.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "mercenary_bash.cpp" std::unique_ptr SkillFactoryMercenary::create(const e_skill skill_id) const { switch( skill_id ){ diff --git a/src/map/skills/merchant/aciddemonstration.hpp b/src/map/skills/merchant/aciddemonstration.hpp index 974d28d294..94e42c1d4d 100644 --- a/src/map/skills/merchant/aciddemonstration.hpp +++ b/src/map/skills/merchant/aciddemonstration.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillAcidDemonstration : public WeaponSkillImpl { public: diff --git a/src/map/skills/merchant/acidterror.hpp b/src/map/skills/merchant/acidterror.hpp index ebd0eed243..38d7148112 100644 --- a/src/map/skills/merchant/acidterror.hpp +++ b/src/map/skills/merchant/acidterror.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillAcidTerror : public WeaponSkillImpl { public: diff --git a/src/map/skills/merchant/carttermination.hpp b/src/map/skills/merchant/carttermination.hpp index 7a57694566..d36c8de788 100644 --- a/src/map/skills/merchant/carttermination.hpp +++ b/src/map/skills/merchant/carttermination.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillCartTermination : public WeaponSkillImpl { public: diff --git a/src/map/skills/merchant/crazyuproar.hpp b/src/map/skills/merchant/crazyuproar.hpp index c3a4c25cbc..17280729f4 100644 --- a/src/map/skills/merchant/crazyuproar.hpp +++ b/src/map/skills/merchant/crazyuproar.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillCrazyUproar : public StatusSkillImpl { public: diff --git a/src/map/skills/merchant/mammonite.hpp b/src/map/skills/merchant/mammonite.hpp index f7aab40821..d7705f2b57 100644 --- a/src/map/skills/merchant/mammonite.hpp +++ b/src/map/skills/merchant/mammonite.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "../../battle.hpp" diff --git a/src/map/skills/merchant/skill_factory_merchant.cpp b/src/map/skills/merchant/skill_factory_merchant.cpp index f653f01770..747832e9bb 100644 --- a/src/map/skills/merchant/skill_factory_merchant.cpp +++ b/src/map/skills/merchant/skill_factory_merchant.cpp @@ -5,59 +5,60 @@ #include -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "abrbattlewarior.hpp" -#include "abrdualcannon.hpp" -#include "abrinfinity.hpp" -#include "abrmothernet.hpp" -#include "aciddemonstration.hpp" -#include "acidterror.hpp" -#include "adrenalinerush.hpp" -#include "advancedadrenalinerush.hpp" -#include "aidberserkpotion.hpp" -#include "aidcondensedpotion.hpp" -#include "aidpotion.hpp" -#include "alchemicalweapon.hpp" -#include "attackmachine.hpp" -#include "axestomp.hpp" -#include "biochemicalhelm.hpp" -#include "bomb.hpp" -#include "callhomunculus.hpp" -#include "cartrevolution.hpp" -#include "carttermination.hpp" -#include "changecart.hpp" -#include "crazyuproar.hpp" -#include "decoratecart.hpp" -#include "energycannonade.hpp" -#include "fullprotection.hpp" -#include "greed.hpp" -#include "hammerfall.hpp" -#include "itemappraisal.hpp" -#include "mammonite.hpp" -#include "manufacturemachine.hpp" -#include "mightysmash.hpp" -#include "plantcultivation.hpp" -#include "powerfulswing.hpp" -#include "powerthrust.hpp" -#include "preparepotion.hpp" -#include "rushquake.hpp" -#include "rushstrike.hpp" -#include "skill_vending.hpp" -#include "sparkblaster.hpp" -#include "summonflora.hpp" -#include "summonmarinesphere.hpp" -#include "synthesizedshield.hpp" -#include "syntheticarmor.hpp" -#include "triplelaser.hpp" -#include "twilightalchemy1.hpp" -#include "twilightalchemy2.hpp" -#include "twilightalchemy3.hpp" -#include "upgradeweapon.hpp" -#include "vaporize.hpp" -#include "weaponperfection.hpp" -#include "weaponrepair.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "abrbattlewarior.cpp" +#include "abrdualcannon.cpp" +#include "abrinfinity.cpp" +#include "abrmothernet.cpp" +#include "aciddemonstration.cpp" +#include "acidterror.cpp" +#include "adrenalinerush.cpp" +#include "advancedadrenalinerush.cpp" +#include "aidberserkpotion.cpp" +#include "aidcondensedpotion.cpp" +#include "aidpotion.cpp" +#include "alchemicalweapon.cpp" +#include "attackmachine.cpp" +#include "axestomp.cpp" +#include "biochemicalhelm.cpp" +#include "bomb.cpp" +#include "callhomunculus.cpp" +#include "cartrevolution.cpp" +#include "carttermination.cpp" +#include "changecart.cpp" +#include "crazyuproar.cpp" +#include "decoratecart.cpp" +#include "energycannonade.cpp" +#include "fullprotection.cpp" +#include "greed.cpp" +#include "hammerfall.cpp" +#include "itemappraisal.cpp" +#include "mammonite.cpp" +#include "manufacturemachine.cpp" +#include "mightysmash.cpp" +#include "plantcultivation.cpp" +#include "powerfulswing.cpp" +#include "powerthrust.cpp" +#include "preparepotion.cpp" +#include "rushquake.cpp" +#include "rushstrike.cpp" +#include "skill_vending.cpp" +#include "sparkblaster.cpp" +#include "summonflora.cpp" +#include "summonmarinesphere.cpp" +#include "synthesizedshield.cpp" +#include "syntheticarmor.cpp" +#include "triplelaser.cpp" +#include "twilightalchemy1.cpp" +#include "twilightalchemy2.cpp" +#include "twilightalchemy3.cpp" +#include "upgradeweapon.cpp" +#include "vaporize.cpp" +#include "weaponperfection.cpp" +#include "weaponrepair.cpp" std::unique_ptr SkillFactoryMerchant::create(const e_skill skill_id) const { switch (skill_id) { diff --git a/src/map/skills/merchant/triplelaser.hpp b/src/map/skills/merchant/triplelaser.hpp index c3503370da..1986b631b5 100644 --- a/src/map/skills/merchant/triplelaser.hpp +++ b/src/map/skills/merchant/triplelaser.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillTripleLaser : public WeaponSkillImpl { public: diff --git a/src/map/skills/ninja/skill_factory_ninja.cpp b/src/map/skills/ninja/skill_factory_ninja.cpp index d7030878ac..45466306e2 100644 --- a/src/map/skills/ninja/skill_factory_ninja.cpp +++ b/src/map/skills/ninja/skill_factory_ninja.cpp @@ -3,8 +3,7 @@ #include "skill_factory_ninja.hpp" -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" std::unique_ptr SkillFactoryNinja::create(const e_skill skill_id) const { switch( skill_id ){ diff --git a/src/map/skills/novice/helpangel.hpp b/src/map/skills/novice/helpangel.hpp index 416de58d2e..91828c33fd 100644 --- a/src/map/skills/novice/helpangel.hpp +++ b/src/map/skills/novice/helpangel.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillHelpAngel : public StatusSkillImpl { public: diff --git a/src/map/skills/novice/megasonicblow.hpp b/src/map/skills/novice/megasonicblow.hpp index c5f0087cf9..af4c8984ba 100644 --- a/src/map/skills/novice/megasonicblow.hpp +++ b/src/map/skills/novice/megasonicblow.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillMegaSonicBlow : public WeaponSkillImpl { public: diff --git a/src/map/skills/novice/overcomingcrisis.hpp b/src/map/skills/novice/overcomingcrisis.hpp index 2691485cbf..6d51049e2f 100644 --- a/src/map/skills/novice/overcomingcrisis.hpp +++ b/src/map/skills/novice/overcomingcrisis.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillOvercomingCrisis : public StatusSkillImpl { public: diff --git a/src/map/skills/novice/shieldchainrush.hpp b/src/map/skills/novice/shieldchainrush.hpp index 68045e25c2..3d7a8160b6 100644 --- a/src/map/skills/novice/shieldchainrush.hpp +++ b/src/map/skills/novice/shieldchainrush.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillShieldChainRush : public WeaponSkillImpl { public: diff --git a/src/map/skills/novice/skill_factory_novice.cpp b/src/map/skills/novice/skill_factory_novice.cpp index 26cfc54577..1ba33b4d56 100644 --- a/src/map/skills/novice/skill_factory_novice.cpp +++ b/src/map/skills/novice/skill_factory_novice.cpp @@ -3,20 +3,22 @@ #include "skill_factory_novice.hpp" -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "doublebowlingbash.hpp" -#include "groundgravitation.hpp" -#include "hellsdrive.hpp" -#include "helpangel.hpp" -#include "jackfrostnova.hpp" -#include "jupitelthunderstorm.hpp" -#include "megasonicblow.hpp" -#include "meteorstormbuster.hpp" -#include "napalmvulcanstrike.hpp" -#include "overcomingcrisis.hpp" -#include "shieldchainrush.hpp" -#include "spiralpiercemax.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "doublebowlingbash.cpp" +#include "groundgravitation.cpp" +#include "hellsdrive.cpp" +#include "helpangel.cpp" +#include "jackfrostnova.cpp" +#include "jupitelthunderstorm.cpp" +#include "megasonicblow.cpp" +#include "meteorstormbuster.cpp" +#include "napalmvulcanstrike.cpp" +#include "overcomingcrisis.cpp" +#include "shieldchainrush.cpp" +#include "spiralpiercemax.cpp" std::unique_ptr SkillFactoryNovice::create(const e_skill skill_id) const { switch( skill_id ){ diff --git a/src/map/skills/novice/spiralpiercemax.hpp b/src/map/skills/novice/spiralpiercemax.hpp index 3f61f6ea3f..6a92d80701 100644 --- a/src/map/skills/novice/spiralpiercemax.hpp +++ b/src/map/skills/novice/spiralpiercemax.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSpiralPierceMax : public WeaponSkillImpl { public: diff --git a/src/map/skills/npc/skill_factory_npc.cpp b/src/map/skills/npc/skill_factory_npc.cpp index 8dcde88daa..62f8e76266 100644 --- a/src/map/skills/npc/skill_factory_npc.cpp +++ b/src/map/skills/npc/skill_factory_npc.cpp @@ -3,8 +3,7 @@ #include "skill_factory_npc.hpp" -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" std::unique_ptr SkillFactoryNpc::create(const e_skill skill_id) const { switch( skill_id ){ diff --git a/src/map/skills/skill_factory.cpp b/src/map/skills/skill_factory.cpp index 1fb47259fb..b6d227d1a7 100644 --- a/src/map/skills/skill_factory.cpp +++ b/src/map/skills/skill_factory.cpp @@ -6,20 +6,23 @@ #include #include -#include "./acolyte/skill_factory_acolyte.hpp" -#include "./archer/skill_factory_archer.hpp" -#include "./custom/skill_factory_custom.hpp" -#include "./gunslinger/skill_factory_gunslinger.hpp" -#include "./mage/skill_factory_mage.hpp" -#include "./mercenary/skill_factory_mercenary.hpp" -#include "./merchant/skill_factory_merchant.hpp" -#include "./npc/skill_factory_npc.hpp" -#include "./ninja/skill_factory_ninja.hpp" -#include "./novice/skill_factory_novice.hpp" -#include "./summoner/skill_factory_summoner.hpp" -#include "./swordman/skill_factory_swordman.hpp" -#include "./taekwon/skill_factory_taekwon.hpp" -#include "./thief/skill_factory_thief.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "./skill_impl.cpp" +#include "./acolyte/skill_factory_acolyte.cpp" +#include "./archer/skill_factory_archer.cpp" +#include "./custom/skill_factory_custom.cpp" +#include "./gunslinger/skill_factory_gunslinger.cpp" +#include "./mage/skill_factory_mage.cpp" +#include "./mercenary/skill_factory_mercenary.cpp" +#include "./merchant/skill_factory_merchant.cpp" +#include "./npc/skill_factory_npc.cpp" +#include "./ninja/skill_factory_ninja.cpp" +#include "./novice/skill_factory_novice.cpp" +#include "./summoner/skill_factory_summoner.cpp" +#include "./swordman/skill_factory_swordman.cpp" +#include "./taekwon/skill_factory_taekwon.cpp" +#include "./thief/skill_factory_thief.cpp" std::unique_ptr SkillFactoryImpl::create(const e_skill skill_id) const { static const std::vector> factories = { diff --git a/src/map/skills/skill_impl.cpp b/src/map/skills/skill_impl.cpp index ca5bc7796b..5ad14b632a 100644 --- a/src/map/skills/skill_impl.cpp +++ b/src/map/skills/skill_impl.cpp @@ -3,7 +3,8 @@ #include "skill_impl.hpp" -#include "../status.hpp" +#include "map/clif.hpp" +#include "map/status.hpp" SkillImpl::SkillImpl(e_skill skill_id){ this->skill_id_ = skill_id; @@ -37,6 +38,37 @@ void SkillImpl::applyAdditionalEffects(block_list*, block_list*, uint16, t_tick, // no-op } +StatusSkillImpl::StatusSkillImpl(e_skill skillId, bool end_if_running) : SkillImpl(skillId) { + this->end_if_running = end_if_running; +}; + +void StatusSkillImpl::castendNoDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const +{ + sc_type type = skill_get_sc(getSkillId()); + + if (type == SC_NONE) { + return; + } + + if (this->end_if_running) { + status_change* tsc = status_get_sc(target); + + if (tsc != nullptr && tsc->hasSCE(type)) { + clif_skill_nodamage(src, *target, getSkillId(), skill_lv, status_change_end(target, type)); + return; + } + } + + clif_skill_nodamage(src, *target, getSkillId(), skill_lv, sc_start(src, target, type, 100, skill_lv, skill_get_time(getSkillId(), skill_lv))); +} + +WeaponSkillImpl::WeaponSkillImpl(e_skill skill_id) : SkillImpl(skill_id) { +} + +void WeaponSkillImpl::castendDamageId(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32& flag) const { + skill_attack(BF_WEAPON, src, src, target, getSkillId(), skill_lv, tick, flag); +} + SkillImplRecursiveDamageSplash::SkillImplRecursiveDamageSplash(e_skill skill_id) : SkillImpl(skill_id){ } diff --git a/src/map/skills/skill_impl.hpp b/src/map/skills/skill_impl.hpp index 650cf82fba..8be264978b 100644 --- a/src/map/skills/skill_impl.hpp +++ b/src/map/skills/skill_impl.hpp @@ -46,6 +46,24 @@ protected: e_skill skill_id_; }; +class StatusSkillImpl : public SkillImpl +{ +private: + bool end_if_running; + +public: + StatusSkillImpl(e_skill skillId, bool end_if_running = false); + + virtual void castendNoDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const override; +}; + +class WeaponSkillImpl : public SkillImpl { +public: + WeaponSkillImpl(e_skill skill_id); + + virtual void castendDamageId(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32& flag) const override; +}; + class SkillImplRecursiveDamageSplash : public SkillImpl{ public: explicit SkillImplRecursiveDamageSplash(e_skill skill_id); diff --git a/src/map/skills/status_skill_impl.cpp b/src/map/skills/status_skill_impl.cpp deleted file mode 100644 index 650a13e2d9..0000000000 --- a/src/map/skills/status_skill_impl.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#include "status_skill_impl.hpp" - -#include "../clif.hpp" -#include "../status.hpp" - -StatusSkillImpl::StatusSkillImpl(e_skill skillId, bool end_if_running) : SkillImpl(skillId) { - this->end_if_running = end_if_running; -}; - -void StatusSkillImpl::castendNoDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const -{ - sc_type type = skill_get_sc(getSkillId()); - - if (type == SC_NONE) { - return; - } - - if (this->end_if_running) { - status_change* tsc = status_get_sc(target); - - if (tsc != nullptr && tsc->hasSCE(type)) { - clif_skill_nodamage(src, *target, getSkillId(), skill_lv, status_change_end(target, type)); - return; - } - } - - clif_skill_nodamage(src, *target, getSkillId(), skill_lv, sc_start(src, target, type, 100, skill_lv, skill_get_time(getSkillId(), skill_lv))); -} diff --git a/src/map/skills/status_skill_impl.hpp b/src/map/skills/status_skill_impl.hpp deleted file mode 100644 index 2ca2b12767..0000000000 --- a/src/map/skills/status_skill_impl.hpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#pragma once - -#include "skill_impl.hpp" - -class StatusSkillImpl : public SkillImpl -{ -private: - bool end_if_running; - -public: - StatusSkillImpl(e_skill skillId, bool end_if_running = false); - - virtual void castendNoDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const override; -}; diff --git a/src/map/skills/summoner/skill_factory_summoner.cpp b/src/map/skills/summoner/skill_factory_summoner.cpp index bcb6c76cbc..e239e00dcd 100644 --- a/src/map/skills/summoner/skill_factory_summoner.cpp +++ b/src/map/skills/summoner/skill_factory_summoner.cpp @@ -3,7 +3,7 @@ #include "skill_factory_summoner.hpp" -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" std::unique_ptr SkillFactorySummoner::create(const e_skill skill_id) const { switch( skill_id ){ diff --git a/src/map/skills/swordman/bash.hpp b/src/map/skills/swordman/bash.hpp index 331378b7f7..5f0f6fae5d 100644 --- a/src/map/skills/swordman/bash.hpp +++ b/src/map/skills/swordman/bash.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "../../battle.hpp" diff --git a/src/map/skills/swordman/dragonicaura.hpp b/src/map/skills/swordman/dragonicaura.hpp index 9e9447a174..99cf50d53d 100644 --- a/src/map/skills/swordman/dragonicaura.hpp +++ b/src/map/skills/swordman/dragonicaura.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillDragonicAura : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/dragonicpierce.hpp b/src/map/skills/swordman/dragonicpierce.hpp index d65052edf0..625144255e 100644 --- a/src/map/skills/swordman/dragonicpierce.hpp +++ b/src/map/skills/swordman/dragonicpierce.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillDragonicPierce : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/holycross.hpp b/src/map/skills/swordman/holycross.hpp index 915177d324..d45f2cec6c 100644 --- a/src/map/skills/swordman/holycross.hpp +++ b/src/map/skills/swordman/holycross.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillHolyCross : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/imperialcross.hpp b/src/map/skills/swordman/imperialcross.hpp index 62fbfb5c81..7f0abd6b1b 100644 --- a/src/map/skills/swordman/imperialcross.hpp +++ b/src/map/skills/swordman/imperialcross.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillImperialCross : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/pierce.hpp b/src/map/skills/swordman/pierce.hpp index 537f0c5b97..6c58d7c9bb 100644 --- a/src/map/skills/swordman/pierce.hpp +++ b/src/map/skills/swordman/pierce.hpp @@ -5,7 +5,7 @@ #include "map/battle.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillPierce : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/shieldboomerang.hpp b/src/map/skills/swordman/shieldboomerang.hpp index 365dfec926..b6223ab9bb 100644 --- a/src/map/skills/swordman/shieldboomerang.hpp +++ b/src/map/skills/swordman/shieldboomerang.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillShieldBoomerang : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/shieldreflect.hpp b/src/map/skills/swordman/shieldreflect.hpp index 2616708117..25e81ddab4 100644 --- a/src/map/skills/swordman/shieldreflect.hpp +++ b/src/map/skills/swordman/shieldreflect.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillShieldReflect : public StatusSkillImpl { public: diff --git a/src/map/skills/swordman/skill_factory_swordman.cpp b/src/map/skills/swordman/skill_factory_swordman.cpp index 90893fe2c9..2cb981c5e6 100644 --- a/src/map/skills/swordman/skill_factory_swordman.cpp +++ b/src/map/skills/swordman/skill_factory_swordman.cpp @@ -3,51 +3,52 @@ #include "skill_factory_swordman.hpp" -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "autoberserk.hpp" -#include "bash.hpp" -#include "bowlingbash.hpp" -#include "brandishspear.hpp" -#include "counterattack.hpp" -#include "crossrain.hpp" -#include "dragonicaura.hpp" -#include "dragonicbreath.hpp" -#include "dragonicpierce.hpp" -#include "grandcross.hpp" -#include "grandjudgement.hpp" -#include "guardianshield.hpp" -#include "hackandslasher.hpp" -#include "holycross.hpp" -#include "imperialcross.hpp" -#include "imperialpressure.hpp" -#include "judgementcross.hpp" -#include "madnesscrusher.hpp" -#include "magnum.hpp" -#include "overslash.hpp" -#include "pierce.hpp" -#include "provoke.hpp" -#include "radiantspear.hpp" -#include "relax.hpp" -#include "resistantsouls.hpp" -#include "sacrifice.hpp" -#include "selfprovoke.hpp" -#include "servantweapon.hpp" -#include "servantweapondemolition.hpp" -#include "servantweaponphantom.hpp" -#include "servantweaponsign.hpp" -#include "shieldboomerang.hpp" -#include "shieldreflect.hpp" -#include "shieldshooting.hpp" -#include "smite.hpp" -#include "spearboomerang.hpp" -#include "spearstab.hpp" -#include "spiralpierce.hpp" -#include "stormslash.hpp" -#include "traumaticblow.hpp" -#include "ultimatesacrifice.hpp" -#include "vitalstrike.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "autoberserk.cpp" +#include "bash.cpp" +#include "bowlingbash.cpp" +#include "brandishspear.cpp" +#include "counterattack.cpp" +#include "crossrain.cpp" +#include "dragonicaura.cpp" +#include "dragonicbreath.cpp" +#include "dragonicpierce.cpp" +#include "grandcross.cpp" +#include "grandjudgement.cpp" +#include "guardianshield.cpp" +#include "hackandslasher.cpp" +#include "holycross.cpp" +#include "imperialcross.cpp" +#include "imperialpressure.cpp" +#include "judgementcross.cpp" +#include "madnesscrusher.cpp" +#include "magnum.cpp" +#include "overslash.cpp" +#include "pierce.cpp" +#include "provoke.cpp" +#include "radiantspear.cpp" +#include "relax.cpp" +#include "resistantsouls.cpp" +#include "sacrifice.cpp" +#include "selfprovoke.cpp" +#include "servantweapon.cpp" +#include "servantweapondemolition.cpp" +#include "servantweaponphantom.cpp" +#include "servantweaponsign.cpp" +#include "shieldboomerang.cpp" +#include "shieldreflect.cpp" +#include "shieldshooting.cpp" +#include "smite.cpp" +#include "spearboomerang.cpp" +#include "spearstab.cpp" +#include "spiralpierce.cpp" +#include "stormslash.cpp" +#include "traumaticblow.cpp" +#include "ultimatesacrifice.cpp" +#include "vitalstrike.cpp" std::unique_ptr SkillFactorySwordman::create(const e_skill skill_id) const { switch( skill_id ){ diff --git a/src/map/skills/swordman/smite.hpp b/src/map/skills/swordman/smite.hpp index 7dcb7c40c3..a5477553d9 100644 --- a/src/map/skills/swordman/smite.hpp +++ b/src/map/skills/swordman/smite.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSmite : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/spearboomerang.hpp b/src/map/skills/swordman/spearboomerang.hpp index 78ba5c1b95..88098be325 100644 --- a/src/map/skills/swordman/spearboomerang.hpp +++ b/src/map/skills/swordman/spearboomerang.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSpearBoomerang : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/spiralpierce.hpp b/src/map/skills/swordman/spiralpierce.hpp index dafb0bdb19..25608132ad 100644 --- a/src/map/skills/swordman/spiralpierce.hpp +++ b/src/map/skills/swordman/spiralpierce.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSpiralPierce : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/stormslash.hpp b/src/map/skills/swordman/stormslash.hpp index 2471f5b8d9..ef28e490dd 100644 --- a/src/map/skills/swordman/stormslash.hpp +++ b/src/map/skills/swordman/stormslash.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillStormSlash : public WeaponSkillImpl { public: diff --git a/src/map/skills/swordman/traumaticblow.hpp b/src/map/skills/swordman/traumaticblow.hpp index 3f153346ab..73c6b655d5 100644 --- a/src/map/skills/swordman/traumaticblow.hpp +++ b/src/map/skills/swordman/traumaticblow.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillTraumaticBlow : public WeaponSkillImpl { public: diff --git a/src/map/skills/taekwon/counter.hpp b/src/map/skills/taekwon/counter.hpp index 1a09d5a85b..17795876df 100644 --- a/src/map/skills/taekwon/counter.hpp +++ b/src/map/skills/taekwon/counter.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/taekwon/downkick.hpp b/src/map/skills/taekwon/downkick.hpp index 65b78888b0..39e81bc294 100644 --- a/src/map/skills/taekwon/downkick.hpp +++ b/src/map/skills/taekwon/downkick.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" #include "map/battle.hpp" diff --git a/src/map/skills/taekwon/eska.hpp b/src/map/skills/taekwon/eska.hpp index 1df21d21bc..8e564aa626 100644 --- a/src/map/skills/taekwon/eska.hpp +++ b/src/map/skills/taekwon/eska.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillEska : public StatusSkillImpl { public: diff --git a/src/map/skills/taekwon/eske.hpp b/src/map/skills/taekwon/eske.hpp index 2afa6768b5..db8980b05d 100644 --- a/src/map/skills/taekwon/eske.hpp +++ b/src/map/skills/taekwon/eske.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillEske : public StatusSkillImpl { public: diff --git a/src/map/skills/taekwon/eswoo.hpp b/src/map/skills/taekwon/eswoo.hpp index 4e4b641c4b..c37743a622 100644 --- a/src/map/skills/taekwon/eswoo.hpp +++ b/src/map/skills/taekwon/eswoo.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillEswoo : public StatusSkillImpl { public: diff --git a/src/map/skills/taekwon/kaahi.hpp b/src/map/skills/taekwon/kaahi.hpp index 83f4df95f8..07eced689f 100644 --- a/src/map/skills/taekwon/kaahi.hpp +++ b/src/map/skills/taekwon/kaahi.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillKaahi : public StatusSkillImpl { public: diff --git a/src/map/skills/taekwon/kaite.hpp b/src/map/skills/taekwon/kaite.hpp index c643fa2442..5fc9fe0fd8 100644 --- a/src/map/skills/taekwon/kaite.hpp +++ b/src/map/skills/taekwon/kaite.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillKaite : public StatusSkillImpl { public: diff --git a/src/map/skills/taekwon/kaizel.hpp b/src/map/skills/taekwon/kaizel.hpp index a0cc2d5bd8..c0ab6bec8d 100644 --- a/src/map/skills/taekwon/kaizel.hpp +++ b/src/map/skills/taekwon/kaizel.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillKaizel : public StatusSkillImpl { public: diff --git a/src/map/skills/taekwon/kaupe.hpp b/src/map/skills/taekwon/kaupe.hpp index 63f26a4ca5..d43250368a 100644 --- a/src/map/skills/taekwon/kaupe.hpp +++ b/src/map/skills/taekwon/kaupe.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillKaupe : public StatusSkillImpl { public: diff --git a/src/map/skills/taekwon/skill_factory_taekwon.cpp b/src/map/skills/taekwon/skill_factory_taekwon.cpp index 88041bec93..5977c19094 100644 --- a/src/map/skills/taekwon/skill_factory_taekwon.cpp +++ b/src/map/skills/taekwon/skill_factory_taekwon.cpp @@ -3,64 +3,65 @@ #include "skill_factory_taekwon.hpp" -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "circleofdirectionsandelementals.hpp" -#include "counter.hpp" -#include "downkick.hpp" -#include "eska.hpp" -#include "eske.hpp" -#include "esma.hpp" -#include "estin.hpp" -#include "estun.hpp" -#include "eswoo.hpp" -#include "exorcismofmalicioussoul.hpp" -#include "feelingthesunmoonandstars.hpp" -#include "hatredofthesunmoonandstars.hpp" -#include "highjump.hpp" -#include "jumpkick.hpp" -#include "kaahi.hpp" -#include "kaite.hpp" -#include "kaizel.hpp" -#include "kaupe.hpp" -#include "mission.hpp" -#include "run.hpp" -#include "sevenwind.hpp" -#include "soulgathering.hpp" -#include "soulofheavenandearth.hpp" -#include "spiritofrebirth.hpp" -#include "spiritofthealchemist.hpp" -#include "spiritoftheartist.hpp" -#include "spiritoftheassasin.hpp" -#include "spiritoftheblacksmith.hpp" -#include "spiritofthecrusader.hpp" -#include "spiritofthehunter.hpp" -#include "spiritoftheknight.hpp" -#include "spiritofthemonk.hpp" -#include "spiritofthepriest.hpp" -#include "spiritoftherogue.hpp" -#include "spiritofthesage.hpp" -#include "spiritofthesoullinker.hpp" -#include "spiritofthestargladiator.hpp" -#include "spiritofthesupernovice.hpp" -#include "spiritofthewizard.hpp" -#include "stormkick.hpp" -#include "talismanofblacktortoise.hpp" -#include "talismanofbluedragon.hpp" -#include "talismanoffiveelements.hpp" -#include "talismanoffourbearinggod.hpp" -#include "talismanofmagician.hpp" -#include "talismanofprotection.hpp" -#include "talismanofredphoenix.hpp" -#include "talismanofsoulstealing.hpp" -#include "talismanofwarrior.hpp" -#include "talismanofwhitetiger.hpp" -#include "totemoftutelary.hpp" -#include "turnkick.hpp" -#include "warmthofthemoon.hpp" -#include "warmthofthestars.hpp" -#include "warmthofthesun.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "circleofdirectionsandelementals.cpp" +#include "counter.cpp" +#include "downkick.cpp" +#include "eska.cpp" +#include "eske.cpp" +#include "esma.cpp" +#include "estin.cpp" +#include "estun.cpp" +#include "eswoo.cpp" +#include "exorcismofmalicioussoul.cpp" +#include "feelingthesunmoonandstars.cpp" +#include "hatredofthesunmoonandstars.cpp" +#include "highjump.cpp" +#include "jumpkick.cpp" +#include "kaahi.cpp" +#include "kaite.cpp" +#include "kaizel.cpp" +#include "kaupe.cpp" +#include "mission.cpp" +#include "run.cpp" +#include "sevenwind.cpp" +#include "soulgathering.cpp" +#include "soulofheavenandearth.cpp" +#include "spiritofrebirth.cpp" +#include "spiritofthealchemist.cpp" +#include "spiritoftheartist.cpp" +#include "spiritoftheassasin.cpp" +#include "spiritoftheblacksmith.cpp" +#include "spiritofthecrusader.cpp" +#include "spiritofthehunter.cpp" +#include "spiritoftheknight.cpp" +#include "spiritofthemonk.cpp" +#include "spiritofthepriest.cpp" +#include "spiritoftherogue.cpp" +#include "spiritofthesage.cpp" +#include "spiritofthesoullinker.cpp" +#include "spiritofthestargladiator.cpp" +#include "spiritofthesupernovice.cpp" +#include "spiritofthewizard.cpp" +#include "stormkick.cpp" +#include "talismanofblacktortoise.cpp" +#include "talismanofbluedragon.cpp" +#include "talismanoffiveelements.cpp" +#include "talismanoffourbearinggod.cpp" +#include "talismanofmagician.cpp" +#include "talismanofprotection.cpp" +#include "talismanofredphoenix.cpp" +#include "talismanofsoulstealing.cpp" +#include "talismanofwarrior.cpp" +#include "talismanofwhitetiger.cpp" +#include "totemoftutelary.cpp" +#include "turnkick.cpp" +#include "warmthofthemoon.cpp" +#include "warmthofthestars.cpp" +#include "warmthofthesun.cpp" std::unique_ptr SkillFactoryTaekwon::create(const e_skill skill_id) const { switch (skill_id) { diff --git a/src/map/skills/thief/counterinstinct.hpp b/src/map/skills/thief/counterinstinct.hpp index 06651782d5..85c824680b 100644 --- a/src/map/skills/thief/counterinstinct.hpp +++ b/src/map/skills/thief/counterinstinct.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillCounterInstinct : public StatusSkillImpl { public: diff --git a/src/map/skills/thief/crossimpact.hpp b/src/map/skills/thief/crossimpact.hpp index f93c0e4478..af7bf44d6b 100644 --- a/src/map/skills/thief/crossimpact.hpp +++ b/src/map/skills/thief/crossimpact.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillCrossImpact : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/crossripperslasher.hpp b/src/map/skills/thief/crossripperslasher.hpp index 77f9dc988b..b088198512 100644 --- a/src/map/skills/thief/crossripperslasher.hpp +++ b/src/map/skills/thief/crossripperslasher.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillCrossRipperSlasher : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/darkclaw.hpp b/src/map/skills/thief/darkclaw.hpp index cbce29f079..32bbe4b97c 100644 --- a/src/map/skills/thief/darkclaw.hpp +++ b/src/map/skills/thief/darkclaw.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillDarkClaw : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/darkillusion.hpp b/src/map/skills/thief/darkillusion.hpp index 0b427fa03b..d279816bf3 100644 --- a/src/map/skills/thief/darkillusion.hpp +++ b/src/map/skills/thief/darkillusion.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillDarkIllusion : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/enchantdeadlypoison.hpp b/src/map/skills/thief/enchantdeadlypoison.hpp index 4777467e26..541afdc99e 100644 --- a/src/map/skills/thief/enchantdeadlypoison.hpp +++ b/src/map/skills/thief/enchantdeadlypoison.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillEnchantDeadlyPoison : public StatusSkillImpl { public: diff --git a/src/map/skills/thief/envenom.hpp b/src/map/skills/thief/envenom.hpp index f75eae47ed..c58260305d 100644 --- a/src/map/skills/thief/envenom.hpp +++ b/src/map/skills/thief/envenom.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillEnvenom : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/eternalslash.hpp b/src/map/skills/thief/eternalslash.hpp index 188dd05da6..a68acea40f 100644 --- a/src/map/skills/thief/eternalslash.hpp +++ b/src/map/skills/thief/eternalslash.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillEternalSlash : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/hallucinationwalk.hpp b/src/map/skills/thief/hallucinationwalk.hpp index 7b73717d84..d1ee698d1e 100644 --- a/src/map/skills/thief/hallucinationwalk.hpp +++ b/src/map/skills/thief/hallucinationwalk.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../status_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillHallucinationWalk : public StatusSkillImpl { public: diff --git a/src/map/skills/thief/phantommenace.hpp b/src/map/skills/thief/phantommenace.hpp index 2fcbfa87a7..5e25fe8892 100644 --- a/src/map/skills/thief/phantommenace.hpp +++ b/src/map/skills/thief/phantommenace.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillPhantomMenace : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/sandattack.hpp b/src/map/skills/thief/sandattack.hpp index 866284d978..512971cb46 100644 --- a/src/map/skills/thief/sandattack.hpp +++ b/src/map/skills/thief/sandattack.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSandAttack : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/shadowstab.hpp b/src/map/skills/thief/shadowstab.hpp index 8093042062..f81aae9759 100644 --- a/src/map/skills/thief/shadowstab.hpp +++ b/src/map/skills/thief/shadowstab.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillShadowStab : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/skill_factory_thief.cpp b/src/map/skills/thief/skill_factory_thief.cpp index 706b52e86e..7bd3c3f45b 100644 --- a/src/map/skills/thief/skill_factory_thief.cpp +++ b/src/map/skills/thief/skill_factory_thief.cpp @@ -3,65 +3,65 @@ #include "skill_factory_thief.hpp" -#include "../status_skill_impl.hpp" -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" -#include "antidote.hpp" -#include "backslide.hpp" -#include "backstab.hpp" -#include "cloaking.hpp" -#include "cloakingexceed.hpp" -#include "closeconfine.hpp" -#include "counterinstinct.hpp" -#include "counterslash.hpp" -#include "createdeadlypoison.hpp" - -#include "createnewpoison.hpp" -#include "crossimpact.hpp" -#include "crossripperslasher.hpp" -#include "dancingknife.hpp" -#include "darkclaw.hpp" -#include "darkillusion.hpp" -#include "detoxify.hpp" -#include "divestall.hpp" -#include "divestarmor.hpp" -#include "divesthelm.hpp" -#include "divestshield.hpp" -#include "divestweapon.hpp" -#include "enchantdeadlypoison.hpp" -#include "enchantpoison.hpp" -#include "envenom.hpp" -#include "eternalslash.hpp" -#include "fatalshadowcrow.hpp" -#include "findstone.hpp" -#include "grimtooth.hpp" -#include "hallucinationwalk.hpp" -#include "hiding.hpp" -#include "impactcrater.hpp" -#include "meteorassault.hpp" -#include "mug.hpp" -#include "phantommenace.hpp" -#include "poisoningweapon.hpp" -#include "poisonsmoke.hpp" -#include "remover.hpp" -#include "rollingcutter.hpp" -#include "sandattack.hpp" -#include "savageimpact.hpp" -#include "scribble.hpp" -#include "shadowstab.hpp" -#include "crossslash.hpp" -#include "sightlessmind.hpp" -#include "snatch.hpp" -#include "sonicblow.hpp" -#include "souldestroyer.hpp" -#include "steal.hpp" -#include "stealth.hpp" -#include "stonefling.hpp" -#include "throwvenomknife.hpp" -#include "venomdust.hpp" -#include "venompressure.hpp" -#include "venomsplasher.hpp" -#include "weaponcrush.hpp" +// Include .cpp files into the TU to optimize compile time +// For reference see unity builds or amalgamated builds +#include "antidote.cpp" +#include "backslide.cpp" +#include "backstab.cpp" +#include "cloaking.cpp" +#include "cloakingexceed.cpp" +#include "closeconfine.cpp" +#include "counterinstinct.cpp" +#include "counterslash.cpp" +#include "createdeadlypoison.cpp" +#include "createnewpoison.cpp" +#include "crossimpact.cpp" +#include "crossripperslasher.cpp" +#include "dancingknife.cpp" +#include "darkclaw.cpp" +#include "darkillusion.cpp" +#include "detoxify.cpp" +#include "divestall.cpp" +#include "divestarmor.cpp" +#include "divesthelm.cpp" +#include "divestshield.cpp" +#include "divestweapon.cpp" +#include "enchantdeadlypoison.cpp" +#include "enchantpoison.cpp" +#include "envenom.cpp" +#include "eternalslash.cpp" +#include "fatalshadowcrow.cpp" +#include "findstone.cpp" +#include "grimtooth.cpp" +#include "hallucinationwalk.cpp" +#include "hiding.cpp" +#include "impactcrater.cpp" +#include "meteorassault.cpp" +#include "mug.cpp" +#include "phantommenace.cpp" +#include "poisoningweapon.cpp" +#include "poisonsmoke.cpp" +#include "remover.cpp" +#include "rollingcutter.cpp" +#include "sandattack.cpp" +#include "savageimpact.cpp" +#include "scribble.cpp" +#include "shadowstab.cpp" +#include "crossslash.cpp" +#include "sightlessmind.cpp" +#include "snatch.cpp" +#include "sonicblow.cpp" +#include "souldestroyer.cpp" +#include "steal.cpp" +#include "stealth.cpp" +#include "stonefling.cpp" +#include "throwvenomknife.cpp" +#include "venomdust.cpp" +#include "venompressure.cpp" +#include "venomsplasher.cpp" +#include "weaponcrush.cpp" std::unique_ptr SkillFactoryThief::create(const e_skill skill_id) const { switch (skill_id) { diff --git a/src/map/skills/thief/snatch.hpp b/src/map/skills/thief/snatch.hpp index 5b565fb0cc..9be650b979 100644 --- a/src/map/skills/thief/snatch.hpp +++ b/src/map/skills/thief/snatch.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSnatch : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/sonicblow.hpp b/src/map/skills/thief/sonicblow.hpp index 01b765ab07..6e3c0b00af 100644 --- a/src/map/skills/thief/sonicblow.hpp +++ b/src/map/skills/thief/sonicblow.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSonicBlow : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/souldestroyer.hpp b/src/map/skills/thief/souldestroyer.hpp index ce2ac7674f..dc368cdab9 100644 --- a/src/map/skills/thief/souldestroyer.hpp +++ b/src/map/skills/thief/souldestroyer.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillSoulDestroyer : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/throwvenomknife.hpp b/src/map/skills/thief/throwvenomknife.hpp index 0034610336..e8d55e2d29 100644 --- a/src/map/skills/thief/throwvenomknife.hpp +++ b/src/map/skills/thief/throwvenomknife.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillThrowVenomKnife : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/venompressure.hpp b/src/map/skills/thief/venompressure.hpp index b242793bb2..4b76df70bb 100644 --- a/src/map/skills/thief/venompressure.hpp +++ b/src/map/skills/thief/venompressure.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillVenomPressure : public WeaponSkillImpl { public: diff --git a/src/map/skills/thief/weaponcrush.hpp b/src/map/skills/thief/weaponcrush.hpp index 274beb0dbf..b9d444b0bc 100644 --- a/src/map/skills/thief/weaponcrush.hpp +++ b/src/map/skills/thief/weaponcrush.hpp @@ -3,7 +3,7 @@ #pragma once -#include "../weapon_skill_impl.hpp" +#include "../skill_impl.hpp" class SkillWeaponCrush : public WeaponSkillImpl { public: diff --git a/src/map/skills/weapon_skill_impl.cpp b/src/map/skills/weapon_skill_impl.cpp deleted file mode 100644 index 8087fed6ff..0000000000 --- a/src/map/skills/weapon_skill_impl.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#include "weapon_skill_impl.hpp" - -WeaponSkillImpl::WeaponSkillImpl(e_skill skill_id) : SkillImpl(skill_id) { -} - -void WeaponSkillImpl::castendDamageId(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32& flag) const { - skill_attack(BF_WEAPON, src, src, target, getSkillId(), skill_lv, tick, flag); -} diff --git a/src/map/skills/weapon_skill_impl.hpp b/src/map/skills/weapon_skill_impl.hpp deleted file mode 100644 index f6a0e5de63..0000000000 --- a/src/map/skills/weapon_skill_impl.hpp +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#pragma once - -#include "skill_impl.hpp" - -class WeaponSkillImpl : public SkillImpl { -public: - WeaponSkillImpl(e_skill skill_id); - - virtual void castendDamageId(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32& flag) const override; -}; diff --git a/tools/ci/codeql_config.yml b/tools/ci/codeql_config.yml new file mode 100644 index 0000000000..3937affb23 --- /dev/null +++ b/tools/ci/codeql_config.yml @@ -0,0 +1,9 @@ +name: "CodeQL config" + +queries: + # Trigger security and quality findings + - uses: security-and-quality +query-filters: + - exclude: + # We use unity builds/amalgamated builds to optimize compile time for the skill TU + id: cpp/include-non-header