Difference between revisions of "Temp"
From SCI Wiki
Jump to navigationJump to search(54 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | <!-- {{SCI2}}<br /> | ||
+ | {{SCI3}}<br /> | ||
+ | {{SCI32}} | ||
+ | --> | ||
+ | |||
+ | <div class="CodeBlockHeader">Code:</div> | ||
+ | <syntaxhighlight lang="sci"> | ||
+ | /****************************************************************************** | ||
+ | SCI Template Game VER 1.1a | ||
+ | By Brian Provinciano | ||
+ | ****************************************************************************** | ||
+ | main.sc | ||
+ | Contains the game's main instance and inventory items. | ||
+ | ******************************************************************************/ | ||
+ | (include "sci.sh") | ||
+ | (include "game.sh") | ||
+ | /******************************************************************************/ | ||
+ | (script MAIN_SCRIPT) | ||
+ | /******************************************************************************/ | ||
+ | (use "controls") | ||
+ | (use "sound") | ||
+ | (use "syswindow") | ||
+ | (use "cycle") | ||
+ | (use "game") | ||
+ | (use "inv") | ||
+ | (use "user") | ||
+ | (use "menubar") | ||
+ | (use "feature") | ||
+ | (use "obj") | ||
+ | (use "disposeload") | ||
+ | /****************************************************************************** | ||
+ | * These are the global variables. You can access them from any script as long | ||
+ | * as it "use"es this script | ||
+ | ******************************************************************************/ | ||
+ | (local | ||
+ | gEgo // points to the ego's class | ||
+ | gGame /* points to the game instance */ | ||
+ | gRoom /* points to the current room instance */ | ||
+ | gSpeed /* the game speed (delay each interpreter cycle) */ | ||
+ | gQuitGame = FALSE /* if set to TRUE, the game will exit */ | ||
+ | |||
+ | gCast /* points to the cast class (list of actors) */ | ||
+ | gRegions /* points to the regions class (list of regions) */ | ||
+ | gLocales /* points to the locales class (list of locales) */ | ||
+ | gTimers /* points to the timers class (list of timers) */ | ||
+ | gSounds /* points to the sounds class (list of sounds) */ | ||
+ | gInv /* points to the inventory class */ | ||
+ | gAddToPics /* points to the add to pics class */ | ||
+ | gFeatures /* points to the add to features class */ | ||
+ | gSFeatures /* points to the add to sfeatures class */ | ||
+ | |||
+ | gRoomNumberExit /* room number exit */ | ||
+ | gPreviousRoomNumber /* the number of the previous room */ | ||
+ | gRoomNumber /* the number of the current room */ | ||
+ | gDebugOnExit = FALSE /* enter debug mode on room exit */ | ||
+ | |||
+ | gScore = 0 /* the game score */ | ||
+ | gMaxScore = 0 /* the maximum game score */ | ||
+ | gOldScore /* previous score */ | ||
+ | |||
+ | gCurrentCursor /* the number of the current cursor */ | ||
+ | gNormalCursor = 999 /* the number of the normal cursor (ie. arrow) */ | ||
+ | gLoadingCursor = 997 /* the number of the loading cursor (ie. hand) */ | ||
+ | |||
+ | gDefaultFont = 1 /* the number of the default font */ | ||
+ | gSaveRestoreFont = 0 /* the number of the font for the save/restore dialogs*/ | ||
+ | gDeadFont = 0 /* the number of the font for the dialog when ego dies */ | ||
+ | |||
+ | gUserEvent /* points to the user's event object */ | ||
+ | gPrintDlg /* points to the current Print() window */ | ||
+ | gVolume /* the sound volume */ | ||
+ | gVersion /* the version string */ | ||
+ | gSaveDirPtr /* points to the save directory string */ | ||
+ | gCheckAniWait /* the checkAni delay */ | ||
+ | gSetRegions /* a flag -- see User:doit() */ | ||
+ | |||
+ | gPicAngle /* the room's pic angle */ | ||
+ | gOverlay = -1 /* whether to overlay the picture when drawing */ | ||
+ | gDefaultPicAni /* the default pic animation */ | ||
+ | gDefaultPalette /* the default palette to use for the pictures (0-3) */ | ||
+ | gCastMotionCue /* if set, the cast's motionCue() is called */ | ||
+ | |||
+ | gTheWindow /* points to the window class */ | ||
+ | gWndColor /* the colour of the game's windows foreground (ie. text) */ | ||
+ | gWndBack /* the colour of the game's windows background */ | ||
+ | |||
+ | gOldPort /* the previous port */ | ||
+ | |||
+ | gEgoView /* ego's current view number */ | ||
+ | |||
+ | /* hh:mm:ss | gTimeHours:gTimeMinutes:gTimeSeconds */ | ||
+ | /* the time elapsed since the game started */ | ||
+ | gTimeSeconds /* the seconds */ | ||
+ | gTimeMinutes /* the minutes */ | ||
+ | gTimeHours /* the hours */ | ||
+ | |||
+ | gCurrentTime /* the current time in seconds */ | ||
+ | |||
+ | gTheMusic /* points to the music class */ | ||
+ | gTheSoundFX /* points to the sound fx class */ | ||
+ | gProgramControl /* states whether the program has control or the user */ | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance public Hello World of Game | ||
+ | (properties) | ||
+ | (method (init) | ||
+ | // Set up the base window | ||
+ | = gTheWindow theWindow | ||
+ | = gWndColor clBLACK | ||
+ | = gWndBack clWHITE | ||
+ | (send gTheWindow: | ||
+ | color(gWndColor) | ||
+ | back(gWndBack) | ||
+ | ) | ||
+ | |||
+ | // Initialize | ||
+ | (super:init()) | ||
+ | |||
+ | /****************************** | ||
+ | * Set your game version here * | ||
+ | ******************************/ | ||
+ | = gVersion "1.0" | ||
+ | |||
+ | // General initialization stuff | ||
+ | = gVolume 15 | ||
+ | DoSound(sndVOLUME gVolume) | ||
+ | |||
+ | (SL:code(statusCode)) | ||
+ | (TheMenuBar:init()) | ||
+ | |||
+ | (scoreSound: | ||
+ | owner(self) | ||
+ | init() | ||
+ | ) | ||
+ | = gTheMusic theMusic | ||
+ | (send gTheMusic: | ||
+ | owner(self) | ||
+ | init() | ||
+ | ) | ||
+ | = gTheSoundFX theSoundFX | ||
+ | (send gTheSoundFX: | ||
+ | owner(self) | ||
+ | init() | ||
+ | ) | ||
+ | |||
+ | = gEgo ego | ||
+ | (User: | ||
+ | alterEgo(gEgo) | ||
+ | blocks(0) | ||
+ | y(150) | ||
+ | ) | ||
+ | |||
+ | Load(rsFONT gDeadFont) | ||
+ | Load(rsFONT gDefaultFont) | ||
+ | Load(rsFONT gSaveRestoreFont) | ||
+ | |||
+ | Load(rsCURSOR gNormalCursor) | ||
+ | Load(rsCURSOR gLoadingCursor) | ||
+ | |||
+ | (if(HaveMouse()) | ||
+ | (send gGame:setCursor(gNormalCursor SET_CURSOR_VISIBLE)) | ||
+ | )(else | ||
+ | (send gGame:setCursor(gNormalCursor SET_CURSOR_VISIBLE 304 174)) | ||
+ | ) | ||
+ | |||
+ | /************************************************* | ||
+ | * Initialize the inventory with it's items here * | ||
+ | *************************************************/ | ||
+ | (Inv: | ||
+ | add( | ||
+ | {Nothing} | ||
+ | {Test Object} | ||
+ | ) | ||
+ | ) | ||
+ | |||
+ | // Start the room | ||
+ | (if(GameIsRestarting()) | ||
+ | (self:newRoom(INITROOMS_SCRIPT)) | ||
+ | )(else | ||
+ | (self:newRoom(TITLESCREEN_SCRIPT)) | ||
+ | ) | ||
+ | ) | ||
+ | (method (doit) | ||
+ | (super:doit()) | ||
+ | (if(gProgramControl) | ||
+ | (User: | ||
+ | canControl(FALSE) | ||
+ | canInput(FALSE) | ||
+ | ) | ||
+ | ) | ||
+ | (if(<> gCurrentTime (= gCurrentTime GetTime(gtTIME_OF_DAY))) | ||
+ | (if(>= ++gTimeSeconds 60) | ||
+ | = gTimeSeconds 0 | ||
+ | ++ gTimeMinutes | ||
+ | (if(>= gTimeMinutes 60) | ||
+ | = gTimeMinutes 0 | ||
+ | ++ gTimeHours | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | (if(> gOldScore gScore) | ||
+ | = gOldScore gScore | ||
+ | (SL:doit()) | ||
+ | ) | ||
+ | (if(< gOldScore gScore) | ||
+ | = gOldScore gScore | ||
+ | (SL:doit()) | ||
+ | ) | ||
+ | ) | ||
+ | (method (replay) | ||
+ | (TheMenuBar:draw()) | ||
+ | (SL:enable()) | ||
+ | |||
+ | (if(DoSound(sndSET_SOUND)) | ||
+ | SetMenu(MENU_TOGGLESOUND #text "Turn Off") | ||
+ | )(else | ||
+ | SetMenu(MENU_TOGGLESOUND #text "Turn On") | ||
+ | ) | ||
+ | (super:replay()) | ||
+ | ) | ||
+ | (method (newRoom roomNum picAni) | ||
+ | DisposePrintDlg() | ||
+ | Load(rsFONT gDeadFont) | ||
+ | Load(rsFONT gDefaultFont) | ||
+ | Load(rsFONT gSaveRestoreFont) | ||
+ | |||
+ | Load(rsCURSOR gNormalCursor) | ||
+ | Load(rsCURSOR gLoadingCursor) | ||
+ | |||
+ | (super:newRoom(roomNum)) | ||
+ | (if(< paramTotal 2) | ||
+ | = gDefaultPicAni Random(0 5) | ||
+ | )(else | ||
+ | = gDefaultPicAni picAni | ||
+ | ) | ||
+ | ) | ||
+ | (method (startRoom roomNum) | ||
+ | DisposeLoad( | ||
+ | NULL | ||
+ | FILEIO_SCRIPT JUMP_SCRIPT EXTRA_SCRIPT WINDOW_SCRIPT | ||
+ | TIMER_SCRIPT FOLLOW_SCRIPT REV_SCRIPT DCICON_SCRIPT | ||
+ | DOOR_SCRIPT AUTODOOR_SCRIPT WANDER_SCRIPT AVOID_SCRIPT | ||
+ | ) | ||
+ | DisposeScript(DISPOSELOAD_SCRIPT) | ||
+ | (if(gDebugOnExit) | ||
+ | = gDebugOnExit FALSE | ||
+ | SetDebug() | ||
+ | ) | ||
+ | (send gTheSoundFX: | ||
+ | stop() | ||
+ | number(1) | ||
+ | ) | ||
+ | (super:startRoom(roomNum)) | ||
+ | (if(== gTheSoundFX 11) | ||
+ | (send gEgo:baseSetter(NormalBase)) | ||
+ | ) | ||
+ | ) | ||
+ | (method (changeScore addScore) | ||
+ | = gScore + gScore addScore | ||
+ | (if(> addScore 0) | ||
+ | (scoreSound:playMaybe()) | ||
+ | ) | ||
+ | ) | ||
+ | (method (handleEvent pEvent) | ||
+ | |||
+ | ////////////////////////////////////////////////////////////////////// | ||
+ | // ** This is debug functionality // | ||
+ | // ** Comment it out if you don't want people to cheat in your game // | ||
+ | ////////////////////////////////////////////////////////////////////// | ||
+ | (if (== evKEYBOARD (send pEvent:type)) | ||
+ | // Check for ALT keys | ||
+ | (switch (send pEvent:message) | ||
+ | (case $2f00 // alt-v | ||
+ | Show(1) // Show visual | ||
+ | ) | ||
+ | (case $2e00 // alt-c | ||
+ | Show(4) // Show control | ||
+ | ) | ||
+ | (case $1900 // alt-p | ||
+ | Show(2) // Show priority | ||
+ | ) | ||
+ | (case $3200 // alt-m | ||
+ | // Show memory usage | ||
+ | ShowFree() | ||
+ | FormatPrint( | ||
+ | "Free Heap: %u Bytes\nLargest ptr: %u Bytes\nFreeHunk: %u KBytes\nLargest hunk: %u Bytes" | ||
+ | MemoryInfo(miFREEHEAP) | ||
+ | MemoryInfo(miLARGESTPTR) | ||
+ | (>> MemoryInfo(miFREEHUNK) 6) | ||
+ | MemoryInfo(miLARGESTHUNK) | ||
+ | ) | ||
+ | ) | ||
+ | (case $1400 // alt-t | ||
+ | // teleport to room | ||
+ | (send gRoom:newRoom(GetNumber("Which Room Number?"))) | ||
+ | ) | ||
+ | (case $1700 // alt-i | ||
+ | // get inventory | ||
+ | (send gEgo:get(GetNumber("Which inventory#?"))) | ||
+ | ) | ||
+ | (case $1f00 // alt-s | ||
+ | // Show cast | ||
+ | (send gCast:eachElementDo(#showSelf)) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | //////////////////////////////////////////////////// | ||
+ | // End of debug functionality // | ||
+ | //////////////////////////////////////////////////// | ||
+ | |||
+ | (super:handleEvent(pEvent)) | ||
+ | (if((<> (send pEvent:type) evSAID) or (send pEvent:claimed)) | ||
+ | return(TRUE) | ||
+ | ) | ||
+ | |||
+ | /***********************************/ | ||
+ | /* Add global said statements here */ | ||
+ | /***********************************/ | ||
+ | |||
+ | (if(Said('hi')) | ||
+ | Print("Well hello to you too!") | ||
+ | ) | ||
+ | |||
+ | |||
+ | return(FALSE) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (class Iitem of InvI | ||
+ | (properties | ||
+ | said 0 | ||
+ | description 0 | ||
+ | owner 0 | ||
+ | view 0 | ||
+ | loop 0 | ||
+ | cel 0 | ||
+ | script 0 | ||
+ | ) | ||
+ | (method (showSelf) | ||
+ | Print( | ||
+ | description | ||
+ | #title objectName | ||
+ | #icon view loop cel // Changed from: #icon view 0 0 | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance statusCode of Code | ||
+ | (properties) | ||
+ | (method (doit param1) | ||
+ | Format(param1 " Score: %d of %-3d Template Game " gScore gMaxScore) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance ego of Ego | ||
+ | (properties | ||
+ | y 1111 | ||
+ | x 0 | ||
+ | z 0 | ||
+ | heading 0 | ||
+ | yStep 2 | ||
+ | view 0 | ||
+ | loop 0 | ||
+ | cel 0 | ||
+ | priority 0 | ||
+ | underBits 0 | ||
+ | signal $2000 | ||
+ | nsTop 0 | ||
+ | nsLeft 0 | ||
+ | nsBottom 0 | ||
+ | nsRight 0 | ||
+ | lsTop 0 | ||
+ | lsLeft 0 | ||
+ | lsBottom 0 | ||
+ | lsRight 0 | ||
+ | brTop 0 | ||
+ | brLeft 0 | ||
+ | brBottom 0 | ||
+ | brRight 0 | ||
+ | cycleSpeed 0 | ||
+ | script 0 | ||
+ | cycler 0 | ||
+ | timer 0 | ||
+ | illegalBits $8000 | ||
+ | xLast 0 | ||
+ | yLast 0 | ||
+ | xStep 3 | ||
+ | moveSpeed 0 | ||
+ | blocks 0 | ||
+ | baseSetter 0 | ||
+ | mover 0 | ||
+ | looper 0 | ||
+ | viewer 0 | ||
+ | avoider 0 | ||
+ | edgeHit 0 | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance scoreSound of Sound | ||
+ | (properties | ||
+ | state 0 | ||
+ | number SCORE_SOUND | ||
+ | priority 10 | ||
+ | loop 1 | ||
+ | handle 0 | ||
+ | signal 0 | ||
+ | prevSignal 0 | ||
+ | client 0 | ||
+ | owner 0 | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance theMusic of Sound | ||
+ | (properties | ||
+ | state 0 | ||
+ | number 1 | ||
+ | priority 0 | ||
+ | loop 1 | ||
+ | handle 0 | ||
+ | signal 0 | ||
+ | prevSignal 0 | ||
+ | client 0 | ||
+ | owner 0 | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance theSoundFX of Sound | ||
+ | (properties | ||
+ | state 0 | ||
+ | number 1 | ||
+ | priority 5 | ||
+ | loop 1 | ||
+ | handle 0 | ||
+ | signal 0 | ||
+ | prevSignal 0 | ||
+ | client 0 | ||
+ | owner 0 | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance theWindow of SysWindow | ||
+ | (properties) | ||
+ | (method (open) | ||
+ | (if(< Graph(grGET_COLOURS) 9) | ||
+ | (if( (< color 7) or (== color 8) ) | ||
+ | = color 0 | ||
+ | = back 15 | ||
+ | )(else | ||
+ | = color 15 | ||
+ | = back 0 | ||
+ | ) | ||
+ | ) | ||
+ | (super:open()) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance NormalBase of Code | ||
+ | (properties) | ||
+ | (method (doit) | ||
+ | (var temp0) | ||
+ | (if(== gRoomNumberExit 253) | ||
+ | = temp0 22 | ||
+ | )(else | ||
+ | = temp0 10 | ||
+ | ) | ||
+ | (send gEgo: | ||
+ | brBottom( | ||
+ | (+ (send gEgo:y) 1) | ||
+ | ) | ||
+ | ) | ||
+ | (send gEgo: | ||
+ | brTop( | ||
+ | (- (send gEgo:brBottom) (send gEgo:yStep)) | ||
+ | ) | ||
+ | ) | ||
+ | (send gEgo: | ||
+ | brLeft( | ||
+ | (- (send gEgo:x) temp0) | ||
+ | ) | ||
+ | ) | ||
+ | (send gEgo: | ||
+ | brRight( | ||
+ | (+ (send gEgo:x) temp0) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | |||
+ | /****************************************************************************** | ||
+ | * THE PUBLIC PROCEDURES | ||
+ | ******************************************************************************/ | ||
+ | (procedure public (SetUpEgo theLoop theView) | ||
+ | PlayerControl() | ||
+ | (send gEgo:edgeHit(EDGE_NONE)) | ||
+ | (switch(paramTotal) | ||
+ | (case 0 | ||
+ | SetUpActor(gEgo (send gEgo:loop) gEgoView) | ||
+ | ) | ||
+ | (case 1 | ||
+ | SetUpActor(gEgo theLoop gEgoView) | ||
+ | ) | ||
+ | (case 2 | ||
+ | SetUpActor(gEgo theLoop theView) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (SetUpActor pActor theLoop theView) | ||
+ | (if(> paramTotal 1) | ||
+ | (send pActor:loop(theLoop)) | ||
+ | ) | ||
+ | (if(> paramTotal 2) | ||
+ | (send pActor:view(theView)) | ||
+ | ) | ||
+ | (send pActor: | ||
+ | setLoop(-1) | ||
+ | setPri(-1) | ||
+ | setStep(3 2) | ||
+ | setCycle(Walk) | ||
+ | illegalBits($8000) | ||
+ | cycleSpeed(0) | ||
+ | moveSpeed(0) | ||
+ | ignoreActors(0) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (ProgramControl) | ||
+ | (User: | ||
+ | canControl(FALSE) | ||
+ | canInput(FALSE) | ||
+ | ) | ||
+ | (send gEgo:setMotion(NULL)) | ||
+ | = gProgramControl TRUE | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PlayerControl) | ||
+ | (User: | ||
+ | canControl(TRUE) | ||
+ | canInput(TRUE) | ||
+ | ) | ||
+ | (send gEgo:setMotion(NULL)) | ||
+ | = gProgramControl FALSE | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (DisposePrintDlg) | ||
+ | (if(gPrintDlg) | ||
+ | (send gPrintDlg:dispose()) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PrintOK) | ||
+ | Print("O.K.") | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PrintItIs) | ||
+ | Print("It is.") | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PrintYouAre) | ||
+ | Print("You are.") | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PrintGoodIdea) | ||
+ | Print("Good idea. You might try that again later.") | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PrintNotCloseEnough) | ||
+ | Print("You're not close enough.") | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PrintAlreadyTookIt) | ||
+ | Print("You already took it.") | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PrintDontHaveIt) | ||
+ | Print("You don't have it.") | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (PrintCantDoThat mem) | ||
+ | (if(> MemoryInfo(miLARGESTPTR) mem) | ||
+ | return(TRUE) | ||
+ | )(else | ||
+ | Print("You can't do that here; at least, not now.") | ||
+ | return(FALSE) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (AddViewToPic pView) | ||
+ | (var hView) | ||
+ | (if(pView) | ||
+ | = hView (View:new()) | ||
+ | (send hView: | ||
+ | view(send pView:view) | ||
+ | loop(send pView:loop) | ||
+ | cel(send pView:cel) | ||
+ | priority(send pView:priority) | ||
+ | posn( (send pView:x) (send pView:y) ) | ||
+ | addToPic() | ||
+ | ) | ||
+ | (send pView: | ||
+ | posn( (send pView:x) (+ 1000 (send pView:y)) ) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (procedure public (SetInvIOwner index owner) | ||
+ | (var hInvI) | ||
+ | = hInvI (send gInv:at(index)) | ||
+ | (if(< paramTotal 2) | ||
+ | (send hInvI:owner(gRoomNumberExit)) | ||
+ | )(else | ||
+ | (send hInvI:owner(owner)) | ||
+ | ) | ||
+ | ) | ||
+ | |||
+ | |||
+ | /****************************************************************************** | ||
+ | * THE INVENTORY ITEMS * | ||
+ | ******************************************************************************/ | ||
+ | (instance Nothing of Iitem | ||
+ | (properties) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | (instance {Test Object} of Iitem | ||
+ | (properties | ||
+ | said 'object' | ||
+ | description | ||
+ | "This is a test object in your inventory." | ||
+ | owner 0 | ||
+ | view 800 | ||
+ | loop 0 | ||
+ | cel 0 | ||
+ | script 0 | ||
+ | ) | ||
+ | ) | ||
+ | /******************************************************************************/ | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
== Sierra After-market == | == Sierra After-market == | ||
Line 17: | Line 671: | ||
|[[Freddy Pharkas: Frontier Pharmacist|Freddy Pharkas]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GUSDRV|GUSDRV]]||align="center"| ||align="center"| | |[[Freddy Pharkas: Frontier Pharmacist|Freddy Pharkas]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GUSDRV|GUSDRV]]||align="center"| ||align="center"| | ||
|- | |- | ||
− | |[[Gabriel Knight: Sins of the Fathers|Gabriel Knight 1]]||align="center"| ||align="center"| | + | |[[Gabriel Knight: Sins of the Fathers|Gabriel Knight 1]]||align="center"| ||align="center"|[[Updated Sound Drivers#AWESOL|AWESOL]]||align="center"|[[Updated Sound Drivers#DACBLAST|DACBLAST]]||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GUS32|GUS32]]||align="center"| ||align="center"|[[Updated Sound Drivers#SBSCI32|SBSCI32]] |
|- | |- | ||
|[[Gabriel Knight: Sins of the Fathers|Gabriel Knight 1 CD]]||align="center"| ||align="center"|[[Updated Sound Drivers#AWESOL|AWESOL]]||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GENMIDI|GENMIDI]]||align="center"| ||align="center"|[[Updated Sound Drivers#GUS32|GUS32]]||align="center"| ||align="center"|[[Updated Sound Drivers#SBSCI32|SBSCI32]] | |[[Gabriel Knight: Sins of the Fathers|Gabriel Knight 1 CD]]||align="center"| ||align="center"|[[Updated Sound Drivers#AWESOL|AWESOL]]||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GENMIDI|GENMIDI]]||align="center"| ||align="center"|[[Updated Sound Drivers#GUS32|GUS32]]||align="center"| ||align="center"|[[Updated Sound Drivers#SBSCI32|SBSCI32]] | ||
Line 27: | Line 681: | ||
|[[King's Quest VI: Heir Today, Gone Tomorrow|KQ6]]"||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GUSDRV|GUSDRV]]||align="center"| ||align="center"| | |[[King's Quest VI: Heir Today, Gone Tomorrow|KQ6]]"||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GUSDRV|GUSDRV]]||align="center"| ||align="center"| | ||
|- | |- | ||
− | |[[King's Quest VI: Heir Today, Gone Tomorrow|KQ6CD]] | + | |[[King's Quest VI: Heir Today, Gone Tomorrow|KQ6CD]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GUSDRV|GUSDRV]]||align="center"|[[Updated Sound Drivers#SB16DRV|SB16DRV]]||align="center"| |
|- | |- | ||
− | |[[Dagger of Amon Ra Demo| | + | |[[Dagger of Amon Ra Demo|<span class="Alert">LB</span>2CD]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GUSDRV|GUSDRV]]||align="center"|[[Updated Sound Drivers#SB16DRV|SB16DRV]]||align="center"| |
|- | |- | ||
|[[Leisure Suit Larry 1: In the Land of the Lounge Lizards SCI|LSL1VGA]]||align="center"|[[Updated Sound Drivers#486SBDRV|486SBDRV]]||align="center"|[[Updated Sound Drivers#AWESOL|AWESOL]]||align="center"| ||align="center"|[[Updated Sound Drivers#E29PATCH|E29PATCH]]||align="center"|[[Updated Sound Drivers#GENMIDI|GENMIDI]]||align="center"| ||align="center"| ||align="center"| ||align="center"| | |[[Leisure Suit Larry 1: In the Land of the Lounge Lizards SCI|LSL1VGA]]||align="center"|[[Updated Sound Drivers#486SBDRV|486SBDRV]]||align="center"|[[Updated Sound Drivers#AWESOL|AWESOL]]||align="center"| ||align="center"|[[Updated Sound Drivers#E29PATCH|E29PATCH]]||align="center"|[[Updated Sound Drivers#GENMIDI|GENMIDI]]||align="center"| ||align="center"| ||align="center"| ||align="center"| | ||
Line 45: | Line 699: | ||
|[[Police Quest 3: The Kindred|PQ3]]||align="center"|[[Updated Sound Drivers#486SBDRV|486SBDRV]]||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#E29PATCH|E29PATCH]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| | |[[Police Quest 3: The Kindred|PQ3]]||align="center"|[[Updated Sound Drivers#486SBDRV|486SBDRV]]||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#E29PATCH|E29PATCH]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| | ||
|- | |- | ||
− | |[[Police Quest: Open Season|PQ4]]||align="center"| ||align="center"| | + | |[[Police Quest: Open Season|PQ4]]||align="center"| ||align="center"|[[Updated Sound Drivers#AWESOL|AWESOL]]||align="center"|[[Updated Sound Drivers#DACBLAST|DACBLAST]]||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#GUS32|GUS32]]||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#SBSCI32|SBSCI32]] |
|- | |- | ||
− | |[[Police Quest: Open Season|PQ4]]||align="center"| ||align="center"|[[Updated Sound Drivers#AWESOL|AWESOL]]||align="center"| ||align="center"| ||align="center"| | + | |[[Police Quest: Open Season|PQ4 CD]]||align="center"| ||align="center"|[[Updated Sound Drivers#AWESOL|AWESOL]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| |
|- | |- | ||
|[[Quest for Glory I: So You Want to Be a Hero (VGA)|QfG1VGA]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#SB16DRV|SB16DRV]]||align="center"| | |[[Quest for Glory I: So You Want to Be a Hero (VGA)|QfG1VGA]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#SB16DRV|SB16DRV]]||align="center"| | ||
Line 82: | Line 736: | ||
|[[King's Quest I: Quest for the Crown (SCI remake)|KQ1SCI]]||align="center"| ||align="center"|[[Updated Sound Drivers#RAVI_MPUMAP|RAVI_MPUMAP]]||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#RAVI_NOSND-B|RAVI_NOSND-B]] | |[[King's Quest I: Quest for the Crown (SCI remake)|KQ1SCI]]||align="center"| ||align="center"|[[Updated Sound Drivers#RAVI_MPUMAP|RAVI_MPUMAP]]||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#RAVI_NOSND-B|RAVI_NOSND-B]] | ||
|- | |- | ||
− | |[[King's Quest IV: The Perils of Rosella|KQ4]] | + | |[[King's Quest IV: The Perils of Rosella|KQ4]]||align="center"|[[Updated Sound Drivers#RAVI_GMDRV|RAVI_GMDRV]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMAP|RAVI_MPUMAP]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMIDI|RAVI_MPUMIDI]]||align="center"|[[Updated Sound Drivers#RAVI_NOSND|RAVI_NOSND]]||align="center"| |
|- | |- | ||
− | |[[ | + | |[[Colonel's Bequest, The|LB1]]||align="center"|[[Updated Sound Drivers#RAVI_GMDRV|RAVI_GMDRV]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMAP|RAVI_MPUMAP]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMIDI|RAVI_MPUMIDI]]||align="center"|[[Updated Sound Drivers#RAVI_NOSND|RAVI_NOSND]]||align="center"| |
|- | |- | ||
|[[Leisure Suit Larry Goes Looking for Love (In Several Wrong Places)|LSL2]]||align="center"|[[Updated Sound Drivers#RAVI_GMDRV|RAVI_GMDRV]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMAP|RAVI_MPUMAP]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMIDI|RAVI_MPUMIDI]]||align="center"|[[Updated Sound Drivers#RAVI_NOSND|RAVI_NOSND]]||align="center"| | |[[Leisure Suit Larry Goes Looking for Love (In Several Wrong Places)|LSL2]]||align="center"|[[Updated Sound Drivers#RAVI_GMDRV|RAVI_GMDRV]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMAP|RAVI_MPUMAP]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMIDI|RAVI_MPUMIDI]]||align="center"|[[Updated Sound Drivers#RAVI_NOSND|RAVI_NOSND]]||align="center"| | ||
Line 102: | Line 756: | ||
|[[Sierra Christmas Card 1988|Xmas Card 88]]||align="center"|[[Updated Sound Drivers#RAVI_GMDRV|RAVI_GMDRV]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMAP|RAVI_MPUMAP]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMIDI|RAVI_MPUMIDI]]||align="center"|[[Updated Sound Drivers#RAVI_NOSND|RAVI_NOSND]]||align="center"| | |[[Sierra Christmas Card 1988|Xmas Card 88]]||align="center"|[[Updated Sound Drivers#RAVI_GMDRV|RAVI_GMDRV]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMAP|RAVI_MPUMAP]]||align="center"|[[Updated Sound Drivers#RAVI_MPUMIDI|RAVI_MPUMIDI]]||align="center"|[[Updated Sound Drivers#RAVI_NOSND|RAVI_NOSND]]||align="center"| | ||
|- | |- | ||
− | |[[Christmas Card EGA | + | |[[Christmas Card 1990 - The Seasoned Professional (EGA)|Xmas Card 90 EGA]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#RAVI_NOSND-B|RAVI_NOSND-B]] |
|- | |- | ||
− | |[[Christmas Card VGA | + | |[[Christmas Card 1990 - The Seasoned Professional (VGA)|Xmas Card 90 VGA]]||align="center"| ||align="center"| ||align="center"| ||align="center"| ||align="center"|[[Updated Sound Drivers#RAVI_NOSND-B|RAVI_NOSND-B]] |
|} | |} | ||
Line 129: | Line 783: | ||
|[[King's Quest IV: The Perils of Rosella|KQ4]]*||align="center"| ||align="center"|[[Updated Sound Drivers#MTBLAST|MTBLAST]]||align="center"|[[Updated Sound Drivers#SNDBLAST|SNDBLAST]] | |[[King's Quest IV: The Perils of Rosella|KQ4]]*||align="center"| ||align="center"|[[Updated Sound Drivers#MTBLAST|MTBLAST]]||align="center"|[[Updated Sound Drivers#SNDBLAST|SNDBLAST]] | ||
|- | |- | ||
− | |[[ | + | |[[Colonel's Bequest, The|LB1]]||align="center"| ||align="center"|[[Updated Sound Drivers#MTBLAST|MTBLAST]]||align="center"|[[Updated Sound Drivers#SNDBLAST|SNDBLAST]] |
|- | |- | ||
|[[Leisure Suit Larry 1: In the Land of the Lounge Lizards SCI|LSL1VGA]]||align="center"|[[Updated Sound Drivers#GMBLAST|GMBLAST]]||align="center"| ||align="center"| | |[[Leisure Suit Larry 1: In the Land of the Lounge Lizards SCI|LSL1VGA]]||align="center"|[[Updated Sound Drivers#GMBLAST|GMBLAST]]||align="center"| ||align="center"| | ||
Line 157: | Line 811: | ||
|[[Sierra Christmas Card 1988|Xmas Card 88]]||align="center"| ||align="center"|[[Updated Sound Drivers#MTBLAST|MTBLAST]]||align="center"|[[Updated Sound Drivers#SNDBLAST|SNDBLAST]] | |[[Sierra Christmas Card 1988|Xmas Card 88]]||align="center"| ||align="center"|[[Updated Sound Drivers#MTBLAST|MTBLAST]]||align="center"|[[Updated Sound Drivers#SNDBLAST|SNDBLAST]] | ||
|- | |- | ||
− | |[[Christmas Card EGA | + | |[[Christmas Card 1990 - The Seasoned Professional (EGA)|Xmas Card 90 EGA]]||align="center"| ||align="center"|[[Updated Sound Drivers#MTBLAST|MTBLAST]]||align="center"|[[Updated Sound Drivers#SNDBLAST|SNDBLAST]] |
|- | |- | ||
− | |[[Christmas Card VGA | + | |[[Christmas Card 1990 - The Seasoned Professional (VGA)|Xmas Card 90 VGA]]||align="center"| ||align="center"|[[Updated Sound Drivers#MTBLAST|MTBLAST]]||align="center"|[[Updated Sound Drivers#SNDBLAST|SNDBLAST]] |
|} | |} | ||
+ | |||
+ | <nowiki>*</nowiki> no digital sound effects, but stereo music | ||
+ | |||
+ | |||
+ | * GMBLAST - GMBLAST.zip | ||
+ | |||
+ | === Game Specific Hacked Drivers === | ||
+ | |||
+ | * [[Freddy Pharkas: Frontier Pharmacist|Freddy Pharkas]] - FreddyPharkas(GENMID).zip | ||
+ | * [[Gabriel Knight: Sins of the Fathers|Gabriel Knight 1]] - GabrielKnight(GENMID).zip | ||
+ | * [[Jones in the Fast Lane|Jones in the Fast Lane CD]] - JonesInTheFastLaneCD-ROM(AUDCDROM).zip | ||
+ | * [[King's Quest I: Quest for the Crown (SCI remake)|King's Quest I SCI]] - KingsQuestISCI(MTBLAST).zip | ||
+ | * [[King's Quest VI]] - KingsQuestVI(GENMID).zip | ||
+ | * [[King's Quest VII: The Princeless Bride|King's Quest VII]] - KingsQuestVII(GENMID,speech).zip | ||
+ | * [[Leisure Suit Larry 6: Shape Up or Slip Out!|Leisure Suit Larry 6]] - LeisureSuitLarry6(GENMID).zip | ||
+ | * [[Pepper's Adventures in Time]] - PeppersAdventuresInTime(GENMID).zip | ||
+ | * [[Police Quest: Open Season|Police Quest IV]] - PoliceQuestIV(GENMID,adpcm).zip | ||
+ | * [[Quest for Glory II: Trial by Fire|Quest for Glory II]] - QuestForGloryII(MTBLAST).zip | ||
+ | * [[Quest for Glory III: Wages of War|Quest for Glory III]] - QuestForGloryIII(GENMID).zip | ||
+ | * [[Quest for Glory IV]] - QuestForGloryIV(GENMID).zip | ||
+ | * [[Slater & Charlie Go Camping]] - Slater&CharlieGoCamping(GENMID).zip | ||
+ | * [[Space Quest III]] - SpaceQuestIII(MTBLAST).zip | ||
+ | * [[Space Quest IV|Space Quest IV CD]] - SpaceQuest IVCD(introSubtitles).zip | ||
+ | * [[Space Quest V: The Next Mutation|Space Quest V]] - SpaceQuestV(GENMID).zip | ||
+ | |||
+ | | ||
+ | |||
+ | [[Category:SCI Driver Resources]] |
Latest revision as of 18:09, 11 October 2018
Code:
/******************************************************************************
SCI Template Game VER 1.1a
By Brian Provinciano
******************************************************************************
main.sc
Contains the game's main instance and inventory items.
******************************************************************************/
(include "sci.sh")
(include "game.sh")
/******************************************************************************/
(script MAIN_SCRIPT)
/******************************************************************************/
(use "controls")
(use "sound")
(use "syswindow")
(use "cycle")
(use "game")
(use "inv")
(use "user")
(use "menubar")
(use "feature")
(use "obj")
(use "disposeload")
/******************************************************************************
* These are the global variables. You can access them from any script as long
* as it "use"es this script
******************************************************************************/
(local
gEgo // points to the ego's class
gGame /* points to the game instance */
gRoom /* points to the current room instance */
gSpeed /* the game speed (delay each interpreter cycle) */
gQuitGame = FALSE /* if set to TRUE, the game will exit */
gCast /* points to the cast class (list of actors) */
gRegions /* points to the regions class (list of regions) */
gLocales /* points to the locales class (list of locales) */
gTimers /* points to the timers class (list of timers) */
gSounds /* points to the sounds class (list of sounds) */
gInv /* points to the inventory class */
gAddToPics /* points to the add to pics class */
gFeatures /* points to the add to features class */
gSFeatures /* points to the add to sfeatures class */
gRoomNumberExit /* room number exit */
gPreviousRoomNumber /* the number of the previous room */
gRoomNumber /* the number of the current room */
gDebugOnExit = FALSE /* enter debug mode on room exit */
gScore = 0 /* the game score */
gMaxScore = 0 /* the maximum game score */
gOldScore /* previous score */
gCurrentCursor /* the number of the current cursor */
gNormalCursor = 999 /* the number of the normal cursor (ie. arrow) */
gLoadingCursor = 997 /* the number of the loading cursor (ie. hand) */
gDefaultFont = 1 /* the number of the default font */
gSaveRestoreFont = 0 /* the number of the font for the save/restore dialogs*/
gDeadFont = 0 /* the number of the font for the dialog when ego dies */
gUserEvent /* points to the user's event object */
gPrintDlg /* points to the current Print() window */
gVolume /* the sound volume */
gVersion /* the version string */
gSaveDirPtr /* points to the save directory string */
gCheckAniWait /* the checkAni delay */
gSetRegions /* a flag -- see User:doit() */
gPicAngle /* the room's pic angle */
gOverlay = -1 /* whether to overlay the picture when drawing */
gDefaultPicAni /* the default pic animation */
gDefaultPalette /* the default palette to use for the pictures (0-3) */
gCastMotionCue /* if set, the cast's motionCue() is called */
gTheWindow /* points to the window class */
gWndColor /* the colour of the game's windows foreground (ie. text) */
gWndBack /* the colour of the game's windows background */
gOldPort /* the previous port */
gEgoView /* ego's current view number */
/* hh:mm:ss | gTimeHours:gTimeMinutes:gTimeSeconds */
/* the time elapsed since the game started */
gTimeSeconds /* the seconds */
gTimeMinutes /* the minutes */
gTimeHours /* the hours */
gCurrentTime /* the current time in seconds */
gTheMusic /* points to the music class */
gTheSoundFX /* points to the sound fx class */
gProgramControl /* states whether the program has control or the user */
)
/******************************************************************************/
(instance public Hello World of Game
(properties)
(method (init)
// Set up the base window
= gTheWindow theWindow
= gWndColor clBLACK
= gWndBack clWHITE
(send gTheWindow:
color(gWndColor)
back(gWndBack)
)
// Initialize
(super:init())
/******************************
* Set your game version here *
******************************/
= gVersion "1.0"
// General initialization stuff
= gVolume 15
DoSound(sndVOLUME gVolume)
(SL:code(statusCode))
(TheMenuBar:init())
(scoreSound:
owner(self)
init()
)
= gTheMusic theMusic
(send gTheMusic:
owner(self)
init()
)
= gTheSoundFX theSoundFX
(send gTheSoundFX:
owner(self)
init()
)
= gEgo ego
(User:
alterEgo(gEgo)
blocks(0)
y(150)
)
Load(rsFONT gDeadFont)
Load(rsFONT gDefaultFont)
Load(rsFONT gSaveRestoreFont)
Load(rsCURSOR gNormalCursor)
Load(rsCURSOR gLoadingCursor)
(if(HaveMouse())
(send gGame:setCursor(gNormalCursor SET_CURSOR_VISIBLE))
)(else
(send gGame:setCursor(gNormalCursor SET_CURSOR_VISIBLE 304 174))
)
/*************************************************
* Initialize the inventory with it's items here *
*************************************************/
(Inv:
add(
{Nothing}
{Test Object}
)
)
// Start the room
(if(GameIsRestarting())
(self:newRoom(INITROOMS_SCRIPT))
)(else
(self:newRoom(TITLESCREEN_SCRIPT))
)
)
(method (doit)
(super:doit())
(if(gProgramControl)
(User:
canControl(FALSE)
canInput(FALSE)
)
)
(if(<> gCurrentTime (= gCurrentTime GetTime(gtTIME_OF_DAY)))
(if(>= ++gTimeSeconds 60)
= gTimeSeconds 0
++ gTimeMinutes
(if(>= gTimeMinutes 60)
= gTimeMinutes 0
++ gTimeHours
)
)
)
(if(> gOldScore gScore)
= gOldScore gScore
(SL:doit())
)
(if(< gOldScore gScore)
= gOldScore gScore
(SL:doit())
)
)
(method (replay)
(TheMenuBar:draw())
(SL:enable())
(if(DoSound(sndSET_SOUND))
SetMenu(MENU_TOGGLESOUND #text "Turn Off")
)(else
SetMenu(MENU_TOGGLESOUND #text "Turn On")
)
(super:replay())
)
(method (newRoom roomNum picAni)
DisposePrintDlg()
Load(rsFONT gDeadFont)
Load(rsFONT gDefaultFont)
Load(rsFONT gSaveRestoreFont)
Load(rsCURSOR gNormalCursor)
Load(rsCURSOR gLoadingCursor)
(super:newRoom(roomNum))
(if(< paramTotal 2)
= gDefaultPicAni Random(0 5)
)(else
= gDefaultPicAni picAni
)
)
(method (startRoom roomNum)
DisposeLoad(
NULL
FILEIO_SCRIPT JUMP_SCRIPT EXTRA_SCRIPT WINDOW_SCRIPT
TIMER_SCRIPT FOLLOW_SCRIPT REV_SCRIPT DCICON_SCRIPT
DOOR_SCRIPT AUTODOOR_SCRIPT WANDER_SCRIPT AVOID_SCRIPT
)
DisposeScript(DISPOSELOAD_SCRIPT)
(if(gDebugOnExit)
= gDebugOnExit FALSE
SetDebug()
)
(send gTheSoundFX:
stop()
number(1)
)
(super:startRoom(roomNum))
(if(== gTheSoundFX 11)
(send gEgo:baseSetter(NormalBase))
)
)
(method (changeScore addScore)
= gScore + gScore addScore
(if(> addScore 0)
(scoreSound:playMaybe())
)
)
(method (handleEvent pEvent)
//////////////////////////////////////////////////////////////////////
// ** This is debug functionality //
// ** Comment it out if you don't want people to cheat in your game //
//////////////////////////////////////////////////////////////////////
(if (== evKEYBOARD (send pEvent:type))
// Check for ALT keys
(switch (send pEvent:message)
(case $2f00 // alt-v
Show(1) // Show visual
)
(case $2e00 // alt-c
Show(4) // Show control
)
(case $1900 // alt-p
Show(2) // Show priority
)
(case $3200 // alt-m
// Show memory usage
ShowFree()
FormatPrint(
"Free Heap: %u Bytes\nLargest ptr: %u Bytes\nFreeHunk: %u KBytes\nLargest hunk: %u Bytes"
MemoryInfo(miFREEHEAP)
MemoryInfo(miLARGESTPTR)
(>> MemoryInfo(miFREEHUNK) 6)
MemoryInfo(miLARGESTHUNK)
)
)
(case $1400 // alt-t
// teleport to room
(send gRoom:newRoom(GetNumber("Which Room Number?")))
)
(case $1700 // alt-i
// get inventory
(send gEgo:get(GetNumber("Which inventory#?")))
)
(case $1f00 // alt-s
// Show cast
(send gCast:eachElementDo(#showSelf))
)
)
)
////////////////////////////////////////////////////
// End of debug functionality //
////////////////////////////////////////////////////
(super:handleEvent(pEvent))
(if((<> (send pEvent:type) evSAID) or (send pEvent:claimed))
return(TRUE)
)
/***********************************/
/* Add global said statements here */
/***********************************/
(if(Said('hi'))
Print("Well hello to you too!")
)
return(FALSE)
)
)
/******************************************************************************/
(class Iitem of InvI
(properties
said 0
description 0
owner 0
view 0
loop 0
cel 0
script 0
)
(method (showSelf)
Print(
description
#title objectName
#icon view loop cel // Changed from: #icon view 0 0
)
)
)
/******************************************************************************/
(instance statusCode of Code
(properties)
(method (doit param1)
Format(param1 " Score: %d of %-3d Template Game " gScore gMaxScore)
)
)
/******************************************************************************/
(instance ego of Ego
(properties
y 1111
x 0
z 0
heading 0
yStep 2
view 0
loop 0
cel 0
priority 0
underBits 0
signal $2000
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
lsTop 0
lsLeft 0
lsBottom 0
lsRight 0
brTop 0
brLeft 0
brBottom 0
brRight 0
cycleSpeed 0
script 0
cycler 0
timer 0
illegalBits $8000
xLast 0
yLast 0
xStep 3
moveSpeed 0
blocks 0
baseSetter 0
mover 0
looper 0
viewer 0
avoider 0
edgeHit 0
)
)
/******************************************************************************/
(instance scoreSound of Sound
(properties
state 0
number SCORE_SOUND
priority 10
loop 1
handle 0
signal 0
prevSignal 0
client 0
owner 0
)
)
/******************************************************************************/
(instance theMusic of Sound
(properties
state 0
number 1
priority 0
loop 1
handle 0
signal 0
prevSignal 0
client 0
owner 0
)
)
/******************************************************************************/
(instance theSoundFX of Sound
(properties
state 0
number 1
priority 5
loop 1
handle 0
signal 0
prevSignal 0
client 0
owner 0
)
)
/******************************************************************************/
(instance theWindow of SysWindow
(properties)
(method (open)
(if(< Graph(grGET_COLOURS) 9)
(if( (< color 7) or (== color 8) )
= color 0
= back 15
)(else
= color 15
= back 0
)
)
(super:open())
)
)
/******************************************************************************/
(instance NormalBase of Code
(properties)
(method (doit)
(var temp0)
(if(== gRoomNumberExit 253)
= temp0 22
)(else
= temp0 10
)
(send gEgo:
brBottom(
(+ (send gEgo:y) 1)
)
)
(send gEgo:
brTop(
(- (send gEgo:brBottom) (send gEgo:yStep))
)
)
(send gEgo:
brLeft(
(- (send gEgo:x) temp0)
)
)
(send gEgo:
brRight(
(+ (send gEgo:x) temp0)
)
)
)
)
/******************************************************************************
* THE PUBLIC PROCEDURES
******************************************************************************/
(procedure public (SetUpEgo theLoop theView)
PlayerControl()
(send gEgo:edgeHit(EDGE_NONE))
(switch(paramTotal)
(case 0
SetUpActor(gEgo (send gEgo:loop) gEgoView)
)
(case 1
SetUpActor(gEgo theLoop gEgoView)
)
(case 2
SetUpActor(gEgo theLoop theView)
)
)
)
/******************************************************************************/
(procedure public (SetUpActor pActor theLoop theView)
(if(> paramTotal 1)
(send pActor:loop(theLoop))
)
(if(> paramTotal 2)
(send pActor:view(theView))
)
(send pActor:
setLoop(-1)
setPri(-1)
setStep(3 2)
setCycle(Walk)
illegalBits($8000)
cycleSpeed(0)
moveSpeed(0)
ignoreActors(0)
)
)
/******************************************************************************/
(procedure public (ProgramControl)
(User:
canControl(FALSE)
canInput(FALSE)
)
(send gEgo:setMotion(NULL))
= gProgramControl TRUE
)
/******************************************************************************/
(procedure public (PlayerControl)
(User:
canControl(TRUE)
canInput(TRUE)
)
(send gEgo:setMotion(NULL))
= gProgramControl FALSE
)
/******************************************************************************/
(procedure public (DisposePrintDlg)
(if(gPrintDlg)
(send gPrintDlg:dispose())
)
)
/******************************************************************************/
(procedure public (PrintOK)
Print("O.K.")
)
/******************************************************************************/
(procedure public (PrintItIs)
Print("It is.")
)
/******************************************************************************/
(procedure public (PrintYouAre)
Print("You are.")
)
/******************************************************************************/
(procedure public (PrintGoodIdea)
Print("Good idea. You might try that again later.")
)
/******************************************************************************/
(procedure public (PrintNotCloseEnough)
Print("You're not close enough.")
)
/******************************************************************************/
(procedure public (PrintAlreadyTookIt)
Print("You already took it.")
)
/******************************************************************************/
(procedure public (PrintDontHaveIt)
Print("You don't have it.")
)
/******************************************************************************/
(procedure public (PrintCantDoThat mem)
(if(> MemoryInfo(miLARGESTPTR) mem)
return(TRUE)
)(else
Print("You can't do that here; at least, not now.")
return(FALSE)
)
)
/******************************************************************************/
(procedure public (AddViewToPic pView)
(var hView)
(if(pView)
= hView (View:new())
(send hView:
view(send pView:view)
loop(send pView:loop)
cel(send pView:cel)
priority(send pView:priority)
posn( (send pView:x) (send pView:y) )
addToPic()
)
(send pView:
posn( (send pView:x) (+ 1000 (send pView:y)) )
)
)
)
/******************************************************************************/
(procedure public (SetInvIOwner index owner)
(var hInvI)
= hInvI (send gInv:at(index))
(if(< paramTotal 2)
(send hInvI:owner(gRoomNumberExit))
)(else
(send hInvI:owner(owner))
)
)
/******************************************************************************
* THE INVENTORY ITEMS *
******************************************************************************/
(instance Nothing of Iitem
(properties)
)
/******************************************************************************/
(instance {Test Object} of Iitem
(properties
said 'object'
description
"This is a test object in your inventory."
owner 0
view 800
loop 0
cel 0
script 0
)
)
/******************************************************************************/
Sierra After-market
Game | 486SBDRV | AWESOL | DACBLAST | E29PATCH | GENMIDI | GUS32 | GUSDRV | SB16DRV | SBSCI32 |
---|---|---|---|---|---|---|---|---|---|
Longbow | AWESOL | GENMIDI | |||||||
Dr. Brain 2 | GUSDRV | ||||||||
EcoQuest 1 | AWESOL | GENMIDI | GUSDRV | ||||||
EcoQuest 1 CD | SB16DRV | ||||||||
EcoQuest 2 | GUSDRV | ||||||||
Freddy Pharkas | GUSDRV | ||||||||
Gabriel Knight 1 | AWESOL | DACBLAST | GUS32 | SBSCI32 | |||||
Gabriel Knight 1 CD | AWESOL | GENMIDI | GUS32 | SBSCI32 | |||||
Hoyle 3 | 486SBDRV | AWESOL | E29PATCH | GENMIDI | |||||
Hoyle 4 | GUSDRV | ||||||||
KQ6" | GUSDRV | ||||||||
KQ6CD | GUSDRV | SB16DRV | |||||||
LB2CD | GUSDRV | SB16DRV | |||||||
LSL1VGA | 486SBDRV | AWESOL | E29PATCH | GENMIDI | |||||
LSL5 | 486SBDRV | AWESOL | E29PATCH | GENMIDI | |||||
LSL6CD | AWESOL | GENMIDI | |||||||
Mixed-Up Fairy Tales | AWESOL | GENMIDI | |||||||
Pepper | GUSDRV | ||||||||
PQ1VGA | GUSDRV | ||||||||
PQ3 | 486SBDRV | E29PATCH | |||||||
PQ4 | AWESOL | DACBLAST | GUS32 | SBSCI32 | |||||
PQ4 CD | AWESOL | ||||||||
QfG1VGA | SB16DRV | ||||||||
QfG4 | AWESOL | DACBLAST | GUS32 | SBSCI32 | |||||
QfG4CD | AWESOL | GENMIDI | |||||||
Slater & Charlie | GUSDRV | ||||||||
SQ1VGA | 486SBDRV | AWESOL | E29PATCH | GENMIDI | |||||
SQ4 | AWESOL | GENMIDI | |||||||
SQ4CD | SB16DRV | ||||||||
SQ5 | GUSDRV |
Ravi's Drivers
Hacked Drivers
* no digital sound effects, but stereo music
- GMBLAST - GMBLAST.zip
Game Specific Hacked Drivers
- Freddy Pharkas - FreddyPharkas(GENMID).zip
- Gabriel Knight 1 - GabrielKnight(GENMID).zip
- Jones in the Fast Lane CD - JonesInTheFastLaneCD-ROM(AUDCDROM).zip
- King's Quest I SCI - KingsQuestISCI(MTBLAST).zip
- King's Quest VI - KingsQuestVI(GENMID).zip
- King's Quest VII - KingsQuestVII(GENMID,speech).zip
- Leisure Suit Larry 6 - LeisureSuitLarry6(GENMID).zip
- Pepper's Adventures in Time - PeppersAdventuresInTime(GENMID).zip
- Police Quest IV - PoliceQuestIV(GENMID,adpcm).zip
- Quest for Glory II - QuestForGloryII(MTBLAST).zip
- Quest for Glory III - QuestForGloryIII(GENMID).zip
- Quest for Glory IV - QuestForGloryIV(GENMID).zip
- Slater & Charlie Go Camping - Slater&CharlieGoCamping(GENMID).zip
- Space Quest III - SpaceQuestIII(MTBLAST).zip
- Space Quest IV CD - SpaceQuest IVCD(introSubtitles).zip
- Space Quest V - SpaceQuestV(GENMID).zip