From 1cf1373fb2782e6beffcecee3e3db97319583161 Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 18 Jan 2014 18:02:02 +0000 Subject: [PATCH] Use array<> for control_center_triggers members --- common/main/cntrlcen.h | 4 ++-- similar/main/cntrlcen.cpp | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/common/main/cntrlcen.h b/common/main/cntrlcen.h index a126d98a4..02072f23f 100644 --- a/common/main/cntrlcen.h +++ b/common/main/cntrlcen.h @@ -38,8 +38,8 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. struct control_center_triggers { short num_links; - short seg[MAX_CONTROLCEN_LINKS]; - short side[MAX_CONTROLCEN_LINKS]; + array seg; + array side; }; extern control_center_triggers ControlCenterTriggers; diff --git a/similar/main/cntrlcen.cpp b/similar/main/cntrlcen.cpp index 59f388d9d..170629e90 100644 --- a/similar/main/cntrlcen.cpp +++ b/similar/main/cntrlcen.cpp @@ -42,6 +42,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "object.h" #include "robot.h" #include "vclip.h" +#include "physfs-serial.h" #include "fireball.h" #include "endlevel.h" #include "state.h" @@ -555,24 +556,19 @@ static void control_center_triggers_swap(control_center_triggers *cct, int swap) cct->side[i] = SWAPSHORT(cct->side[i]); } +DEFINE_SERIAL_UDT_TO_MESSAGE(control_center_triggers, cct, (cct.num_links, cct.seg, cct.side)); +ASSERT_SERIAL_UDT_MESSAGE_SIZE(control_center_triggers, 42); + /* * reads n control_center_triggers structs from a PHYSFS_file and swaps if specified */ void control_center_triggers_read_swap(control_center_triggers *cct, int swap, PHYSFS_file *fp) { - cct->num_links = PHYSFSX_readShort(fp); - for (unsigned j = 0; j < sizeof(cct->seg) / sizeof(cct->seg[0]); j++) - cct->seg[j] = PHYSFSX_readShort(fp); - for (unsigned j = 0; j < sizeof(cct->side) / sizeof(cct->side[0]); j++) - cct->side[j] = PHYSFSX_readShort(fp); + PHYSFSX_serialize_read(fp, *cct); control_center_triggers_swap(cct, swap); } void control_center_triggers_write(const control_center_triggers *cct, PHYSFS_file *fp) { - PHYSFS_writeSLE16(fp, cct->num_links); - for (unsigned j = 0; j < MAX_CONTROLCEN_LINKS; j++) - PHYSFS_writeSLE16(fp, cct->seg[j]); - for (unsigned j = 0; j < MAX_CONTROLCEN_LINKS; j++) - PHYSFS_writeSLE16(fp, cct->side[j]); + PHYSFSX_serialize_write(fp, *cct); }