This is a sub-page of Ghost Master.
The VMTute.cpp file contains a developer changelog for the script:
/* Change info. Change log begun ASJ 12/11/2002. Much work already up to this point.
(ext) items are fixes outside this file which affect the tutorial
**** 2/7/2003 ********
- Added 'TFLAG_VersionIsDemo' for removing inappropriate lines of dialog
- Added 'dont play if demo' flag check to lines 1025_6, 1025_7, 1025_9, 1025_10
**** 26/6/2003 *******
- Disabled all haunter epitaph interrupts after plasm drill to avoid end of game lockout problem - only a workaround not a complete solution
**** 28/4/2003 *******
- Added call to DestroyUIHighlight to stop tutorial sequence
**** (v9) 25/4/2003 *****
- Skip stages 33 and 34 if Weatherwitch already LTR'd
**** (v8) 23/4/2003 *****
- Rmoved last two lines from 'hasgoldplasm' version of Ghoulroom tute
- (ext) Added cursor on/off calls to user input lockouts
- Changed stage4 to always play rightclick rotate message
- Added proper EndTutorial hooks to all H101 end points
**** (v7) 24/3/2003 *****
- (ext) Added hook for TFLAG_HasGoldPlasm
- (ext) Added setup and entry for ghoulroom tutorial.
**** 18/3/2003 ****
- Disabled floor switch interrupt for duration of first line of stage 1
**** (v6) 5/2/2003 ******
- (+ext) Added .ini file options to skip inidividual parts of tutorial.
- ext - Added check for current cam type and TFLAG_CameraModeIsLevelCam
- Added wait + prompt after view and POV mortal interrupts (P & EE).
- Moved unfreeze controls to before prompt loop for P & EE to prevent lockup
**** (v5) 2/2/2003 ******
- (ext) Added lockout to stop new dialog playing if a power is being used.
- Deleted old stage 43 and changed 44 - munged from lines in 43 and first line of 45
- Replaced first line of stage 45 loop with line 2 from stage 43
- Deleted stage 39 and moved content to end of running hints loop in stage 45
- (ext) Added flag for multiple power cast message
- (ext) Added counter for number of times powers used
- (ext) Added flags for terror, belief and madness hits
- Added power cast counting check to interrupt N
- Split off interrupt N subsections for hits (not completed)
- Changed first prompt pause timing for stage 10 - last prompt loop
- (ext) Disabled 'power being used' dialog lockout.
- (ext) Stopped gametstae sending plasm alert message when running drill
- Added pause before plasm drill starts to give haunter time to finish binding and start draining plasm
- Added pause after plasm drill starts and before tutorial starts plasm drill loop
- Removed first prompt pause in stage 10, first loop (point at mortal pack)
- Added long wait pause to start of stage 8
- (ext) Changed plasm drill plasm quantity calculation.
- (ext) Added no highlight and invisible pointer behaviour during input lockout
- Removed code ( in Pause() and WaitOnFlag() ) which cut pauses short if interrupted
**** (v4) 31/1/2003 *****
- Change tutorial start delay (after team selection done) from 8secs to 1sec
- (ext) - Changed tutorial pause support and sound code pause to handle tutorial pauses correctly.
- (ext) - Investigate front end ignoring user input after exiting tutorial - the script object was not being purdged.
- NEW LINES (ext) - four new lines of dialog. 1_4, 1_5, 10_3 and 1033_1
- Added lines 1_4 and 1_5 to stage 1
- (ext) - Added flag for mortal 'view' button
- Added interrupt EE using line 1033_1 and above flag (analagous to mortal bio/view/goto interrupts)
- (ext) - Added 'mortal menu seen' flag and trigger from ui.cpp
- Altered layout of stage 10 - new line (3) and two wait/prompt loops added.
- (ext) - Added 'has haunter on pointer' flag and composite flag for stage 26
- Added two prompt loops to stage 26.
- Removed old stage 27 (see changes to stage 26).
- Deleted stage 8 line 7 - 'I've given you 100 plasm'
- (+ext) - Added 'haunter has begun binding' flag to use for second loop on stage 26 (line3)
- At end of stage 26 - added extra wait for haunter binding to complete to give interrupt chance to fire
- Moved stage 8 to before stage 30
**** (v3) 05/12/2002 ****
- Fixed interrupt enabling on team selection screen. Interrupt states weren't being reset, so flags never checked.
- (ext) Added trigger for selecting unusable haunter on selection screen.
- (+ext) Added TFLAG_RecommendedTeamUsed and code to not run main tutorial unless recommended team taken in.
- (ext) Fixed crash bug in exit code of VM loop - freeing pointer previously offset into actual block.
- Added code to early exit if recommended team not used.
- Changed interrupt DD (cogjammer trying to bind to weatherwitch's fetter to only operate during stage 37
- Masked interrupt D (plasm alert) during stages 40,41,42
- (ext) Added code to ui.cpp to differentiate mortal status window creation via mortal pack or via mortal in world
- Added interrupt CC ('red' plasm band warning) to group C interrupts as well as group B. Was working OK but only for group B.
- Added 3 second right mouse button rotate detection (TFLAG_HasRotatedCustom) and ||'d to TFLAG_HasRotated.
- Added line to skip Stage 4 lines 5 and 6 if has use custom rotate already (query)
- Removed TFLAG_IsInCustomView condition on Stage 4 line 7.
- Changed pause after Stage 32 line 1 to long wait.
- Added skip-thru for stages 34-37 inc. if TFLAG_WeatherwitchLaidToRest
- Added 2 missing 'Long Waits' (TM) to Stage 43
- Added missing long wait to end of Stage 39
- Changed pause between Stage 45 lines 5 and 6 to normal line pause from long wait
- Interrupt N restructuring
- Removed interrupt N.
- Added Stages 8 a,b,c after stage 8 which play lines from old interrupt N : (1,4)(2,3)(5,6,7)
**** (v2) 20/11/2002 ****
- Changed master interrupt handlers to reset MSEC timer before returning.
- Changed 'long pause' timing from 3/8 secs to 10/25 secs
- Added composite powers menu seen OR epitaph seen flag for Stage 21
- Added separate timing for weatherwitch lay to rest puzzle pauses
- (ext) Fixed VM mem corruption bug
- (ext) Fixed tutorial blocking after weatherwitch lay to rest
- (ext) Fixed cogjammer blocked bind flag
- Fixed interrupt DD (cogjammer blocked bind)
- Stage 21 now waits for haunter menu interrupt at line 3
- Stage 21 - separated prompt lines for epitaph and powers and put epitaph prompt first
- Stage 11 (start of mortal pack stuff) - now waits for mortal status interrupt to run
- Added mortal pack arrow highlight (+ext)
- Added haunter pack arrow highlight (+ext)
- Added plasm bar arrow highlight (+ext)
**** (v1) 12/11/2002 ****
- Changed all PlaySound derived stuff to use enum'd IDs for sounds instead of
old section/line int pair.
*/
In English.ut8 and Italian.ut8 there's some more minor unused text. Some of this must be pretty old, as it references by name all cut missions.
English.ut8
// Finale
TEXT_HC_EXTRA_14 "Placeholder: Currently Act IV is the final act"
//// Debug Stuff - DO NOT TRANSLATE THIS SECTION
TEXT_HELLO_WORLD "Hello World!!!"
TEXT_DIALOG_BOX "I am a dialog box"
TEXT_SAMPLE "Sample Text"
TEXT_EDIT_TEXT "Edit text"
TEXT_EDIT "Edit"
TEXT_FILE "File"
TEXT_ABOUT "About..."
TEXT_HELP "Help"
TEXT_NI "Nyah nyah nyah"
TEXT_WIDGET_TEST "This is a widgets test"
TEXT_WIDGET_HELP "No help available, so there"
TEXT_EDIT_INVOKED "Edit function invoked"
TEXT_EXIT_INVOKED "Exit function invoked"
// ERRORS AND DEFAULTS ""
TEXT_NO_EPITAPH "No Epitaph"
//TEXT_SCUBA_A_NAME "TEXT_SCUBA_A_NAME"
//TEXT_SCUBA_B_NAME "TEXT_SCUBA_B_NAME"
//TEXT_SCUBA_C_NAME "TEXT_SCUBA_C_NAME"
//TEXT_SCUBA_D_NAME "TEXT_SCUBA_D_NAME"
//TEXT_SCUBA_E_NAME "TEXT_SCUBA_E_NAME"
//TEXT_SCUBA_F_NAME "TEXT_SCUBA_F_NAME"
//TEXT_SCUBA_G_NAME "TEXT_SCUBA_G_NAME"
//TEXT_SCUBA_H_NAME "TEXT_SCUBA_H_NAME"
//TEXT_EEL_NAME "TEXT_EEL_NAME"
TEXT_FBI_AGENT_A_NAME "TEXT_FBI_AGENT_A_NAME"
TEXT_FBI_AGENT_B_NAME "TEXT_FBI_AGENT_B_NAME"
TEXT_AZRAEL "TEXT_AZRAEL"
//TEXT_MIRAGE "TEXT_MIRAGE"
TEXT_SMOKINJOE "TEXT_SMOKINJOE"
TEXT_SOULSCREECH "TEXT_SOULSCREECH"
TEXT_THORNE "TEXT_THORNE"
//TEXT_WILY "TEXT_WILY"
TEXT_SNAPSHOT_POWER_FAMILY "TEXT_SNAPSHOT_POWER_FAMILY"
TEXT_DARKNESS_POWER_FAMILY "TEXT_DARKNESS_POWER_FAMILY"
TEXT_FILM_POWER_FAMILY "TEXT_FILM_POWER_FAMILY"
TEXT_TIME_POWER_FAMILY "TEXT_TIME_POWER_FAMILY"
TEXT_THE_UNINVITED "TEXT_THE_UNINVITED"
TEXT_BUTLER_DIDNT_DO_IT "TEXT_BUTLER_DIDNT_DO_IT"
TEXT_ABYSMAL "TEXT_ABYSMAL"
TEXT_FIELD_OF_NIGHTMARES "TEXT_FIELD_OF_NIGHTMARES"
TEXT_GHOST_IN_THE_MILITARY_MACHINE "TEXT_GHOST_IN_THE_MILITARY_MACHINE"
//TEXT_AB_SCUBA_A_BIO "TEXT_AB_SCUBA_A_BIO"
//TEXT_AB_SCUBA_B_BIO "TEXT_AB_SCUBA_B_BIO"
//TEXT_AB_SCUBA_C_BIO "TEXT_AB_SCUBA_C_BIO"
//TEXT_AB_SCUBA_D_BIO "TEXT_AB_SCUBA_D_BIO"
//TEXT_AB_SCUBA_E_BIO "TEXT_AB_SCUBA_E_BIO"
//TEXT_AB_SCUBA_F_BIO "TEXT_AB_SCUBA_F_BIO"
//TEXT_AB_SCUBA_G_BIO "TEXT_AB_SCUBA_G_BIO"
//TEXT_AB_SCUBA_H_BIO "TEXT_AB_SCUBA_H_BIO"
//TEXT_AB_EEL_BIO "TEXT_AB_EEL_BIO"
//TEXT_WTAW_WIDOW_BIO "TEXT_WTAW_WIDOW_BIO"
//TEXT_WTAW_BROTHER_A_BIO "TEXT_WTAW_BROTHER_A_BIO"
//TEXT_WTAW_BROTHER_B_BIO "TEXT_WTAW_BROTHER_B_BIO"
//TEXT_WTAW_SISTER_BIO "TEXT_WTAW_SISTER_BIO"
//TEXT_WTAW_HUSBAND_BIO "TEXT_WTAW_HUSBAND_BIO"
//TEXT_WTAW_TEENAGE_GIRL_BIO "TEXT_WTAW_TEENAGE_GIRL_BIO"
//TEXT_WTAW_EXECUTOR_BIO "TEXT_WTAW_EXECUTOR_BIO"
//TEXT_WTAW_DETECTIVE_BIO "TEXT_WTAW_DETECTIVE_BIO"
//TEXT_WTAW_GHOSTBREAKER_B_BIO "TEXT_WTAW_GHOSTBREAKER_B_BIO"
//TEXT_WTAW_GHOSTBREAKER_C_BIO "TEXT_WTAW_GHOSTBREAKER_C_BIO"
//TEXT_FN_LAWYER_A_BIO "TEXT_FN_LAWYER_A_BIO"
//TEXT_FN_LAWYER_B_BIO "TEXT_FN_LAWYER_B_BIO"
//TEXT_FN_WORKER_A_BIO "TEXT_FN_WORKER_A_BIO"
//TEXT_FN_WORKER_B_BIO "TEXT_FN_WORKER_B_BIO"
//TEXT_FN_FBI_AGENT_A_BIO "TEXT_FN_FBI_AGENT_A_BIO"
//TEXT_FN_FBI_AGENT_B_BIO "TEXT_FN_FBI_AGENT_B_BIO"
//TEXT_FN_POLICE_CAPTAIN_BIO "TEXT_FN_POLICE_CAPTAIN_BIO"
//TEXT_FN_POLICE_A_BIO "TEXT_FN_POLICE_A_BIO"
//TEXT_FN_POLICE_C_BIO "TEXT_FN_POLICE_C_BIO"
//TEXT_FN_POLICE_F_BIO "TEXT_FN_POLICE_F_BIO"
//TEXT_FN_RIGHT_HAND_MAN_BIO "TEXT_FN_RIGHT_HAND_MAN_BIO"
//TEXT_FN_GOON_A_BIO "TEXT_FN_GOON_A_BIO"
//TEXT_FN_GOON_B_BIO "TEXT_FN_GOON_B_BIO"
//TEXT_FN_GOON_C_BIO "TEXT_FN_GOON_C_BIO"
//TEXT_FN_GOON_D_BIO "TEXT_FN_GOON_D_BIO"
//TEXT_FN_SHAMAN_A_BIO "TEXT_FN_SHAMAN_A_BIO"
//TEXT_FN_MIB_AGENT_A_BIO "TEXT_FN_MIB_AGENT_A_BIO"
//TEXT_FN_MIB_AGENT_B_BIO "TEXT_FN_MIB_AGENT_B_BIO"
//TEXT_MM_MAD_PERSON_A_BIO "TEXT_MM_MAD_PERSON_A_BIO"
//TEXT_MM_MAD_PERSON_F_BIO "TEXT_MM_MAD_PERSON_F_BIO"
//TEXT_MM_MAD_PERSON_G_BIO "TEXT_MM_MAD_PERSON_G_BIO"
//TEXT_MM_MAD_PERSON_H_BIO "TEXT_MM_MAD_PERSON_H_BIO"
//TEXT_MM_MAD_SCIENTIST_BIO "TEXT_MM_MAD_SCIENTIST_BIO"
//TEXT_MM_MIB_AGENT_B_BIO "TEXT_MM_MIB_AGENT_B_BIO"
//TEXT_MM_WATCHER_A_BIO "TEXT_MM_WATCHER_A_BIO"
//TEXT_MM_WATCHER_B_BIO "TEXT_MM_WATCHER_B_BIO"
//TEXT_MM_WATCHER_C_BIO "TEXT_MM_WATCHER_C_BIO"
//TEXT_MM_WATCHER_D_BIO "TEXT_MM_WATCHER_D_BIO"
//TEXT_MM_WATCHER_E_BIO "TEXT_MM_WATCHER_E_BIO"
//TEXT_MM_LAB_OP_D_BIO "TEXT_MM_LAB_OP_D_BIO"
//TEXT_MM_LAB_OP_E_BIO "TEXT_MM_LAB_OP_E_BIO"
//TEXT_MM_LAB_OP_F_BIO "TEXT_MM_LAB_OP_F_BIO"
//TEXT_MM_POLICE_E_BIO "TEXT_MM_POLICE_E_BIO"
TEXT_AZRAEL_EPITAPH "TEXT_AZRAEL_EPITAPH"
//TEXT_MIRAGE_EPITAPH "TEXT_MIRAGE_EPITAPH"
TEXT_SMOKINJOE_EPITAPH "TEXT_SMOKINJOE_EPITAPH"
TEXT_THORNE_EPITAPH "TEXT_THORNE_EPITAPH"
//TEXT_WILY_EPITAPH "TEXT_WILY_EPITAPH"
TEXT_UNINVITED_HELP "TEXT_UNINVITED_HELP"
//TEXT_UNUSUALSUSPECTS_HELP "TEXT_UNUSUALSUSPECTS_HELP"
TEXT_WHEREWILL_HELP "TEXT_WHEREWILL_HELP"
TEXT_ABYSMAL_HELP "TEXT_ABYSMAL_HELP"
//TEXT_GHOUL_HELP "TEXT_GHOUL_HELP"
TEXT_FIELDNIGHTMARES_HELP "TEXT_FIELDNIGHTMARES_HELP"
TEXT_GHOSTMACHINE_HELP "TEXT_GHOSTMACHINE_HELP"
TEXT_SH_SHEEPDOG_BIO "TEXT_SH_SHEEPDOG_BIO"
//TEXT_GI_NURSE_C_BIO "TEXT_GI_NURSE_C_BIO"
//TEXT_GI_NURSE_D_BIO "TEXT_GI_NURSE_D_BIO"
//TEXT_GI_NURSE_E_BIO "TEXT_GI_NURSE_E_BIO"
TEXT_GI_NURSE_F_BIO "TEXT_GI_NURSE_F_BIO"
TEXT_GI_NURSE_G_BIO "TEXT_GI_NURSE_G_BIO"
//TEXT_GI_NURSE_H_BIO "TEXT_GI_NURSE_H_BIO"
//TEXT_GI_NURSE_I_BIO "TEXT_GI_NURSE_I_BIO"
TEXT_GI_ORDERLY_A_BIO "TEXT_GI_ORDERLY_A_BIO"
TEXT_GI_ORDERLY_B_BIO "TEXT_GI_ORDERLY_B_BIO"
TEXT_GI_ORDERLY_C_BIO "TEXT_GI_ORDERLY_C_BIO"
TEXT_GI_ORDERLY_D_BIO "TEXT_GI_ORDERLY_D_BIO"
//TEXT_GI_PATIENT_A_BIO "TEXT_GI_PATIENT_A_BIO"
//TEXT_GI_PATIENT_B_BIO "TEXT_GI_PATIENT_B_BIO"
//TEXT_GI_PATIENT_C_BIO "TEXT_GI_PATIENT_C_BIO"
//TEXT_GI_PATIENT_D_BIO "TEXT_GI_PATIENT_D_BIO"
//TEXT_GI_PATIENT_E_BIO "TEXT_GI_PATIENT_E_BIO"
//TEXT_GI_PATIENT_F_BIO "TEXT_GI_PATIENT_F_BIO"
//TEXT_GI_PATIENT_G_BIO "TEXT_GI_PATIENT_G_BIO"
//TEXT_GI_PATIENT_H_BIO "TEXT_GI_PATIENT_H_BIO"
//TEXT_GI_SHAMAN_B_BIO "TEXT_GI_SHAMAN_B_BIO"
//TEXT_GI_DOCTOR_A_BIO "TEXT_GI_DOCTOR_A_BIO"
//TEXT_GI_DOCTOR_B_BIO "TEXT_GI_DOCTOR_B_BIO"
//TEXT_GI_DOCTOR_C_BIO "TEXT_GI_DOCTOR_C_BIO"
//TEXT_GI_DOCTOR_D_BIO "TEXT_GI_DOCTOR_D_BIO"
//TEXT_GI_DOCTOR_E_BIO "TEXT_GI_DOCTOR_E_BIO"
TEXT_CN_MIB_AGENT_C_BIO "TEXT_CN_MIB_AGENT_C_BIO"
//TEXT_TS_MIB_AGENT_D_BIO "TEXT_TS_MIB_AGENT_D_BIO"
//TEXT_TS_MIB_AGENT_E_BIO "TEXT_TS_MIB_AGENT_E_BIO"
//TEXT_TS_MIB_PSYCHIC_BIO "TEXT_TS_MIB_PSYCHIC_BIO"
//TEXT_TS_ENGINEER_BIO "TEXT_TS_ENGINEER_BIO"
//TEXT_TS_GUARD_BIO "TEXT_TS_GUARD_BIO"
//TEXT_TS_SERGEANT_A_BIO "TEXT_TS_SERGEANT_A_BIO"
//TEXT_TS_LAB_OP_A_BIO "TEXT_TS_LAB_OP_A_BIO"
//TEXT_TS_LAB_OP_B_BIO "TEXT_TS_LAB_OP_B_BIO"
//TEXT_TS_LAB_OP_C_BIO "TEXT_TS_LAB_OP_C_BIO"
TEXT_CANYON "TEXT_CANYON"
TEXT_ROAD "TEXT_ROAD"
Italian.ut8
// Finale
TEXT_HC_EXTRA_14 "Segnalino: attualmente l'Atto IV è l'ultimo""
Also, anytime the Phantom of the Operating Room mission is referenced in several files, it's added that the mission was previously called Ghoul, Interrupted.