From ca6c67c16c02043b4c12229e4a933c77e340d25e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20B=C3=A1lint=20Misius?= Date: Sat, 9 Dec 2023 12:31:23 +0100 Subject: [PATCH] Factor functions shared between elements into headers The signature duplication was getting out of hand; too easy to get wrong. --- src/client/GameSave.cpp | 4 +--- src/gui/game/GameController.cpp | 2 +- src/simulation/Simulation.cpp | 17 +++++------------ src/simulation/elements/ARAY.cpp | 2 +- src/simulation/elements/BCOL.cpp | 4 +--- src/simulation/elements/BIZR.cpp | 4 +--- src/simulation/elements/BIZR.h | 5 +++++ src/simulation/elements/BIZRG.cpp | 4 +--- src/simulation/elements/BIZRS.cpp | 4 +--- src/simulation/elements/BVBR.cpp | 4 +--- src/simulation/elements/COAL.cpp | 4 +--- src/simulation/elements/COAL.h | 5 +++++ src/simulation/elements/CRAY.cpp | 1 + src/simulation/elements/EMP.h | 4 ++++ src/simulation/elements/ETRD.h | 4 ++++ src/simulation/elements/FIGH.cpp | 7 +------ src/simulation/elements/FILT.cpp | 2 +- src/simulation/elements/FILT.h | 5 +++++ src/simulation/elements/FIRE.cpp | 2 +- src/simulation/elements/FIRE.h | 4 ++++ src/simulation/elements/LAVA.cpp | 2 +- src/simulation/elements/LDTC.cpp | 2 +- src/simulation/elements/LOLZ.h | 7 +++++++ src/simulation/elements/NEUT.cpp | 2 +- src/simulation/elements/NTCT.cpp | 3 +-- src/simulation/elements/NTCT.h | 4 ++++ src/simulation/elements/PBCN.cpp | 2 +- src/simulation/elements/PCLN.cpp | 2 +- src/simulation/elements/PCLN.h | 4 ++++ src/simulation/elements/PHOT.cpp | 4 ++-- src/simulation/elements/PIPE.cpp | 8 ++------ src/simulation/elements/PIPE.h | 11 +++++++++++ src/simulation/elements/PLSM.cpp | 2 +- src/simulation/elements/PPIP.cpp | 4 +--- src/simulation/elements/PQRT.cpp | 3 +-- src/simulation/elements/PRTI.cpp | 4 ++-- src/simulation/elements/QRTZ.cpp | 3 +-- src/simulation/elements/QRTZ.h | 5 +++++ src/simulation/elements/RFGL.cpp | 3 +-- src/simulation/elements/RFRG.cpp | 3 +-- src/simulation/elements/RFRG.h | 4 ++++ src/simulation/elements/SOAP.h | 4 ++++ src/simulation/elements/SPRK.cpp | 8 ++++---- src/simulation/elements/STKM.cpp | 6 +----- src/simulation/elements/STKM.h | 12 ++++++++++++ src/simulation/elements/STKM2.cpp | 4 +--- src/simulation/elements/STOR.cpp | 2 +- src/simulation/elements/VIBR.cpp | 4 +--- src/simulation/elements/VIBR.h | 5 +++++ src/simulation/elements/VIRS.cpp | 2 +- src/simulation/elements/VIRS.h | 4 ++++ src/simulation/elements/VRSG.cpp | 2 +- src/simulation/elements/VRSS.cpp | 2 +- 53 files changed, 134 insertions(+), 91 deletions(-) create mode 100644 src/simulation/elements/BIZR.h create mode 100644 src/simulation/elements/COAL.h create mode 100644 src/simulation/elements/EMP.h create mode 100644 src/simulation/elements/ETRD.h create mode 100644 src/simulation/elements/FILT.h create mode 100644 src/simulation/elements/FIRE.h create mode 100644 src/simulation/elements/LOLZ.h create mode 100644 src/simulation/elements/NTCT.h create mode 100644 src/simulation/elements/PCLN.h create mode 100644 src/simulation/elements/PIPE.h create mode 100644 src/simulation/elements/QRTZ.h create mode 100644 src/simulation/elements/RFRG.h create mode 100644 src/simulation/elements/SOAP.h create mode 100644 src/simulation/elements/STKM.h create mode 100644 src/simulation/elements/VIBR.h create mode 100644 src/simulation/elements/VIRS.h diff --git a/src/client/GameSave.cpp b/src/client/GameSave.cpp index 3d08d48ca..f506a0485 100644 --- a/src/client/GameSave.cpp +++ b/src/client/GameSave.cpp @@ -3,6 +3,7 @@ #include "Format.h" #include "simulation/Simulation.h" #include "simulation/ElementClasses.h" +#include "simulation/elements/PIPE.h" #include "common/tpt-compat.h" #include "bson/BSON.h" #include "graphics/Renderer.h" @@ -114,9 +115,6 @@ std::pair> GameSave::Serialise() const return { false, {} }; } -extern const std::array, 8> Element_PIPE_offsets; -void Element_PIPE_transformPatchOffsets(Particle &part, const std::array &offsetMap); - void GameSave::Transform(Mat2 transform, Vec2 nudge) { // undo translation by rotation diff --git a/src/gui/game/GameController.cpp b/src/gui/game/GameController.cpp index 33b5640a4..d60216018 100644 --- a/src/gui/game/GameController.cpp +++ b/src/gui/game/GameController.cpp @@ -31,6 +31,7 @@ #include "simulation/Simulation.h" #include "simulation/SimulationData.h" #include "simulation/Snapshot.h" +#include "simulation/elements/STKM.h" #include "gui/dialogues/ErrorMessage.h" #include "gui/dialogues/InformationMessage.h" @@ -881,7 +882,6 @@ void GameController::Update() rightSelected = sr; } - void Element_STKM_set_element(Simulation *sim, playerst *playerp, int element); if (!sim->player.spwn) Element_STKM_set_element(sim, &sim->player, rightSelected); if (!sim->player2.spwn) diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index 494ac05af..a48b45527 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -9,15 +9,14 @@ #include "common/tpt-rand.h" #include "common/tpt-thread-local.h" #include "gui/game/Brush.h" +#include "elements/EMP.h" +#include "elements/LOLZ.h" +#include "elements/STKM.h" +#include "elements/PIPE.h" +#include "elements/FILT.h" #include #include -extern int Element_PPIP_ppip_changed; -extern int Element_LOLZ_RuleTable[9][9]; -extern int Element_LOLZ_lolz[XRES/9][YRES/9]; -extern int Element_LOVE_RuleTable[9][9]; -extern int Element_LOVE_love[XRES/9][YRES/9]; - static float remainder_p(float x, float y) { return std::fmod(x, y) + (x>=0 ? 0 : y); @@ -127,7 +126,6 @@ MissingElements Simulation::Load(const GameSave *save, bool includePressure, Vec { continue; } - bool Element_FIGH_CanAlloc(Simulation *sim); if (tempPart.type == PT_FIGH && !Element_FIGH_CanAlloc(this)) { continue; @@ -159,7 +157,6 @@ MissingElements Simulation::Load(const GameSave *save, bool includePressure, Vec elementCount[tempPart.type]++; - void Element_STKM_init_legs(Simulation * sim, playerst *playerp, int i); switch (parts[i].type) { case PT_STKM: @@ -200,7 +197,6 @@ MissingElements Simulation::Load(const GameSave *save, bool includePressure, Vec case PT_FIGH: { unsigned int oldTmp = parts[i].tmp; - int Element_FIGH_Alloc(Simulation *sim); parts[i].tmp = Element_FIGH_Alloc(this); if (parts[i].tmp >= 0) { @@ -212,7 +208,6 @@ MissingElements Simulation::Load(const GameSave *save, bool includePressure, Vec parts[i].ctype = 0; } fighters[parts[i].tmp].elem = PT_DUST; - void Element_FIGH_NewFighter(Simulation *sim, int fighterID, int i, int elem); Element_FIGH_NewFighter(this, parts[i].tmp, i, parts[i].ctype); if (fan) fighters[parts[i].tmp].fan = true; @@ -1262,7 +1257,6 @@ int Simulation::try_move(int i, int x, int y, int nx, int ny) return 0; } - int Element_FILT_interactWavelengths(Simulation *sim, Particle* cpart, int origWl); if (e == 2) //if occupy same space { switch (parts[i].type) @@ -3922,7 +3916,6 @@ void Simulation::AfterSim() if (emp_trigger_count) { // pitiful attempt at trying to keep code relating to a given element in the same file - void Element_EMP_Trigger(Simulation *sim, int triggerCount); Element_EMP_Trigger(this, emp_trigger_count); emp_trigger_count = 0; } diff --git a/src/simulation/elements/ARAY.cpp b/src/simulation/elements/ARAY.cpp index e60cee4ee..e101e3aac 100644 --- a/src/simulation/elements/ARAY.cpp +++ b/src/simulation/elements/ARAY.cpp @@ -1,4 +1,5 @@ #include "simulation/ElementCommon.h" +#include "FILT.h" static int update(UPDATE_FUNC_ARGS); @@ -130,7 +131,6 @@ static int update(UPDATE_FUNC_ARGS) { if (parts[r].tmp != 6) { - int Element_FILT_interactWavelengths(Simulation *sim, Particle* cpart, int origWl); colored = Element_FILT_interactWavelengths(sim, &parts[r], colored); if (!colored) break; diff --git a/src/simulation/elements/BCOL.cpp b/src/simulation/elements/BCOL.cpp index f950aeb7a..c1b5d0a76 100644 --- a/src/simulation/elements/BCOL.cpp +++ b/src/simulation/elements/BCOL.cpp @@ -1,7 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_COAL_update(UPDATE_FUNC_ARGS); -int Element_COAL_graphics(GRAPHICS_FUNC_ARGS); +#include "COAL.h" void Element::Element_BCOL() { diff --git a/src/simulation/elements/BIZR.cpp b/src/simulation/elements/BIZR.cpp index ec4fb87a4..d80762b33 100644 --- a/src/simulation/elements/BIZR.cpp +++ b/src/simulation/elements/BIZR.cpp @@ -1,7 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_BIZR_update(UPDATE_FUNC_ARGS); -int Element_BIZR_graphics(GRAPHICS_FUNC_ARGS); +#include "BIZR.h" void Element::Element_BIZR() { diff --git a/src/simulation/elements/BIZR.h b/src/simulation/elements/BIZR.h new file mode 100644 index 000000000..db81a715e --- /dev/null +++ b/src/simulation/elements/BIZR.h @@ -0,0 +1,5 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_BIZR_graphics(GRAPHICS_FUNC_ARGS); +int Element_BIZR_update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/BIZRG.cpp b/src/simulation/elements/BIZRG.cpp index 012772f92..1e30d52e0 100644 --- a/src/simulation/elements/BIZRG.cpp +++ b/src/simulation/elements/BIZRG.cpp @@ -1,7 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_BIZR_update(UPDATE_FUNC_ARGS); -int Element_BIZR_graphics(GRAPHICS_FUNC_ARGS); +#include "BIZR.h" void Element::Element_BIZRG() { diff --git a/src/simulation/elements/BIZRS.cpp b/src/simulation/elements/BIZRS.cpp index a8d890991..50be68c24 100644 --- a/src/simulation/elements/BIZRS.cpp +++ b/src/simulation/elements/BIZRS.cpp @@ -1,7 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_BIZR_update(UPDATE_FUNC_ARGS); -int Element_BIZR_graphics(GRAPHICS_FUNC_ARGS); +#include "BIZR.h" void Element::Element_BIZRS() { diff --git a/src/simulation/elements/BVBR.cpp b/src/simulation/elements/BVBR.cpp index 3a1b26686..38d04ae4d 100644 --- a/src/simulation/elements/BVBR.cpp +++ b/src/simulation/elements/BVBR.cpp @@ -1,7 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_VIBR_update(UPDATE_FUNC_ARGS); -int Element_VIBR_graphics(GRAPHICS_FUNC_ARGS); +#include "VIBR.h" void Element::Element_BVBR() { diff --git a/src/simulation/elements/COAL.cpp b/src/simulation/elements/COAL.cpp index 6f8dafbb8..ba35673ea 100644 --- a/src/simulation/elements/COAL.cpp +++ b/src/simulation/elements/COAL.cpp @@ -1,7 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_COAL_update(UPDATE_FUNC_ARGS); -int Element_COAL_graphics(GRAPHICS_FUNC_ARGS); +#include "COAL.h" void Element::Element_COAL() { diff --git a/src/simulation/elements/COAL.h b/src/simulation/elements/COAL.h new file mode 100644 index 000000000..124496585 --- /dev/null +++ b/src/simulation/elements/COAL.h @@ -0,0 +1,5 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_COAL_graphics(GRAPHICS_FUNC_ARGS); +int Element_COAL_update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/CRAY.cpp b/src/simulation/elements/CRAY.cpp index 1e5f86108..197f84cff 100644 --- a/src/simulation/elements/CRAY.cpp +++ b/src/simulation/elements/CRAY.cpp @@ -1,4 +1,5 @@ #include "simulation/ElementCommon.h" +#include "FILT.h" static int update(UPDATE_FUNC_ARGS); static bool ctypeDraw(CTYPEDRAW_FUNC_ARGS); diff --git a/src/simulation/elements/EMP.h b/src/simulation/elements/EMP.h new file mode 100644 index 000000000..d6352f49e --- /dev/null +++ b/src/simulation/elements/EMP.h @@ -0,0 +1,4 @@ +#pragma once +#include "simulation/ElementDefs.h" + +void Element_EMP_Trigger(Simulation *sim, int triggerCount); diff --git a/src/simulation/elements/ETRD.h b/src/simulation/elements/ETRD.h new file mode 100644 index 000000000..35e799fc7 --- /dev/null +++ b/src/simulation/elements/ETRD.h @@ -0,0 +1,4 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_ETRD_nearestSparkablePart(Simulation *sim, int targetId); diff --git a/src/simulation/elements/FIGH.cpp b/src/simulation/elements/FIGH.cpp index 6d32775d1..9f23603e8 100644 --- a/src/simulation/elements/FIGH.cpp +++ b/src/simulation/elements/FIGH.cpp @@ -1,15 +1,10 @@ #include "simulation/ElementCommon.h" +#include "STKM.h" static int update(UPDATE_FUNC_ARGS); static bool createAllowed(ELEMENT_CREATE_ALLOWED_FUNC_ARGS); static void changeType(ELEMENT_CHANGETYPE_FUNC_ARGS); static void Free(Simulation *sim, unsigned char i); -bool Element_FIGH_CanAlloc(Simulation *sim); -int Element_FIGH_Alloc(Simulation *sim); -void Element_FIGH_NewFighter(Simulation *sim, int fighterID, int i, int elem); -int Element_STKM_graphics(GRAPHICS_FUNC_ARGS); -void Element_STKM_init_legs(Simulation * sim, playerst *playerp, int i); -int Element_STKM_run_stickman(playerst *playerp, UPDATE_FUNC_ARGS); void Element::Element_FIGH() { diff --git a/src/simulation/elements/FILT.cpp b/src/simulation/elements/FILT.cpp index c78e23b33..f471a40ff 100644 --- a/src/simulation/elements/FILT.cpp +++ b/src/simulation/elements/FILT.cpp @@ -1,8 +1,8 @@ #include "simulation/ElementCommon.h" +#include "FILT.h" static int graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); -int Element_FILT_interactWavelengths(Simulation *sim, Particle* cpart, int origWl); void Element::Element_FILT() { diff --git a/src/simulation/elements/FILT.h b/src/simulation/elements/FILT.h new file mode 100644 index 000000000..9289e9218 --- /dev/null +++ b/src/simulation/elements/FILT.h @@ -0,0 +1,5 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_FILT_getWavelengths(const Particle* cpart); +int Element_FILT_interactWavelengths(Simulation *sim, Particle* cpart, int origWl); diff --git a/src/simulation/elements/FIRE.cpp b/src/simulation/elements/FIRE.cpp index 7e0f3ffb4..35b5b3372 100644 --- a/src/simulation/elements/FIRE.cpp +++ b/src/simulation/elements/FIRE.cpp @@ -1,7 +1,7 @@ #include "simulation/ElementCommon.h" +#include "FIRE.h" #include -int Element_FIRE_update(UPDATE_FUNC_ARGS); static int updateLegacy(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); diff --git a/src/simulation/elements/FIRE.h b/src/simulation/elements/FIRE.h new file mode 100644 index 000000000..0d07ea535 --- /dev/null +++ b/src/simulation/elements/FIRE.h @@ -0,0 +1,4 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_FIRE_update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/LAVA.cpp b/src/simulation/elements/LAVA.cpp index 0dcd4c3b5..c1c1f68e3 100644 --- a/src/simulation/elements/LAVA.cpp +++ b/src/simulation/elements/LAVA.cpp @@ -1,6 +1,6 @@ #include "simulation/ElementCommon.h" +#include "FIRE.h" -int Element_FIRE_update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); diff --git a/src/simulation/elements/LDTC.cpp b/src/simulation/elements/LDTC.cpp index 2307159a1..db52e2511 100644 --- a/src/simulation/elements/LDTC.cpp +++ b/src/simulation/elements/LDTC.cpp @@ -1,5 +1,5 @@ #include "simulation/ElementCommon.h" -#include +#include "FILT.h" static int update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/LOLZ.h b/src/simulation/elements/LOLZ.h new file mode 100644 index 000000000..1eaecdab7 --- /dev/null +++ b/src/simulation/elements/LOLZ.h @@ -0,0 +1,7 @@ +#pragma once +#include "simulation/ElementDefs.h" + +extern int Element_LOLZ_RuleTable[9][9]; +extern int Element_LOLZ_lolz[XRES/9][YRES/9]; +extern int Element_LOVE_RuleTable[9][9]; +extern int Element_LOVE_love[XRES/9][YRES/9]; diff --git a/src/simulation/elements/NEUT.cpp b/src/simulation/elements/NEUT.cpp index bfd0c146a..1feb16ea4 100644 --- a/src/simulation/elements/NEUT.cpp +++ b/src/simulation/elements/NEUT.cpp @@ -1,6 +1,6 @@ #include "simulation/ElementCommon.h" +#include "FIRE.h" -int Element_FIRE_update(UPDATE_FUNC_ARGS); static int update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); diff --git a/src/simulation/elements/NTCT.cpp b/src/simulation/elements/NTCT.cpp index 47c219eb7..3e51cd974 100644 --- a/src/simulation/elements/NTCT.cpp +++ b/src/simulation/elements/NTCT.cpp @@ -1,6 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_NTCT_update(UPDATE_FUNC_ARGS); +#include "NTCT.h" void Element::Element_NTCT() { diff --git a/src/simulation/elements/NTCT.h b/src/simulation/elements/NTCT.h new file mode 100644 index 000000000..0ceed8a5f --- /dev/null +++ b/src/simulation/elements/NTCT.h @@ -0,0 +1,4 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_NTCT_update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/PBCN.cpp b/src/simulation/elements/PBCN.cpp index d749c0531..21ad6930e 100644 --- a/src/simulation/elements/PBCN.cpp +++ b/src/simulation/elements/PBCN.cpp @@ -1,8 +1,8 @@ #include "simulation/ElementCommon.h" +#include "PCLN.h" static int update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); -bool Element_PCLN_ctypeDraw(CTYPEDRAW_FUNC_ARGS); void Element::Element_PBCN() { diff --git a/src/simulation/elements/PCLN.cpp b/src/simulation/elements/PCLN.cpp index ffe0c0744..c058379b7 100644 --- a/src/simulation/elements/PCLN.cpp +++ b/src/simulation/elements/PCLN.cpp @@ -1,8 +1,8 @@ #include "simulation/ElementCommon.h" +#include "PCLN.h" static int update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); -bool Element_PCLN_ctypeDraw(CTYPEDRAW_FUNC_ARGS); void Element::Element_PCLN() { diff --git a/src/simulation/elements/PCLN.h b/src/simulation/elements/PCLN.h new file mode 100644 index 000000000..0d526446f --- /dev/null +++ b/src/simulation/elements/PCLN.h @@ -0,0 +1,4 @@ +#pragma once +#include "simulation/ElementDefs.h" + +bool Element_PCLN_ctypeDraw(CTYPEDRAW_FUNC_ARGS); diff --git a/src/simulation/elements/PHOT.cpp b/src/simulation/elements/PHOT.cpp index fc7b21641..d0c13cb78 100644 --- a/src/simulation/elements/PHOT.cpp +++ b/src/simulation/elements/PHOT.cpp @@ -1,6 +1,7 @@ #include "simulation/ElementCommon.h" +#include "FIRE.h" +#include "FILT.h" -int Element_FIRE_update(UPDATE_FUNC_ARGS); static int update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); @@ -151,7 +152,6 @@ static void create(ELEMENT_CREATE_FUNC_ARGS) float a = sim->rng.between(0, 7) * 0.78540f; sim->parts[i].vx = 3.0f * cosf(a); sim->parts[i].vy = 3.0f * sinf(a); - int Element_FILT_interactWavelengths(Simulation *sim, Particle* cpart, int origWl); if (TYP(sim->pmap[y][x]) == PT_FILT) sim->parts[i].ctype = Element_FILT_interactWavelengths(sim, &sim->parts[ID(sim->pmap[y][x])], sim->parts[i].ctype); } diff --git a/src/simulation/elements/PIPE.cpp b/src/simulation/elements/PIPE.cpp index 51ef0d410..827ef1a8d 100644 --- a/src/simulation/elements/PIPE.cpp +++ b/src/simulation/elements/PIPE.cpp @@ -1,15 +1,11 @@ #include "simulation/ElementCommon.h" +#include "PIPE.h" +#include "SOAP.h" -extern const std::array, 8> Element_PIPE_offsets; -void Element_PIPE_transformPatchOffsets(Particle &part, const std::array &offsetMap); -int Element_PIPE_update(UPDATE_FUNC_ARGS); -int Element_PIPE_graphics(GRAPHICS_FUNC_ARGS); static void props_pipe_to_part(const Particle *pipe, Particle *part, bool STOR); -void Element_PIPE_transfer_pipe_to_part(Simulation * sim, Particle *pipe, Particle *part, bool STOR); static void transfer_part_to_pipe(Particle *part, Particle *pipe); static void transfer_pipe_to_pipe(Particle *src, Particle *dest, bool STOR); static void pushParticle(Simulation * sim, int i, int count, int original); -void Element_SOAP_detach(Simulation * sim, int i); void Element::Element_PIPE() { diff --git a/src/simulation/elements/PIPE.h b/src/simulation/elements/PIPE.h new file mode 100644 index 000000000..759c13675 --- /dev/null +++ b/src/simulation/elements/PIPE.h @@ -0,0 +1,11 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_PIPE_graphics(GRAPHICS_FUNC_ARGS); +void Element_PIPE_transfer_pipe_to_part(Simulation * sim, Particle *pipe, Particle *part, bool STOR); +void Element_PIPE_transformPatchOffsets(Particle &part, const std::array &offsetMap); +int Element_PIPE_update(UPDATE_FUNC_ARGS); +void Element_PPIP_flood_trigger(Simulation * sim, int x, int y, int sparkedBy); + +extern int Element_PPIP_ppip_changed; +extern const std::array, 8> Element_PIPE_offsets; diff --git a/src/simulation/elements/PLSM.cpp b/src/simulation/elements/PLSM.cpp index b737a8a0a..525442175 100644 --- a/src/simulation/elements/PLSM.cpp +++ b/src/simulation/elements/PLSM.cpp @@ -1,6 +1,6 @@ #include "simulation/ElementCommon.h" +#include "FIRE.h" -int Element_FIRE_update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); diff --git a/src/simulation/elements/PPIP.cpp b/src/simulation/elements/PPIP.cpp index e245dbbc7..1909fd6cb 100644 --- a/src/simulation/elements/PPIP.cpp +++ b/src/simulation/elements/PPIP.cpp @@ -1,7 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_PIPE_update(UPDATE_FUNC_ARGS); -int Element_PIPE_graphics(GRAPHICS_FUNC_ARGS); +#include "PIPE.h" void Element::Element_PPIP() { diff --git a/src/simulation/elements/PQRT.cpp b/src/simulation/elements/PQRT.cpp index 7a2cfc8db..ef3f8e106 100644 --- a/src/simulation/elements/PQRT.cpp +++ b/src/simulation/elements/PQRT.cpp @@ -1,7 +1,6 @@ #include "simulation/ElementCommon.h" +#include "QRTZ.h" -int Element_QRTZ_update(UPDATE_FUNC_ARGS); -int Element_QRTZ_graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); void Element::Element_PQRT() diff --git a/src/simulation/elements/PRTI.cpp b/src/simulation/elements/PRTI.cpp index b41a26e8a..fb8f80261 100644 --- a/src/simulation/elements/PRTI.cpp +++ b/src/simulation/elements/PRTI.cpp @@ -1,10 +1,10 @@ #include "simulation/ElementCommon.h" #include "simulation/orbitalparts.h" +#include "PIPE.h" +#include "SOAP.h" -void Element_PIPE_transfer_pipe_to_part(Simulation * sim, Particle *pipe, Particle *part, bool STOR); static int update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); -void Element_SOAP_detach(Simulation * sim, int i); void Element::Element_PRTI() { diff --git a/src/simulation/elements/QRTZ.cpp b/src/simulation/elements/QRTZ.cpp index 76f778eae..a0c4987b6 100644 --- a/src/simulation/elements/QRTZ.cpp +++ b/src/simulation/elements/QRTZ.cpp @@ -1,7 +1,6 @@ #include "simulation/ElementCommon.h" +#include "QRTZ.h" -int Element_QRTZ_update(UPDATE_FUNC_ARGS); -int Element_QRTZ_graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); void Element::Element_QRTZ() diff --git a/src/simulation/elements/QRTZ.h b/src/simulation/elements/QRTZ.h new file mode 100644 index 000000000..f08613b0b --- /dev/null +++ b/src/simulation/elements/QRTZ.h @@ -0,0 +1,5 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_QRTZ_graphics(GRAPHICS_FUNC_ARGS); +int Element_QRTZ_update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/RFGL.cpp b/src/simulation/elements/RFGL.cpp index ee8372368..16536c204 100644 --- a/src/simulation/elements/RFGL.cpp +++ b/src/simulation/elements/RFGL.cpp @@ -1,6 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_RFRG_update(UPDATE_FUNC_ARGS); +#include "RFRG.h" void Element::Element_RFGL() { diff --git a/src/simulation/elements/RFRG.cpp b/src/simulation/elements/RFRG.cpp index 0c728ef16..50936fbff 100644 --- a/src/simulation/elements/RFRG.cpp +++ b/src/simulation/elements/RFRG.cpp @@ -1,6 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_RFRG_update(UPDATE_FUNC_ARGS); +#include "RFRG.h" void Element::Element_RFRG() { diff --git a/src/simulation/elements/RFRG.h b/src/simulation/elements/RFRG.h new file mode 100644 index 000000000..828394ef6 --- /dev/null +++ b/src/simulation/elements/RFRG.h @@ -0,0 +1,4 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_RFRG_update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/SOAP.h b/src/simulation/elements/SOAP.h new file mode 100644 index 000000000..5c04f8b07 --- /dev/null +++ b/src/simulation/elements/SOAP.h @@ -0,0 +1,4 @@ +#pragma once +#include "simulation/ElementDefs.h" + +void Element_SOAP_detach(Simulation * sim, int i); diff --git a/src/simulation/elements/SPRK.cpp b/src/simulation/elements/SPRK.cpp index 3d2381422..bd75919ab 100644 --- a/src/simulation/elements/SPRK.cpp +++ b/src/simulation/elements/SPRK.cpp @@ -1,6 +1,9 @@ #include "simulation/ElementCommon.h" +#include "NTCT.h" +#include "PIPE.h" +#include "FIRE.h" +#include "ETRD.h" -int Element_FIRE_update(UPDATE_FUNC_ARGS); static int update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); @@ -83,13 +86,11 @@ static int update(UPDATE_FUNC_ARGS) return 1; case PT_NTCT: case PT_PTCT: - int Element_NTCT_update(UPDATE_FUNC_ARGS); Element_NTCT_update(UPDATE_FUNC_SUBCALL_ARGS); break; case PT_ETRD: if (parts[i].life==1) { - int Element_ETRD_nearestSparkablePart(Simulation *sim, int targetId); auto nearp = Element_ETRD_nearestSparkablePart(sim, i); if (nearp!=-1 && sim->parts_avg(i, nearp, PT_INSL)!=PT_INSL) { @@ -247,7 +248,6 @@ static int update(UPDATE_FUNC_ARGS) case PT_PPIP: if (parts[i].life == 3 && pavg!=PT_INSL) { - void Element_PPIP_flood_trigger(Simulation * sim, int x, int y, int sparkedBy); if (sender == PT_NSCN || sender == PT_PSCN || sender == PT_INST) Element_PPIP_flood_trigger(sim, x+rx, y+ry, sender); } diff --git a/src/simulation/elements/STKM.cpp b/src/simulation/elements/STKM.cpp index 79f79a786..5452c1591 100644 --- a/src/simulation/elements/STKM.cpp +++ b/src/simulation/elements/STKM.cpp @@ -1,14 +1,10 @@ #include "simulation/ElementCommon.h" +#include "STKM.h" static int update(UPDATE_FUNC_ARGS); -int Element_STKM_graphics(GRAPHICS_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); static bool createAllowed(ELEMENT_CREATE_ALLOWED_FUNC_ARGS); static void changeType(ELEMENT_CHANGETYPE_FUNC_ARGS); -void Element_STKM_init_legs(Simulation * sim, playerst *playerp, int i); -int Element_STKM_run_stickman(playerst *playerp, UPDATE_FUNC_ARGS); -void Element_STKM_set_element(Simulation *sim, playerst *playerp, int element); -void Element_STKM_interact(Simulation *sim, playerst *playerp, int i, int x, int y); void Element::Element_STKM() { diff --git a/src/simulation/elements/STKM.h b/src/simulation/elements/STKM.h new file mode 100644 index 000000000..69651309b --- /dev/null +++ b/src/simulation/elements/STKM.h @@ -0,0 +1,12 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_FIGH_Alloc(Simulation *sim); +bool Element_FIGH_CanAlloc(Simulation *sim); +void Element_FIGH_NewFighter(Simulation *sim, int fighterID, int i, int elem); +int Element_STKM_graphics(GRAPHICS_FUNC_ARGS); +void Element_STKM_init_legs(Simulation * sim, playerst *playerp, int i); +void Element_STKM_interact(Simulation *sim, playerst *playerp, int i, int x, int y); +int Element_STKM_run_stickman(playerst *playerp, UPDATE_FUNC_ARGS); +void Element_STKM_set_element(Simulation *sim, playerst *playerp, int element); +void Element_STKM_set_element(Simulation *sim, playerst *playerp, int element); diff --git a/src/simulation/elements/STKM2.cpp b/src/simulation/elements/STKM2.cpp index 2ee01e931..a399ca366 100644 --- a/src/simulation/elements/STKM2.cpp +++ b/src/simulation/elements/STKM2.cpp @@ -1,12 +1,10 @@ #include "simulation/ElementCommon.h" +#include "STKM.h" static int update(UPDATE_FUNC_ARGS); static void create(ELEMENT_CREATE_FUNC_ARGS); static bool createAllowed(ELEMENT_CREATE_ALLOWED_FUNC_ARGS); static void changeType(ELEMENT_CHANGETYPE_FUNC_ARGS); -int Element_STKM_graphics(GRAPHICS_FUNC_ARGS); -void Element_STKM_init_legs(Simulation * sim, playerst *playerp, int i); -int Element_STKM_run_stickman(playerst *playerp, UPDATE_FUNC_ARGS); void Element::Element_STKM2() { diff --git a/src/simulation/elements/STOR.cpp b/src/simulation/elements/STOR.cpp index b2b09b475..3e93a661c 100644 --- a/src/simulation/elements/STOR.cpp +++ b/src/simulation/elements/STOR.cpp @@ -1,6 +1,6 @@ #include "simulation/ElementCommon.h" +#include "SOAP.h" -void Element_SOAP_detach(Simulation * sim, int i); static int update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); static bool ctypeDraw(CTYPEDRAW_FUNC_ARGS); diff --git a/src/simulation/elements/VIBR.cpp b/src/simulation/elements/VIBR.cpp index c4005da1b..26959596c 100644 --- a/src/simulation/elements/VIBR.cpp +++ b/src/simulation/elements/VIBR.cpp @@ -1,7 +1,5 @@ #include "simulation/ElementCommon.h" - -int Element_VIBR_update(UPDATE_FUNC_ARGS); -int Element_VIBR_graphics(GRAPHICS_FUNC_ARGS); +#include "VIBR.h" void Element::Element_VIBR() { diff --git a/src/simulation/elements/VIBR.h b/src/simulation/elements/VIBR.h new file mode 100644 index 000000000..452e27784 --- /dev/null +++ b/src/simulation/elements/VIBR.h @@ -0,0 +1,5 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_VIBR_graphics(GRAPHICS_FUNC_ARGS); +int Element_VIBR_update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/VIRS.cpp b/src/simulation/elements/VIRS.cpp index bd185d225..3940b77bd 100644 --- a/src/simulation/elements/VIRS.cpp +++ b/src/simulation/elements/VIRS.cpp @@ -1,6 +1,6 @@ #include "simulation/ElementCommon.h" +#include "VIRS.h" -int Element_VIRS_update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); void Element::Element_VIRS() diff --git a/src/simulation/elements/VIRS.h b/src/simulation/elements/VIRS.h new file mode 100644 index 000000000..a5a664dcf --- /dev/null +++ b/src/simulation/elements/VIRS.h @@ -0,0 +1,4 @@ +#pragma once +#include "simulation/ElementDefs.h" + +int Element_VIRS_update(UPDATE_FUNC_ARGS); diff --git a/src/simulation/elements/VRSG.cpp b/src/simulation/elements/VRSG.cpp index 11a204af2..bfa13aa4e 100644 --- a/src/simulation/elements/VRSG.cpp +++ b/src/simulation/elements/VRSG.cpp @@ -1,6 +1,6 @@ #include "simulation/ElementCommon.h" +#include "VIRS.h" -int Element_VIRS_update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); void Element::Element_VRSG() diff --git a/src/simulation/elements/VRSS.cpp b/src/simulation/elements/VRSS.cpp index 6ba0fee9f..221508393 100644 --- a/src/simulation/elements/VRSS.cpp +++ b/src/simulation/elements/VRSS.cpp @@ -1,6 +1,6 @@ #include "simulation/ElementCommon.h" +#include "VIRS.h" -int Element_VIRS_update(UPDATE_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS); void Element::Element_VRSS()