Initial commit

This commit is contained in:
2026-02-02 04:50:13 +01:00
commit 5b11698731
22592 changed files with 7677434 additions and 0 deletions

View File

@@ -0,0 +1,207 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/system.h"
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-utils.h"
#include "director/lingo/xtras/s/smacker.h"
/**************************************************
*
* USED IN:
* I Spy Spooky House
*
**************************************************/
/*
-- xtra Smacker
-- An Xtra for playing Smacker animations.
-- Version 3.1q
------------------------------------------
new object
*SmackQuickPlay string, integer, integer, string
*SmackQuickPlayTrans string, integer, integer, integer, integer, integer
SmackOpen object, string, integer, integer
SmackOpenTrans object, string, integer, integer, integer, integer, integer
SmackClose object
SmackPlay object
SmackPlayFrames object, integer, integer
SmackPlayLooped object, integer
SmackPlayNext object, integer
SmackRemapToSystemPalette object
SmackRemapToPalette object, string, string
SmackRemapToBitmap object, string, string
SmackSetWindowStyle object, string
SmackSetWindowTitle object, string
SmackSetTransBackground object, string, string, integer, integer, integer
SmackSetInterfaceKeys object, string
SmackSetBitmap object, string, string
SmackSetPosition object, integer, integer
SmackSetAlignment object, integer
SmackGoto object, integer
SmackGetFramesPerSecond object
SmackGetFrameNum object
SmackGetFrames object
SmackGetHeight object
SmackGetWidth object
SmackGetLastKey object
SmackGetMouseX object
SmackGetMouseY object
SmackGetMouseClickX object
SmackGetMouseClickY object
SmackHideVideo object, integer
SmackSetDisplayMode object, integer
SmackGetSummary object
SmackScreenMethod object, integer
*/
namespace Director {
const char *SmackerXtra::xlibName = "Smacker";
const XlibFileDesc SmackerXtra::fileNames[] = {
{ "smacker", nullptr },
{ "Smackx32", nullptr },
{ "SmackerXtra", nullptr },
{ nullptr, nullptr },
};
static MethodProto xlibMethods[] = {
{ "new", SmackerXtra::m_new, 0, 0, 500 },
{ "SmackOpen", SmackerXtra::m_SmackOpen, 3, 3, 500 },
{ "SmackOpenTrans", SmackerXtra::m_SmackOpenTrans, 6, 6, 500 },
{ "SmackClose", SmackerXtra::m_SmackClose, 0, 0, 500 },
{ "SmackPlay", SmackerXtra::m_SmackPlay, 0, 0, 500 },
{ "SmackPlayFrames", SmackerXtra::m_SmackPlayFrames, 2, 2, 500 },
{ "SmackPlayLooped", SmackerXtra::m_SmackPlayLooped, 1, 1, 500 },
{ "SmackPlayNext", SmackerXtra::m_SmackPlayNext, 1, 1, 500 },
{ "SmackRemapToSystemPalette", SmackerXtra::m_SmackRemapToSystemPalette, 0, 0, 500 },
{ "SmackRemapToPalette", SmackerXtra::m_SmackRemapToPalette, 2, 2, 500 },
{ "SmackRemapToBitmap", SmackerXtra::m_SmackRemapToBitmap, 2, 2, 500 },
{ "SmackSetWindowStyle", SmackerXtra::m_SmackSetWindowStyle, 1, 1, 500 },
{ "SmackSetWindowTitle", SmackerXtra::m_SmackSetWindowTitle, 1, 1, 500 },
{ "SmackSetTransBackground", SmackerXtra::m_SmackSetTransBackground, 5, 5, 500 },
{ "SmackSetInterfaceKeys", SmackerXtra::m_SmackSetInterfaceKeys, 1, 1, 500 },
{ "SmackSetBitmap", SmackerXtra::m_SmackSetBitmap, 2, 2, 500 },
{ "SmackSetPosition", SmackerXtra::m_SmackSetPosition, 2, 2, 500 },
{ "SmackSetAlignment", SmackerXtra::m_SmackSetAlignment, 1, 1, 500 },
{ "SmackGoto", SmackerXtra::m_SmackGoto, 1, 1, 500 },
{ "SmackGetFramesPerSecond", SmackerXtra::m_SmackGetFramesPerSecond, 0, 0, 500 },
{ "SmackGetFrameNum", SmackerXtra::m_SmackGetFrameNum, 0, 0, 500 },
{ "SmackGetFrames", SmackerXtra::m_SmackGetFrames, 0, 0, 500 },
{ "SmackGetHeight", SmackerXtra::m_SmackGetHeight, 0, 0, 500 },
{ "SmackGetWidth", SmackerXtra::m_SmackGetWidth, 0, 0, 500 },
{ "SmackGetLastKey", SmackerXtra::m_SmackGetLastKey, 0, 0, 500 },
{ "SmackGetMouseX", SmackerXtra::m_SmackGetMouseX, 0, 0, 500 },
{ "SmackGetMouseY", SmackerXtra::m_SmackGetMouseY, 0, 0, 500 },
{ "SmackGetMouseClickX", SmackerXtra::m_SmackGetMouseClickX, 0, 0, 500 },
{ "SmackGetMouseClickY", SmackerXtra::m_SmackGetMouseClickY, 0, 0, 500 },
{ "SmackHideVideo", SmackerXtra::m_SmackHideVideo, 1, 1, 500 },
{ "SmackSetDisplayMode", SmackerXtra::m_SmackSetDisplayMode, 1, 1, 500 },
{ "SmackGetSummary", SmackerXtra::m_SmackGetSummary, 0, 0, 500 },
{ "SmackScreenMethod", SmackerXtra::m_SmackScreenMethod, 1, 1, 500 },
{ nullptr, nullptr, 0, 0, 0 }
};
static BuiltinProto xlibBuiltins[] = {
{ "SmackQuickPlay", SmackerXtra::m_SmackQuickPlay, 4, 4, 500, HBLTIN },
{ "SmackQuickPlayTrans", SmackerXtra::m_SmackQuickPlayTrans, 6, 6, 500, HBLTIN },
{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
};
SmackerXtraObject::SmackerXtraObject(ObjectType ObjectType) :Object<SmackerXtraObject>("Smacker") {
_objType = ObjectType;
}
bool SmackerXtraObject::hasProp(const Common::String &propName) {
return (propName == "name");
}
Datum SmackerXtraObject::getProp(const Common::String &propName) {
if (propName == "name")
return Datum(SmackerXtra::xlibName);
warning("SmackerXtra::getProp: unknown property '%s'", propName.c_str());
return Datum();
}
void SmackerXtra::open(ObjectType type, const Common::Path &path) {
SmackerXtraObject::initMethods(xlibMethods);
SmackerXtraObject *xobj = new SmackerXtraObject(type);
if (type == kXtraObj) {
g_lingo->_openXtras.push_back(xlibName);
g_lingo->_openXtraObjects.push_back(xobj);
}
g_lingo->exposeXObject(xlibName, xobj);
g_lingo->initBuiltIns(xlibBuiltins);
}
void SmackerXtra::close(ObjectType type) {
SmackerXtraObject::cleanupMethods();
g_lingo->_globalvars[xlibName] = Datum();
}
void SmackerXtra::m_new(int nargs) {
g_lingo->printSTUBWithArglist("SmackerXtra::m_new", nargs);
g_lingo->dropStack(nargs);
g_lingo->push(g_lingo->_state->me);
}
XOBJSTUB(SmackerXtra::m_SmackQuickPlay, 0)
XOBJSTUB(SmackerXtra::m_SmackQuickPlayTrans, 0)
XOBJSTUB(SmackerXtra::m_SmackOpen, 0)
XOBJSTUB(SmackerXtra::m_SmackOpenTrans, 0)
XOBJSTUB(SmackerXtra::m_SmackClose, 0)
XOBJSTUB(SmackerXtra::m_SmackPlay, 0)
XOBJSTUB(SmackerXtra::m_SmackPlayFrames, 0)
XOBJSTUB(SmackerXtra::m_SmackPlayLooped, 0)
XOBJSTUB(SmackerXtra::m_SmackPlayNext, 0)
XOBJSTUB(SmackerXtra::m_SmackRemapToSystemPalette, 0)
XOBJSTUB(SmackerXtra::m_SmackRemapToPalette, 0)
XOBJSTUB(SmackerXtra::m_SmackRemapToBitmap, 0)
XOBJSTUB(SmackerXtra::m_SmackSetWindowStyle, 0)
XOBJSTUB(SmackerXtra::m_SmackSetWindowTitle, 0)
XOBJSTUB(SmackerXtra::m_SmackSetTransBackground, 0)
XOBJSTUB(SmackerXtra::m_SmackSetInterfaceKeys, 0)
XOBJSTUB(SmackerXtra::m_SmackSetBitmap, 0)
XOBJSTUB(SmackerXtra::m_SmackSetPosition, 0)
XOBJSTUB(SmackerXtra::m_SmackSetAlignment, 0)
XOBJSTUB(SmackerXtra::m_SmackGoto, 0)
XOBJSTUB(SmackerXtra::m_SmackGetFramesPerSecond, 0)
XOBJSTUB(SmackerXtra::m_SmackGetFrameNum, 0)
XOBJSTUB(SmackerXtra::m_SmackGetFrames, 0)
XOBJSTUB(SmackerXtra::m_SmackGetHeight, 0)
XOBJSTUB(SmackerXtra::m_SmackGetWidth, 0)
XOBJSTUB(SmackerXtra::m_SmackGetLastKey, 0)
XOBJSTUB(SmackerXtra::m_SmackGetMouseX, 0)
XOBJSTUB(SmackerXtra::m_SmackGetMouseY, 0)
XOBJSTUB(SmackerXtra::m_SmackGetMouseClickX, 0)
XOBJSTUB(SmackerXtra::m_SmackGetMouseClickY, 0)
XOBJSTUB(SmackerXtra::m_SmackHideVideo, 0)
XOBJSTUB(SmackerXtra::m_SmackSetDisplayMode, 0)
XOBJSTUB(SmackerXtra::m_SmackGetSummary, 0)
XOBJSTUB(SmackerXtra::m_SmackScreenMethod, 0)
}

View File

@@ -0,0 +1,83 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef DIRECTOR_LINGO_XTRAS_S_SMACKER_H
#define DIRECTOR_LINGO_XTRAS_S_SMACKER_H
namespace Director {
class SmackerXtraObject : public Object<SmackerXtraObject> {
public:
SmackerXtraObject(ObjectType objType);
bool hasProp(const Common::String &propName) override;
Datum getProp(const Common::String &propName) override;
};
namespace SmackerXtra {
extern const char *xlibName;
extern const XlibFileDesc fileNames[];
void open(ObjectType type, const Common::Path &path);
void close(ObjectType type);
void m_new(int nargs);
void m_SmackQuickPlay(int nargs);
void m_SmackQuickPlayTrans(int nargs);
void m_SmackOpen(int nargs);
void m_SmackOpenTrans(int nargs);
void m_SmackClose(int nargs);
void m_SmackPlay(int nargs);
void m_SmackPlayFrames(int nargs);
void m_SmackPlayLooped(int nargs);
void m_SmackPlayNext(int nargs);
void m_SmackRemapToSystemPalette(int nargs);
void m_SmackRemapToPalette(int nargs);
void m_SmackRemapToBitmap(int nargs);
void m_SmackSetWindowStyle(int nargs);
void m_SmackSetWindowTitle(int nargs);
void m_SmackSetTransBackground(int nargs);
void m_SmackSetInterfaceKeys(int nargs);
void m_SmackSetBitmap(int nargs);
void m_SmackSetPosition(int nargs);
void m_SmackSetAlignment(int nargs);
void m_SmackGoto(int nargs);
void m_SmackGetFramesPerSecond(int nargs);
void m_SmackGetFrameNum(int nargs);
void m_SmackGetFrames(int nargs);
void m_SmackGetHeight(int nargs);
void m_SmackGetWidth(int nargs);
void m_SmackGetLastKey(int nargs);
void m_SmackGetMouseX(int nargs);
void m_SmackGetMouseY(int nargs);
void m_SmackGetMouseClickX(int nargs);
void m_SmackGetMouseClickY(int nargs);
void m_SmackHideVideo(int nargs);
void m_SmackSetDisplayMode(int nargs);
void m_SmackGetSummary(int nargs);
void m_SmackScreenMethod(int nargs);
} // End of namespace SmackerXtra
} // End of namespace Director
#endif

View File

@@ -0,0 +1,122 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/system.h"
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-utils.h"
#include "director/lingo/xtras/s/staytoonedball.h"
/**************************************************
*
* USED IN:
* Stay Tooned
*
**************************************************/
/*
-- xtra Toon -- Fridge Fight 7/15/96 Programmer: Keith Laverty FunnyBone Interactive
new object me
* mInitRandom integer SomeThing -- feeds a number bewteen 1-100 to the Random# Array
* mInitGame integer NUM1,integer NUM2 -- Cast Size
* mOPERATEGAME integer NUM1, integer NUM2, integer NUM3, integer NUM4 -- feeds a number bewteen 1-100 to the Random# Array
* mGactions -- feeds a number bewteen 1-100 to the Random# Array
* mGetInfo integer NUM1, integer NUM2, integer NUM3 -- feeds a number bewteen 1-100 to the Random# Array
* mSetSize integer NUM1,integer NUM2,integer NUM3,integer NUM4,integer NUM5,integer NUM6 -- Cast Size
* mAddStuff integer NUM1,integer NUM2 -- feeds a number bewteen 1-100 to the Random# Array
*/
namespace Director {
const char *StayToonedBallXtra::xlibName = "Toon";
const XlibFileDesc StayToonedBallXtra::fileNames[] = {
{ "ball", "staytooned" },
{ "ball_mac", "staytooned" },
{ nullptr, nullptr },
};
static MethodProto xlibMethods[] = {
{ "new", StayToonedBallXtra::m_new, 0, 0, 500 },
{ nullptr, nullptr, 0, 0, 0 }
};
static BuiltinProto xlibBuiltins[] = {
{ "mInitRandom", StayToonedBallXtra::m_mInitRandom, 1, 1, 500, HBLTIN },
{ "mInitGame", StayToonedBallXtra::m_mInitGame, 2, 2, 500, HBLTIN },
{ "mOPERATEGAME", StayToonedBallXtra::m_mOPERATEGAME, 4, 4, 500, HBLTIN },
{ "mGactions", StayToonedBallXtra::m_mGactions, 0, 0, 500, HBLTIN },
{ "mGetInfo", StayToonedBallXtra::m_mGetInfo, 3, 3, 500, HBLTIN },
{ "mSetSize", StayToonedBallXtra::m_mSetSize, 6, 6, 500, HBLTIN },
{ "mAddStuff", StayToonedBallXtra::m_mAddStuff, 2, 2, 500, HBLTIN },
{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
};
StayToonedBallXtraObject::StayToonedBallXtraObject(ObjectType ObjectType) :Object<StayToonedBallXtraObject>("StayToonedBall") {
_objType = ObjectType;
}
bool StayToonedBallXtraObject::hasProp(const Common::String &propName) {
return (propName == "name");
}
Datum StayToonedBallXtraObject::getProp(const Common::String &propName) {
if (propName == "name")
return Datum(StayToonedBallXtra::xlibName);
warning("StayToonedBallXtra::getProp: unknown property '%s'", propName.c_str());
return Datum();
}
void StayToonedBallXtra::open(ObjectType type, const Common::Path &path) {
StayToonedBallXtraObject::initMethods(xlibMethods);
StayToonedBallXtraObject *xobj = new StayToonedBallXtraObject(type);
if (type == kXtraObj) {
g_lingo->_openXtras.push_back(xlibName);
g_lingo->_openXtraObjects.push_back(xobj);
}
g_lingo->exposeXObject(xlibName, xobj);
g_lingo->initBuiltIns(xlibBuiltins);
}
void StayToonedBallXtra::close(ObjectType type) {
StayToonedBallXtraObject::cleanupMethods();
g_lingo->_globalvars[xlibName] = Datum();
}
void StayToonedBallXtra::m_new(int nargs) {
g_lingo->printSTUBWithArglist("StayToonedBallXtra::m_new", nargs);
g_lingo->dropStack(nargs);
g_lingo->push(g_lingo->_state->me);
}
XOBJSTUB(StayToonedBallXtra::m_mInitRandom, 0)
XOBJSTUB(StayToonedBallXtra::m_mInitGame, 0)
XOBJSTUB(StayToonedBallXtra::m_mOPERATEGAME, 0)
XOBJSTUB(StayToonedBallXtra::m_mGactions, 0)
XOBJSTUB(StayToonedBallXtra::m_mGetInfo, 0)
XOBJSTUB(StayToonedBallXtra::m_mSetSize, 0)
XOBJSTUB(StayToonedBallXtra::m_mAddStuff, 0)
}

View File

@@ -0,0 +1,56 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef DIRECTOR_LINGO_XTRAS_S_STAYTOONEDBALL_H
#define DIRECTOR_LINGO_XTRAS_S_STAYTOONEDBALL_H
namespace Director {
class StayToonedBallXtraObject : public Object<StayToonedBallXtraObject> {
public:
StayToonedBallXtraObject(ObjectType objType);
bool hasProp(const Common::String &propName) override;
Datum getProp(const Common::String &propName) override;
};
namespace StayToonedBallXtra {
extern const char *xlibName;
extern const XlibFileDesc fileNames[];
void open(ObjectType type, const Common::Path &path);
void close(ObjectType type);
void m_new(int nargs);
void m_mInitRandom(int nargs);
void m_mInitGame(int nargs);
void m_mOPERATEGAME(int nargs);
void m_mGactions(int nargs);
void m_mGetInfo(int nargs);
void m_mSetSize(int nargs);
void m_mAddStuff(int nargs);
} // End of namespace StayToonedBallXtra
} // End of namespace Director
#endif

View File

@@ -0,0 +1,128 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/system.h"
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-utils.h"
#include "director/lingo/xtras/s/staytoonedglop.h"
/**************************************************
*
* USED IN:
* Stay Tooned
*
**************************************************/
/*
-- xtra Glop -- Fridge Fight 7/15/96 Programmer: Keith Laverty FunnyBone Interactive
new object me
* mInitRandom integer SomeThing -- feeds a number bewteen 1-100 to the Random# Array
* mInitGame integer NUM1,integer NUM2,integer NUM3,integer NUM4 -- Cast Size
* mInitLevel integer NUM1 -- feeds a number bewteen 1-100 to the Random# Array
* mInitDoctor -- feeds a number bewteen 1-100 to the Random# Array
* mOPERATEGAME integer NUM1, integer NUM2, integer NUM3 -- feeds a number bewteen 1-100 to the Random# Array
* mReadData integer NUM1, integer NUM2, integer NUM3 -- feeds a number bewteen 1-100 to the Random# Array
* mGactions -- feeds a number bewteen 1-100 to the Random# Array
* mPassArray integer NUM1, integer NUM2, integer NUM3 -- feeds a number bewteen 1-100 to the Random# Array
* mPassCastSize integer NUM1, integer NUM2, integer NUM3, integer NUM4, integer NUM5 -- feeds a number bewteen 1-100 to the Random# Array
*/
namespace Director {
const char *StayToonedGlopXtra::xlibName = "Glop";
const XlibFileDesc StayToonedGlopXtra::fileNames[] = {
{ "glop", "staytooned" },
{ "glop_mac", "staytooned" },
{ nullptr, nullptr },
};
static MethodProto xlibMethods[] = {
{ "new", StayToonedGlopXtra::m_new, 0, 0, 500 },
{ nullptr, nullptr, 0, 0, 0 }
};
static BuiltinProto xlibBuiltins[] = {
{ "mInitRandom", StayToonedGlopXtra::m_mInitRandom, 1, 1, 500, HBLTIN },
{ "mInitGame", StayToonedGlopXtra::m_mInitGame, 4, 4, 500, HBLTIN },
{ "mInitLevel", StayToonedGlopXtra::m_mInitLevel, 1, 1, 500, HBLTIN },
{ "mInitDoctor", StayToonedGlopXtra::m_mInitDoctor, 0, 0, 500, HBLTIN },
{ "mOPERATEGAME", StayToonedGlopXtra::m_mOPERATEGAME, 3, 3, 500, HBLTIN },
{ "mReadData", StayToonedGlopXtra::m_mReadData, 3, 3, 500, HBLTIN },
{ "mGactions", StayToonedGlopXtra::m_mGactions, 0, 0, 500, HBLTIN },
{ "mPassArray", StayToonedGlopXtra::m_mPassArray, 3, 3, 500, HBLTIN },
{ "mPassCastSize", StayToonedGlopXtra::m_mPassCastSize, 5, 5, 500, HBLTIN },
{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
};
StayToonedGlopXtraObject::StayToonedGlopXtraObject(ObjectType ObjectType) :Object<StayToonedGlopXtraObject>("StayToonedGlop") {
_objType = ObjectType;
}
bool StayToonedGlopXtraObject::hasProp(const Common::String &propName) {
return (propName == "name");
}
Datum StayToonedGlopXtraObject::getProp(const Common::String &propName) {
if (propName == "name")
return Datum(StayToonedGlopXtra::xlibName);
warning("StayToonedGlopXtra::getProp: unknown property '%s'", propName.c_str());
return Datum();
}
void StayToonedGlopXtra::open(ObjectType type, const Common::Path &path) {
StayToonedGlopXtraObject::initMethods(xlibMethods);
StayToonedGlopXtraObject *xobj = new StayToonedGlopXtraObject(type);
if (type == kXtraObj) {
g_lingo->_openXtras.push_back(xlibName);
g_lingo->_openXtraObjects.push_back(xobj);
}
g_lingo->exposeXObject(xlibName, xobj);
g_lingo->initBuiltIns(xlibBuiltins);
}
void StayToonedGlopXtra::close(ObjectType type) {
StayToonedGlopXtraObject::cleanupMethods();
g_lingo->_globalvars[xlibName] = Datum();
}
void StayToonedGlopXtra::m_new(int nargs) {
g_lingo->printSTUBWithArglist("StayToonedGlopXtra::m_new", nargs);
g_lingo->dropStack(nargs);
g_lingo->push(g_lingo->_state->me);
}
XOBJSTUB(StayToonedGlopXtra::m_mInitRandom, 0)
XOBJSTUB(StayToonedGlopXtra::m_mInitGame, 0)
XOBJSTUB(StayToonedGlopXtra::m_mInitLevel, 0)
XOBJSTUB(StayToonedGlopXtra::m_mInitDoctor, 0)
XOBJSTUB(StayToonedGlopXtra::m_mOPERATEGAME, 0)
XOBJSTUB(StayToonedGlopXtra::m_mReadData, 0)
XOBJSTUB(StayToonedGlopXtra::m_mGactions, 0)
XOBJSTUB(StayToonedGlopXtra::m_mPassArray, 0)
XOBJSTUB(StayToonedGlopXtra::m_mPassCastSize, 0)
}

View File

@@ -0,0 +1,58 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef DIRECTOR_LINGO_XTRAS_S_STAYTOONEDGLOP_H
#define DIRECTOR_LINGO_XTRAS_S_STAYTOONEDGLOP_H
namespace Director {
class StayToonedGlopXtraObject : public Object<StayToonedGlopXtraObject> {
public:
StayToonedGlopXtraObject(ObjectType objType);
bool hasProp(const Common::String &propName) override;
Datum getProp(const Common::String &propName) override;
};
namespace StayToonedGlopXtra {
extern const char *xlibName;
extern const XlibFileDesc fileNames[];
void open(ObjectType type, const Common::Path &path);
void close(ObjectType type);
void m_new(int nargs);
void m_mInitRandom(int nargs);
void m_mInitGame(int nargs);
void m_mInitLevel(int nargs);
void m_mInitDoctor(int nargs);
void m_mOPERATEGAME(int nargs);
void m_mReadData(int nargs);
void m_mGactions(int nargs);
void m_mPassArray(int nargs);
void m_mPassCastSize(int nargs);
} // End of namespace StayToonedGlopXtra
} // End of namespace Director
#endif

View File

@@ -0,0 +1,125 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/system.h"
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-utils.h"
#include "director/lingo/xtras/s/staytoonedhall.h"
/**************************************************
*
* USED IN:
* Stay Tooned
*
**************************************************/
/*
-- xtra Hall -- Remote Combat Game 7/8/96 Programmer: Keith Laverty
new object me
* mInitRandom integer SomeThing -- feeds a number bewteen 1-100 to the Random# Array
* mInitGame integer NUM1, integer NUM2, integer NUM3-- feeds a number bewteen 1-100 to the Random# Array
* mInitLevel integer NUM1-- feeds a number bewteen 1-100 to the Random# Array
* mOPERATEGAME integer NUM1, integer NUM2, integer NUM3-- feeds a number bewteen 1-100 to the Random# Array
* mReadData integer NUM1, integer NUM2, integer NUM3-- feeds a number bewteen 1-100 to the Random# Array
* mGactions -- feeds a number bewteen 1-100 to the Random# Array
* mPassArray integer NUM1, integer NUM2, integer NUM3-- feeds a number bewteen 1-100 to the Random# Array
* mPassCastSize integer NUM1, integer NUM2, integer NUM3, integer NUM4, integer NUM5-- feeds a number bewteen 1-100 to the Random# Array
*/
namespace Director {
const char *StayToonedHallXtra::xlibName = "Hall";
const XlibFileDesc StayToonedHallXtra::fileNames[] = {
{ "hall", "staytooned" },
{ "hall_mac", "staytooned" },
{ nullptr, nullptr },
};
static MethodProto xlibMethods[] = {
{ "new", StayToonedHallXtra::m_new, 0, 0, 500 },
{ nullptr, nullptr, 0, 0, 0 }
};
static BuiltinProto xlibBuiltins[] = {
{ "mInitRandom", StayToonedHallXtra::m_mInitRandom, 1, 1, 500, HBLTIN },
{ "mInitGame", StayToonedHallXtra::m_mInitGame, 3, 3, 500, HBLTIN },
{ "mInitLevel", StayToonedHallXtra::m_mInitLevel, 1, 1, 500, HBLTIN },
{ "mOPERATEGAME", StayToonedHallXtra::m_mOPERATEGAME, 3, 3, 500, HBLTIN },
{ "mReadData", StayToonedHallXtra::m_mReadData, 3, 3, 500, HBLTIN },
{ "mGactions", StayToonedHallXtra::m_mGactions, 0, 0, 500, HBLTIN },
{ "mPassArray", StayToonedHallXtra::m_mPassArray, 3, 3, 500, HBLTIN },
{ "mPassCastSize", StayToonedHallXtra::m_mPassCastSize, 5, 5, 500, HBLTIN },
{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
};
StayToonedHallXtraObject::StayToonedHallXtraObject(ObjectType ObjectType) :Object<StayToonedHallXtraObject>("StayToonedHall") {
_objType = ObjectType;
}
bool StayToonedHallXtraObject::hasProp(const Common::String &propName) {
return (propName == "name");
}
Datum StayToonedHallXtraObject::getProp(const Common::String &propName) {
if (propName == "name")
return Datum(StayToonedHallXtra::xlibName);
warning("StayToonedHallXtra::getProp: unknown property '%s'", propName.c_str());
return Datum();
}
void StayToonedHallXtra::open(ObjectType type, const Common::Path &path) {
StayToonedHallXtraObject::initMethods(xlibMethods);
StayToonedHallXtraObject *xobj = new StayToonedHallXtraObject(type);
if (type == kXtraObj) {
g_lingo->_openXtras.push_back(xlibName);
g_lingo->_openXtraObjects.push_back(xobj);
}
g_lingo->exposeXObject(xlibName, xobj);
g_lingo->initBuiltIns(xlibBuiltins);
}
void StayToonedHallXtra::close(ObjectType type) {
StayToonedHallXtraObject::cleanupMethods();
g_lingo->_globalvars[xlibName] = Datum();
}
void StayToonedHallXtra::m_new(int nargs) {
g_lingo->printSTUBWithArglist("StayToonedHallXtra::m_new", nargs);
g_lingo->dropStack(nargs);
g_lingo->push(g_lingo->_state->me);
}
XOBJSTUB(StayToonedHallXtra::m_mInitRandom, 0)
XOBJSTUB(StayToonedHallXtra::m_mInitGame, 0)
XOBJSTUB(StayToonedHallXtra::m_mInitLevel, 0)
XOBJSTUB(StayToonedHallXtra::m_mOPERATEGAME, 0)
XOBJSTUB(StayToonedHallXtra::m_mReadData, 0)
XOBJSTUB(StayToonedHallXtra::m_mGactions, 0)
XOBJSTUB(StayToonedHallXtra::m_mPassArray, 0)
XOBJSTUB(StayToonedHallXtra::m_mPassCastSize, 0)
}

View File

@@ -0,0 +1,57 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef DIRECTOR_LINGO_XTRAS_S_STAYTOONEDHALL_H
#define DIRECTOR_LINGO_XTRAS_S_STAYTOONEDHALL_H
namespace Director {
class StayToonedHallXtraObject : public Object<StayToonedHallXtraObject> {
public:
StayToonedHallXtraObject(ObjectType objType);
bool hasProp(const Common::String &propName) override;
Datum getProp(const Common::String &propName) override;
};
namespace StayToonedHallXtra {
extern const char *xlibName;
extern const XlibFileDesc fileNames[];
void open(ObjectType type, const Common::Path &path);
void close(ObjectType type);
void m_new(int nargs);
void m_mInitRandom(int nargs);
void m_mInitGame(int nargs);
void m_mInitLevel(int nargs);
void m_mOPERATEGAME(int nargs);
void m_mReadData(int nargs);
void m_mGactions(int nargs);
void m_mPassArray(int nargs);
void m_mPassCastSize(int nargs);
} // End of namespace StayToonedHallXtra
} // End of namespace Director
#endif

View File

@@ -0,0 +1,122 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/system.h"
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-utils.h"
#include "director/lingo/xtras/s/staytoonedhigh.h"
/**************************************************
*
* USED IN:
* Stay Tooned
*
**************************************************/
/*
-- xtra Toon -- Fridge Fight 7/15/96 Programmer: Keith Laverty FunnyBone Interactive
new object me
* mInitRandom integer SomeThing -- feeds a number bewteen 1-100 to the Random# Array
* mInitGame integer NUM1,integer NUM2,integer NUM3,integer NUM4,integer NUM5 -- Cast Size
* mInitLevel integer NUM1 -- feeds a number bewteen 1-100 to the Random# Array
* mInitBall -- feeds a number bewteen 1-100 to the Random# Array
* mOPERATEGAME integer NUM1, integer NUM2 -- feeds a number bewteen 1-100 to the Random# Array
* mReturnData integer NUM1, integer NUM2, integer NUM3 -- feeds a number bewteen 1-100 to the Random# Array
* mGactions -- feeds a number bewteen 1-100 to the Random# Array
*/
namespace Director {
const char *StayToonedHighXtra::xlibName = "Toon";
const XlibFileDesc StayToonedHighXtra::fileNames[] = {
{ "high", nullptr },
{ "high_mac", nullptr },
{ nullptr, nullptr },
};
static MethodProto xlibMethods[] = {
{ "new", StayToonedHighXtra::m_new, 0, 0, 500 },
{ nullptr, nullptr, 0, 0, 0 }
};
static BuiltinProto xlibBuiltins[] = {
{ "mInitRandom", StayToonedHighXtra::m_mInitRandom, 1, 1, 500, HBLTIN },
{ "mInitGame", StayToonedHighXtra::m_mInitGame, 5, 5, 500, HBLTIN },
{ "mInitLevel", StayToonedHighXtra::m_mInitLevel, 1, 1, 500, HBLTIN },
{ "mInitBall", StayToonedHighXtra::m_mInitBall, 0, 0, 500, HBLTIN },
{ "mOPERATEGAME", StayToonedHighXtra::m_mOPERATEGAME, 2, 2, 500, HBLTIN },
{ "mReturnData", StayToonedHighXtra::m_mReturnData, 3, 3, 500, HBLTIN },
{ "mGactions", StayToonedHighXtra::m_mGactions, 0, 0, 500, HBLTIN },
{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
};
StayToonedHighXtraObject::StayToonedHighXtraObject(ObjectType ObjectType) :Object<StayToonedHighXtraObject>("StayToonedHigh") {
_objType = ObjectType;
}
bool StayToonedHighXtraObject::hasProp(const Common::String &propName) {
return (propName == "name");
}
Datum StayToonedHighXtraObject::getProp(const Common::String &propName) {
if (propName == "name")
return Datum(StayToonedHighXtra::xlibName);
warning("StayToonedHighXtra::getProp: unknown property '%s'", propName.c_str());
return Datum();
}
void StayToonedHighXtra::open(ObjectType type, const Common::Path &path) {
StayToonedHighXtraObject::initMethods(xlibMethods);
StayToonedHighXtraObject *xobj = new StayToonedHighXtraObject(type);
if (type == kXtraObj) {
g_lingo->_openXtras.push_back(xlibName);
g_lingo->_openXtraObjects.push_back(xobj);
}
g_lingo->exposeXObject(xlibName, xobj);
g_lingo->initBuiltIns(xlibBuiltins);
}
void StayToonedHighXtra::close(ObjectType type) {
StayToonedHighXtraObject::cleanupMethods();
g_lingo->_globalvars[xlibName] = Datum();
}
void StayToonedHighXtra::m_new(int nargs) {
g_lingo->printSTUBWithArglist("StayToonedHighXtra::m_new", nargs);
g_lingo->dropStack(nargs);
g_lingo->push(g_lingo->_state->me);
}
XOBJSTUB(StayToonedHighXtra::m_mInitRandom, 0)
XOBJSTUB(StayToonedHighXtra::m_mInitGame, 0)
XOBJSTUB(StayToonedHighXtra::m_mInitLevel, 0)
XOBJSTUB(StayToonedHighXtra::m_mInitBall, 0)
XOBJSTUB(StayToonedHighXtra::m_mOPERATEGAME, 0)
XOBJSTUB(StayToonedHighXtra::m_mReturnData, 0)
XOBJSTUB(StayToonedHighXtra::m_mGactions, 0)
}

View File

@@ -0,0 +1,56 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef DIRECTOR_LINGO_XTRAS_S_STAYTOONEDHIGH_H
#define DIRECTOR_LINGO_XTRAS_S_STAYTOONEDHIGH_H
namespace Director {
class StayToonedHighXtraObject : public Object<StayToonedHighXtraObject> {
public:
StayToonedHighXtraObject(ObjectType objType);
bool hasProp(const Common::String &propName) override;
Datum getProp(const Common::String &propName) override;
};
namespace StayToonedHighXtra {
extern const char *xlibName;
extern const XlibFileDesc fileNames[];
void open(ObjectType type, const Common::Path &path);
void close(ObjectType type);
void m_new(int nargs);
void m_mInitRandom(int nargs);
void m_mInitGame(int nargs);
void m_mInitLevel(int nargs);
void m_mInitBall(int nargs);
void m_mOPERATEGAME(int nargs);
void m_mReturnData(int nargs);
void m_mGactions(int nargs);
} // End of namespace StayToonedHighXtra
} // End of namespace Director
#endif

View File

@@ -0,0 +1,125 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/system.h"
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-utils.h"
#include "director/lingo/xtras/s/staytoonedober.h"
/**************************************************
*
* USED IN:
* Stay Tooned
*
**************************************************/
/*
-- xtra Toon -- Fridge Fight 7/15/96 Programmer: Keith Laverty FunnyBone Interactive
new object me
* mInitRandom integer SomeThing -- feeds a number bewteen 1-100 to the Random# Array
* mBuildTable integer SlotNum,integer XOff,integer YOff,integer XSize,integer YSize -- Cast Size
* mInitGame integer NumOfGuns,integer NumOfNukes -- feeds a number bewteen 1-100 to the Random# Array
* mInitGun -- feeds a number bewteen 1-100 to the Random# Array
* mOPERATEGAME integer NUM1, integer NUM2, integer NUM3,integer NUM4 -- feeds a number bewteen 1-100 to the Random# Array
* mReturnData integer NUM1, integer NUM2 -- feeds a number bewteen 1-100 to the Random# Array
* mGactions -- feeds a number bewteen 1-100 to the Random# Array
* mCastStarts integer NUM1 -- feeds a number bewteen 1-100 to the Random# Array
*/
namespace Director {
const char *StayToonedOberXtra::xlibName = "Toon";
const XlibFileDesc StayToonedOberXtra::fileNames[] = {
{ "ober", "staytooned" },
{ "ober_mac", "staytooned" },
{ nullptr, nullptr },
};
static MethodProto xlibMethods[] = {
{ "new", StayToonedOberXtra::m_new, 0, 0, 500 },
{ nullptr, nullptr, 0, 0, 0 }
};
static BuiltinProto xlibBuiltins[] = {
{ "mInitRandom", StayToonedOberXtra::m_mInitRandom, 1, 1, 500, HBLTIN },
{ "mBuildTable", StayToonedOberXtra::m_mBuildTable, 5, 5, 500, HBLTIN },
{ "mInitGame", StayToonedOberXtra::m_mInitGame, 2, 2, 500, HBLTIN },
{ "mInitGun", StayToonedOberXtra::m_mInitGun, 0, 0, 500, HBLTIN },
{ "mOPERATEGAME", StayToonedOberXtra::m_mOPERATEGAME, 4, 4, 500, HBLTIN },
{ "mReturnData", StayToonedOberXtra::m_mReturnData, 2, 2, 500, HBLTIN },
{ "mGactions", StayToonedOberXtra::m_mGactions, 0, 0, 500, HBLTIN },
{ "mCastStarts", StayToonedOberXtra::m_mCastStarts, 1, 1, 500, HBLTIN },
{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
};
StayToonedOberXtraObject::StayToonedOberXtraObject(ObjectType ObjectType) :Object<StayToonedOberXtraObject>("StayToonedOber") {
_objType = ObjectType;
}
bool StayToonedOberXtraObject::hasProp(const Common::String &propName) {
return (propName == "name");
}
Datum StayToonedOberXtraObject::getProp(const Common::String &propName) {
if (propName == "name")
return Datum(StayToonedOberXtra::xlibName);
warning("StayToonedOberXtra::getProp: unknown property '%s'", propName.c_str());
return Datum();
}
void StayToonedOberXtra::open(ObjectType type, const Common::Path &path) {
StayToonedOberXtraObject::initMethods(xlibMethods);
StayToonedOberXtraObject *xobj = new StayToonedOberXtraObject(type);
if (type == kXtraObj) {
g_lingo->_openXtras.push_back(xlibName);
g_lingo->_openXtraObjects.push_back(xobj);
}
g_lingo->exposeXObject(xlibName, xobj);
g_lingo->initBuiltIns(xlibBuiltins);
}
void StayToonedOberXtra::close(ObjectType type) {
StayToonedOberXtraObject::cleanupMethods();
g_lingo->_globalvars[xlibName] = Datum();
}
void StayToonedOberXtra::m_new(int nargs) {
g_lingo->printSTUBWithArglist("StayToonedOberXtra::m_new", nargs);
g_lingo->dropStack(nargs);
g_lingo->push(g_lingo->_state->me);
}
XOBJSTUB(StayToonedOberXtra::m_mInitRandom, 0)
XOBJSTUB(StayToonedOberXtra::m_mBuildTable, 0)
XOBJSTUB(StayToonedOberXtra::m_mInitGame, 0)
XOBJSTUB(StayToonedOberXtra::m_mInitGun, 0)
XOBJSTUB(StayToonedOberXtra::m_mOPERATEGAME, 0)
XOBJSTUB(StayToonedOberXtra::m_mReturnData, 0)
XOBJSTUB(StayToonedOberXtra::m_mGactions, 0)
XOBJSTUB(StayToonedOberXtra::m_mCastStarts, 0)
}

View File

@@ -0,0 +1,57 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef DIRECTOR_LINGO_XTRAS_S_STAYTOONEDOBER_H
#define DIRECTOR_LINGO_XTRAS_S_STAYTOONEDOBER_H
namespace Director {
class StayToonedOberXtraObject : public Object<StayToonedOberXtraObject> {
public:
StayToonedOberXtraObject(ObjectType objType);
bool hasProp(const Common::String &propName) override;
Datum getProp(const Common::String &propName) override;
};
namespace StayToonedOberXtra {
extern const char *xlibName;
extern const XlibFileDesc fileNames[];
void open(ObjectType type, const Common::Path &path);
void close(ObjectType type);
void m_new(int nargs);
void m_mInitRandom(int nargs);
void m_mBuildTable(int nargs);
void m_mInitGame(int nargs);
void m_mInitGun(int nargs);
void m_mOPERATEGAME(int nargs);
void m_mReturnData(int nargs);
void m_mGactions(int nargs);
void m_mCastStarts(int nargs);
} // End of namespace StayToonedOberXtra
} // End of namespace Director
#endif

View File

@@ -0,0 +1,125 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/system.h"
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-utils.h"
#include "director/lingo/xtras/s/staytoonedtoon.h"
/**************************************************
*
* USED IN:
* Stay Tooned
*
**************************************************/
/*
-- xtra ToonBoy -- ToonBoy 7/15/96 Programmer: Keith Laverty FunnyBone Interactive
new object me
* mInitRandom integer SomeThing -- feeds a number bewteen 1-100 to the Random# Array
* mInitGame -- feeds a number bewteen 1-100 to the Random# Array
* mInitScoop -- feeds a number bewteen 1-100 to the Random# Array
* mOPERATEGAME integer NUM1 -- feeds a number bewteen 1-100 to the Random# Array
* mReadData integer NUM1, integer NUM2, integer NUM3-- feeds a number bewteen 1-100 to the Random# Array
* mGactions -- feeds a number bewteen 1-100 to the Random# Array
* mPassArray integer NUM1, integer NUM2, integer NUM3-- feeds a number bewteen 1-100 to the Random# Array
* mPassCastSize integer NUM1, integer NUM2, integer NUM3, integer NUM4, integer NUM5-- feeds a number bewteen 1-100 to the Random# Array
*/
namespace Director {
const char *StayToonedToonXtra::xlibName = "ToonBoy";
const XlibFileDesc StayToonedToonXtra::fileNames[] = {
{ "toon", "staytooned" },
{ "toon_mac", "staytooned" },
{ nullptr, nullptr },
};
static MethodProto xlibMethods[] = {
{ "new", StayToonedToonXtra::m_new, 0, 0, 500 },
{ nullptr, nullptr, 0, 0, 0 }
};
static BuiltinProto xlibBuiltins[] = {
{ "mInitRandom", StayToonedToonXtra::m_mInitRandom, 1, 1, 500, HBLTIN },
{ "mInitGame", StayToonedToonXtra::m_mInitGame, 0, 0, 500, HBLTIN },
{ "mInitScoop", StayToonedToonXtra::m_mInitScoop, 0, 0, 500, HBLTIN },
{ "mOPERATEGAME", StayToonedToonXtra::m_mOPERATEGAME, 1, 1, 500, HBLTIN },
{ "mReadData", StayToonedToonXtra::m_mReadData, 3, 3, 500, HBLTIN },
{ "mGactions", StayToonedToonXtra::m_mGactions, 0, 0, 500, HBLTIN },
{ "mPassArray", StayToonedToonXtra::m_mPassArray, 3, 3, 500, HBLTIN },
{ "mPassCastSize", StayToonedToonXtra::m_mPassCastSize, 5, 5, 500, HBLTIN },
{ nullptr, nullptr, 0, 0, 0, VOIDSYM }
};
StayToonedToonXtraObject::StayToonedToonXtraObject(ObjectType ObjectType) :Object<StayToonedToonXtraObject>("StayToonedToon") {
_objType = ObjectType;
}
bool StayToonedToonXtraObject::hasProp(const Common::String &propName) {
return (propName == "name");
}
Datum StayToonedToonXtraObject::getProp(const Common::String &propName) {
if (propName == "name")
return Datum(StayToonedToonXtra::xlibName);
warning("StayToonedToonXtra::getProp: unknown property '%s'", propName.c_str());
return Datum();
}
void StayToonedToonXtra::open(ObjectType type, const Common::Path &path) {
StayToonedToonXtraObject::initMethods(xlibMethods);
StayToonedToonXtraObject *xobj = new StayToonedToonXtraObject(type);
if (type == kXtraObj) {
g_lingo->_openXtras.push_back(xlibName);
g_lingo->_openXtraObjects.push_back(xobj);
}
g_lingo->exposeXObject(xlibName, xobj);
g_lingo->initBuiltIns(xlibBuiltins);
}
void StayToonedToonXtra::close(ObjectType type) {
StayToonedToonXtraObject::cleanupMethods();
g_lingo->_globalvars[xlibName] = Datum();
}
void StayToonedToonXtra::m_new(int nargs) {
g_lingo->printSTUBWithArglist("StayToonedToonXtra::m_new", nargs);
g_lingo->dropStack(nargs);
g_lingo->push(g_lingo->_state->me);
}
XOBJSTUB(StayToonedToonXtra::m_mInitRandom, 0)
XOBJSTUB(StayToonedToonXtra::m_mInitGame, 0)
XOBJSTUB(StayToonedToonXtra::m_mInitScoop, 0)
XOBJSTUB(StayToonedToonXtra::m_mOPERATEGAME, 0)
XOBJSTUB(StayToonedToonXtra::m_mReadData, 0)
XOBJSTUB(StayToonedToonXtra::m_mGactions, 0)
XOBJSTUB(StayToonedToonXtra::m_mPassArray, 0)
XOBJSTUB(StayToonedToonXtra::m_mPassCastSize, 0)
}

View File

@@ -0,0 +1,57 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef DIRECTOR_LINGO_XTRAS_S_STAYTOONEDTOON_H
#define DIRECTOR_LINGO_XTRAS_S_STAYTOONEDTOON_H
namespace Director {
class StayToonedToonXtraObject : public Object<StayToonedToonXtraObject> {
public:
StayToonedToonXtraObject(ObjectType objType);
bool hasProp(const Common::String &propName) override;
Datum getProp(const Common::String &propName) override;
};
namespace StayToonedToonXtra {
extern const char *xlibName;
extern const XlibFileDesc fileNames[];
void open(ObjectType type, const Common::Path &path);
void close(ObjectType type);
void m_new(int nargs);
void m_mInitRandom(int nargs);
void m_mInitGame(int nargs);
void m_mInitScoop(int nargs);
void m_mOPERATEGAME(int nargs);
void m_mReadData(int nargs);
void m_mGactions(int nargs);
void m_mPassArray(int nargs);
void m_mPassCastSize(int nargs);
} // End of namespace StayToonedToonXtra
} // End of namespace Director
#endif