diff options
| -rw-r--r-- | engines/fullpipe/objects.h | 10 | ||||
| -rw-r--r-- | engines/fullpipe/stateloader.cpp | 14 | ||||
| -rw-r--r-- | engines/fullpipe/utils.cpp | 6 | 
3 files changed, 29 insertions, 1 deletions
| diff --git a/engines/fullpipe/objects.h b/engines/fullpipe/objects.h index 6b615ffcba..36f6996062 100644 --- a/engines/fullpipe/objects.h +++ b/engines/fullpipe/objects.h @@ -396,6 +396,16 @@ class CGameLoader {  	int _preloadId2;  }; +class CObjstateCommand : public CObject { +	ExCommand _cmd; +	char *_stringObj; +	int _value; + + public: +	CObjstateCommand(); +	virtual bool load(MfcArchive &file); +}; +  } // End of namespace Fullpipe  #endif /* FULLPIPE_OBJECTS_H */ diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp index 4e54aa3d5d..fe67bf9b7d 100644 --- a/engines/fullpipe/stateloader.cpp +++ b/engines/fullpipe/stateloader.cpp @@ -384,4 +384,18 @@ Message::Message() {  	_field_34 = 0;  } +CObjstateCommand::CObjstateCommand() { +	_value = 0; +} + +bool CObjstateCommand::load(MfcArchive &file) { +	_cmd.load(file); + +	_value = file.readUint32LE(); + +	_stringObj = file.readPascalString(); + +	return true; +} +  } // End of namespace Fullpipe diff --git a/engines/fullpipe/utils.cpp b/engines/fullpipe/utils.cpp index 36eb86c56e..1c324a020c 100644 --- a/engines/fullpipe/utils.cpp +++ b/engines/fullpipe/utils.cpp @@ -56,7 +56,8 @@ int MfcArchive::readCount() {  enum {  	kCInteraction = 0,  	kMessageQueue = 1, -	kExCommand = 2 +	kExCommand = 2, +	kCObjstateCommand = 3  };  const struct { @@ -66,6 +67,7 @@ const struct {  	{ "CInteraction",	kCInteraction },  	{ "MessageQueue",	kMessageQueue },  	{ "ExCommand",		kExCommand }, +	{ "CObjstateCommand", kCObjstateCommand },  	{ 0, 0 }  }; @@ -125,6 +127,8 @@ CObject *MfcArchive::parseClass() {  		return new MessageQueue();  	case kExCommand:  		return new ExCommand(); +	case kCObjstateCommand: +		return new CObjstateCommand();  	default:  		error("Unknown objectId: %d", objectId);  	} | 
