[Scummvm-git-logs] scummvm master -> 4714d671880f7cd0af3788e2a62a976b1a8822bf

ccawley2011 ccawley2011 at gmail.com
Wed Apr 7 14:42:47 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
4714d67188 CRYO: Avoid packing structures containing objects or function pointers


Commit: 4714d671880f7cd0af3788e2a62a976b1a8822bf
    https://github.com/scummvm/scummvm/commit/4714d671880f7cd0af3788e2a62a976b1a8822bf
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2021-04-07T15:42:38+01:00

Commit Message:
CRYO: Avoid packing structures containing objects or function pointers

Changed paths:
    engines/cryo/defs.h
    engines/cryo/eden.cpp


diff --git a/engines/cryo/defs.h b/engines/cryo/defs.h
index 0f78fe8b12..3f371489c0 100644
--- a/engines/cryo/defs.h
+++ b/engines/cryo/defs.h
@@ -323,13 +323,6 @@ struct perso_t {
 	byte    _steps;      // current ticks
 };
 
-class EdenGame;
-
-struct phase_t {
-	int16 _id;
-	void (EdenGame::*disp)();
-};
-
 namespace ObjectFlags {
 enum ObjectFlags {
 	ofFlag1 = 1,
@@ -742,6 +735,8 @@ struct global_t {
 	byte   _var119;     // unused
 };
 
+#include "common/pack-end.h"
+
 struct PakHeaderItem {
 	Common::String _name; //[16];
 	int32 _size;
@@ -758,8 +753,6 @@ public:
 	PakHeaderItem* _files;
 };
 
-#include "common/pack-end.h"
-
 struct Citadel {
 	int16 _id;
 	int16 _bank[8];
diff --git a/engines/cryo/eden.cpp b/engines/cryo/eden.cpp
index 3204cb2913..212bfdc44a 100644
--- a/engines/cryo/eden.cpp
+++ b/engines/cryo/eden.cpp
@@ -3081,17 +3081,12 @@ void EdenGame::tyranDies(perso_t *perso) {
 }
 
 void EdenGame::specialObjects(perso_t *perso, char objid) {
-
-#include "common/pack-start.h"	// START STRUCT PACKING
-
 	struct SpecialObject {
 		int8  _characterType;
 		int8  _objectId;
 		void  (EdenGame::*dispFct)(perso_t *perso);
 	};
 
-#include "common/pack-end.h"	// END STRUCT PACKING
-
 	static SpecialObject kSpecialObjectActions[] = {
 		//    persoType, objectId, dispFct
 		{ PersonFlags::pfType8, Objects::obShroom, &EdenGame::specialMushroom },
@@ -5972,6 +5967,11 @@ void EdenGame::handleEloiReturn() {
 }
 //// phase.c
 void EdenGame::incPhase() {
+	struct phase_t {
+		int16 _id;
+		void (EdenGame::*disp)();
+	};
+
 	static phase_t phases[] = {
 		{ 65, &EdenGame::dialautoon },
 		{ 113, &EdenGame::phase113 },




More information about the Scummvm-git-logs mailing list