foxygit / doom Log in
commit 62097ae43e5f2b713fe8911c538fb7d28d6fb90b
Author:     Turo Lamminen <turol@iki.fi>
AuthorDate: Tue Nov 8 20:29:24 2022 +0200
Commit:     Turo Lamminen <turol@iki.fi>
CommitDate: Tue Nov 8 22:19:34 2022 +0200

    hexen: Improve thinkInfo_t writeFunc type correctness
---
 src/hexen/sv_save.c | 46 ++++++++++++++++++++++++++++++++++------------
 1 file changed, 34 insertions(+), 12 deletions(-)

diff --git a/src/hexen/sv_save.c b/src/hexen/sv_save.c
index a62ce17b..6938ef6c 100644
--- a/src/hexen/sv_save.c
+++ b/src/hexen/sv_save.c
@@ -72,7 +72,7 @@ typedef struct
 {
     thinkClass_t tClass;
     think_t thinkerFunc;
-    void (*writeFunc)();
+    void (*writeFunc)(thinker_t *thinker);
     void (*readFunc)();
     void (*restoreFunc) ();
     size_t size;
@@ -1166,8 +1166,10 @@ static void StreamIn_floormove_t(floormove_t *str)
     str->textureChange = SV_ReadByte();
 }

-static void StreamOut_floormove_t(floormove_t *str)
+static void StreamOut_floormove_t(thinker_t *thinker)
 {
+    floormove_t *str = (floormove_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1267,8 +1269,10 @@ static void StreamIn_plat_t(plat_t *str)
     str->type = SV_ReadLong();
 }

-static void StreamOut_plat_t(plat_t *str)
+static void StreamOut_plat_t(thinker_t *thinker)
 {
+    plat_t *str = (plat_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1345,8 +1349,10 @@ static void StreamIn_ceiling_t(ceiling_t *str)
     str->olddirection = SV_ReadLong();
 }

-static void StreamOut_ceiling_t(ceiling_t *str)
+static void StreamOut_ceiling_t(thinker_t *thinker)
 {
+    ceiling_t *str = (ceiling_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1411,8 +1417,10 @@ static void StreamIn_light_t(light_t *str)
     str->count = SV_ReadLong();
 }

-static void StreamOut_light_t(light_t *str)
+static void StreamOut_light_t(thinker_t *thinker)
 {
+    light_t *str = (light_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1473,8 +1481,10 @@ static void StreamIn_vldoor_t(vldoor_t *str)
     str->topcountdown = SV_ReadLong();
 }

-static void StreamOut_vldoor_t(vldoor_t *str)
+static void StreamOut_vldoor_t(thinker_t *thinker)
 {
+    vldoor_t *str = (vldoor_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1523,8 +1533,10 @@ static void StreamIn_phase_t(phase_t *str)
     str->base = SV_ReadLong();
 }

-static void StreamOut_phase_t(phase_t *str)
+static void StreamOut_phase_t(thinker_t *thinker)
 {
+    phase_t *str = (phase_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1596,8 +1608,10 @@ static void StreamIn_acs_t(acs_t *str)
     str->ip = SV_ReadLong();
 }

-static void StreamOut_acs_t(acs_t *str)
+static void StreamOut_acs_t(thinker_t *thinker)
 {
+    acs_t *str = (acs_t *) thinker;
+
     int i;

     // thinker_t thinker;
@@ -1676,8 +1690,10 @@ static void StreamIn_polyevent_t(polyevent_t *str)
     str->ySpeed = SV_ReadLong();
 }

-static void StreamOut_polyevent_t(polyevent_t *str)
+static void StreamOut_polyevent_t(thinker_t *thinker)
 {
+    polyevent_t *str = (polyevent_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1735,8 +1751,10 @@ static void StreamIn_pillar_t(pillar_t *str)
     str->crush = SV_ReadLong();
 }

-static void StreamOut_pillar_t(pillar_t *str)
+static void StreamOut_pillar_t(thinker_t *thinker)
 {
+    pillar_t *str = (pillar_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1804,8 +1822,10 @@ static void StreamIn_polydoor_t(polydoor_t *str)
     str->close = SV_ReadLong();
 }

-static void StreamOut_polydoor_t(polydoor_t *str)
+static void StreamOut_polydoor_t(thinker_t *thinker)
 {
+    polydoor_t *str = (polydoor_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);

@@ -1882,8 +1902,10 @@ static void StreamIn_floorWaggle_t(floorWaggle_t *str)
     str->state = SV_ReadLong();
 }

-static void StreamOut_floorWaggle_t(floorWaggle_t *str)
+static void StreamOut_floorWaggle_t(thinker_t *thinker)
 {
+    floorWaggle_t *str = (floorWaggle_t *) thinker;
+
     // thinker_t thinker;
     StreamOut_thinker_t(&str->thinker);