If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

SpongeBob SquarePants: Revenge of the Flying Dutchman (GameCube, PlayStation 2)/Development Text

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of SpongeBob SquarePants: Revenge of the Flying Dutchman (GameCube, PlayStation 2).

Source Code Remnants

A selection of C++ headers can be only found in the GameCube version of the game, located in the enums folder.

engine\ABC_Message_Engine.h

#ifndef ABC_MESSAGE_ENGINE_H
#define ABC_MESSAGE_ENGINE_H

typedef	 int abc_message;

enum
{
	msg_no_message,

	msg_skel_collide,

	msg_anim_note_track_first,					//Mark first message from NoteTrack
	msg_anim_loop,
	msg_anim_nosmooth,
	msg_anim_node_collide,
	msg_anim_node_uncollide,
	msg_anim_node_getorient,
	msg_anim_node_projectile_sent,
	msg_anim_orient,
	msg_anim_noorient,
	msg_anim_action,
	msg_anim_srept,
	msg_anim_erept,
	msg_anim_playsound,
	msg_anim_stopsound,
	msg_anim_playsoundrnd,
	msg_anim_playcdsound,
	msg_anim_playcdsoundloop,
	msg_anim_stopcdsound,
	msg_anim_nodynamic,
	msg_anim_dynamic,
	msg_anim_material_color,
	msg_anim_seqanim,
	msg_anim_active,
	msg_anim_setemiter,

	msg_anim_unknow_skel_collide,

	msg_anim_particles_efx,
	msg_anim_particles_efx_pause,
	msg_anim_particles_efx_reset,

	msg_rtc_start,
	msg_rtc_end,
	msg_rtc_changecamera,
	msg_rtc_picture,
	msg_rtc_no_picture,
	msg_rtc_mark,
	msg_rtc_letter_box_start,
	msg_rtc_letter_box_end,
	msg_rtc_letter_box_color,

	msg_anim_note_track_end,					//Mark last message from NoteTrack


	msg_goto_length,
	msg_goto_curlength,
	msg_goto_2nd_vertex,
	msg_goto_end,

	msg_volume_in,
	msg_volume_out,
	msg_volume_stay,

	msg_menu3d_effect_end,
	msg_skin_selected,

	msg_carry_begin,
	msg_carry_end,
	
	msg_held_begin,
	msg_held_end,

	msg_thrown_begin,
	msg_thrown_end,

	msg_target_hit,
	msg_target_miss,

	msg_lod_collide,
	msg_decor_collide,

	msg_thrown_lod_collide,
	msg_thrown_decor_collide,

	msg_restore_collide,

	msg_sequenced_collide,

	msg_skin_act_begin,
	
	msg_skin_act_end,

	msg_bumper,

	msg_father_unlinked,

	msg_camera_capture_patch_start,
	msg_camera_capture_frame_start,
	msg_camera_capture_texture_start,
	msg_camera_capture_end,
	msg_camera_capture_param_1,
	msg_camera_capture_param_2,
	msg_camera_capture_param_3,

	msg_camera_reset_focus,

	msg_stream_end,
	msg_stream_error,
	msg_stream_resumed,
	msg_stream_resume_possible,
	
	msg_stream_abort,
	msg_stream_aborted,

	msg_game_activated,
	msg_game_reseted,

	msg_engine_end
};

#endif

engine\Anim_Symbol_Engine.h

#ifndef	ANIM_SYMBOL_ENGINE_H
#define ANIM_SYMBOL_ENGINE_H

enum
{
	anim_default,
	anim_wait,
	anim_anim_1,
	anim_anim_2,
	anim_anim_3,
	anim_action,
	anim_engine_end
};
	
#endif	//ANIM_SYMBOL_ENGINE_H

engine\Sound_Symbol_Engine.h

#ifndef	SOUND_SYMBOL_ENGINE_H
#define SOUND_SYMBOL_ENGINE_H

enum
{
	snd_default,
	snd_engine_end
};
	
#endif	//SOUND_SYMBOL_ENGINE_H

game\ABC_Message_Game.h

/********************************************************************
 *
 * $Workfile: ABC_Message_Game.h $
 *
 * (c) Copyright 2000 Kalisto USA.  All rights reserved.
 *
 * $Log: /GameSrc/Main/ABC_Message_Game.h $ 
 * 
 * 4     2/02/01 11:14a Fmizac
 * Camera Code cleaned, Commented out sections for Gamma correction.
 * All SetAnim commented out, in order to avoid asserts on the PS2
 * 
 * 3     1/30/01 6:02p Fmizac
 * 
 * 2     11/12/00 15:04 Fmizac
 * Project Creation
 * 
 *******************************************************************/

#ifndef ABC_MESSAGE_GAME_H
#define ABC_MESSAGE_GAME_H

#include	<ABC_Message_Engine.h>


enum
{
	msg_game_start=msg_engine_end,			//dont remove this.
	msg_wait_change_anim,
	
	msg_startButton_down,
	
	msg_run_level,
	msg_switch_costume,

	msg_go_next_item,
	msg_go_previous_item,
	msg_go_right_item,
	msg_go_left_item,
	msg_select_item,
	msg_abort_pause,
	msg_reset_player,
	msg_cancel_rtc,

	msg_coll_item_burger,
	msg_coll_item_jellyfish,
	msg_coll_item_magazine,

	msg_camera_look_mode_down,
	msg_camera_look_mode_on,
	msg_camera_look_mode_off,
	
	msg_anim_viewer_start,
	msg_anim_viewer_stop,
	msg_anim_viewer_prev_anim,
	msg_anim_viewer_next_anim,
	msg_anim_viewer_prev_object,
	msg_anim_viewer_next_object,

	msg_jump_up,
	msg_jump_down,
	
	msg_action_up,
	msg_action_down,

	msg_duck_up,
	msg_duck_down,

	msg_circle_up,
	msg_circle_down,

	msg_force_walk_up,
	msg_force_walk_down,

	msg_anim_karate_chop_finished,
	msg_anim_jump_finished,
	msg_anim_belly_slam_transition_finished,
	msg_anim_duck_finshed,
	msg_anim_jump_to_fall_finished,
	msg_anim_get_up_finished,
	msg_anim_pickup_finished,
	msg_anim_throw_finished,
	msg_anim_get_hit_finished,

	msg_jf_compress_done,
	msg_jf_pump_done,

	msg_collide_hit_karate_chop,
	msg_collide_hit_jf_net,
	msg_collide_hit_reefblower,
	msg_collide_hit_belly_slam,

	msg_collide_dur,
	msg_collide_hit,
	msg_collide_hit_noskel,
	msg_collide_pickup,
	msg_collide_collectable,

	msg_volume_enter,
	msg_volume_exit,
	msg_fadeout_done,
	
	msg_animation_finished,
	msg_timer_expired,
	msg_activate,
	msg_loop_counter,
	msg_setHeroYAngle,
	msg_animation_cough,
	msg_conv_activate,
	
	msg_gather,
	msg_state_enter,
	msg_state_exit,
	msg_springboard,

	msg_collide_hook,
	msg_anim_attach,
	msg_hook_collision_processed,
	msg_puzzle_tile_ready,
	msg_scramble_tile_puzzle,

	msg_anim_kr_transition,
	msg_jump_attack_finished,
	msg_duck_attack_finished,

	msg_camera_cannon_on,
	msg_camera_cannon_off,

	msg_voice_over_start,
	msg_voice_over_end,

	msg_hide,
	msg_unhide,

	msg_collide_on,
	msg_collide_off,

	msg_waterball_link,

	msg_rtc_playsoundbf,
	msg_message_id,
	msg_damaged_agent,
	msg_break_complete,
	msg_respawn_player,
	
	msg_keyframe_start,
	msg_keyframe_pause,
	msg_keyframe_stop,
	msg_keyframe_mark_0,
	msg_keyframe_mark_1,
	msg_keyframe_mark_2,
	msg_keyframe_mark_3,
	msg_keyframe_mark_4,
	msg_keyframe_mark_5,
	msg_keyframe_mark_6,
	msg_keyframe_mark_7,
	msg_keyframe_mark_8,
	msg_keyframe_mark_9,

	msg_hook_stop_before_reset,
	msg_hook_stop_no_reset,

	msg_load_game,

	msg_volume_camera_stop,

	//comes from SB animations.
	msg_anim_footstep_left,
	msg_anim_footstep_right,

	msg_immediate_damage,

	//	message box stuff inherited from Jimmy LWC 5-25-02
	msg_msgbox_ended,
	msg_msgbox_startaction,

	msg_msgbox_accept,
	msg_msgbox_decline,
	msg_msgbox_ok,
	msg_msgbox_cancel,
	msg_msgbox_yes,
	msg_msgbox_no,
	msg_msgbox_abort,
	msg_msgbox_retry,
	msg_msgbox_continue,

	msg_select_button_down,
	msg_script_give,
	msg_stop_vibration,
	msg_jfish_bubble,
	
	msg_relink_carried,

	msg_costume_tent_default,
	msg_costume_tent_jellyfishing,
	msg_costume_tent_reefblower,
	msg_costume_tent_mermaidman,
	
	msg_rtc_effect_play,
	msg_rtc_effect_pause,
	
	msg_rtc_char_effect_play,
	msg_rtc_char_effect_pause,

	msg_msgbox_left,
	msg_msgbox_right,
	
	msg_anim_bubble_effect,
	msg_anim_hit_effect,
	
	msg_found_treasure,
	msg_puzzle_solved,
	msg_start_vibration,
	msg_collide_clam,
	
	msg_begin_memcard_initial_check,

	msg_run_tile_puzzle
};
#endif //ABC_MESSAGE_GAME_H

game\Anim_Symbol_Game.h

//--------------------------------------------------------------------------------------------
//
// Anim_Symbol_Game.cpp
//
// (c) Copyright 2000 Kalisto USA.  All rights reserved.
// 
//--------------------------------------------------------------------------------------------


#ifndef ANIM_SYMBOL_GAME_H
#define ANIM_SYMBOL_GAME_H

#include <Anim_Symbol_Engine.h>

enum
{
	anim_game_start=anim_engine_end,
	anim_wait01,
	anim_wait02,
	anim_wait03,
	anim_wait04,
	anim_wait05,
	anim_walk,
	anim_walk01,
	anim_walk02,
	anim_jog,
	anim_run,
	anim_run01,
	anim_run02,
	anim_skid_in,
	anim_skid,
	anim_skid_out,
	anim_jump,
	anim_jump01,
	anim_jump02,
	anim_jump_pwr,
	anim_jump_to_fall,
	anim_jump_fall,
	anim_jump_fall01,
	anim_jump_fall02,
	anim_jump_land,
	anim_hook_hang,
	anim_attack,
	anim_attack01,
	anim_attack02,
	anim_attack03,
	anim_attack04,
	anim_attack05,
	anim_attack06,
	anim_attack07,
	anim_attack08,
	anim_attack09,
	anim_jump_attack,
	anim_moving_attack,
	anim_pwr_attack,
	anim_pwr_attack01,
	anim_pwr_attack02,
	anim_pwr_attack03,
	anim_attack_jump,
	anim_attack_jump01,
	anim_attack_jump02,
	anim_attack_jump03,
	anim_attack_jump_kick,
	anim_attack_jump_kick01,
	anim_attack_jump_kick02,
	anim_attack_jump_kick03,
	anim_attack_jump_punch,
	anim_attack_jump_punch01,
	anim_attack_jump_punch02,
	anim_attack_jump_punch03,
	anim_chop_wndup,
	anim_duck_attack,
	anim_duck_in,
	anim_duck_in01,
	anim_duck_in02,
	anim_duck_hld,
	anim_duck_out,
	anim_belly_bump,
	anim_belly_slam,
	anim_belly_slam_land,
	anim_belly_slam_flip,
	anim_get_hit,
	anim_get_hit01,
	anim_get_hit02,
	anim_defeated,
	anim_defeated01,
	anim_defeated02,
	anim_laugh,
	anim_laugh01,
	anim_laugh02,
	anim_talk_std,
	anim_talk_std01,
	anim_talk_std02,
	anim_talk_std03,
	anim_talk_std04,
	anim_talk_std05,
	anim_talk_std06,
	anim_talk_std07,
	anim_talk_std08,
	anim_talk_std09,
	anim_talk_std10,
	anim_talk_std11,
	anim_talk_std12,
	anim_talk_std13,
	anim_talk_std14,
	anim_talk_std15,
	anim_talk_std16,
	anim_talk_std17,
	anim_talk_std18,
	anim_talk_std19,
	anim_talk_std20,
	anim_talk_std21,
	anim_talk_std22,
	anim_talk_std23,
	anim_talk_std24,
	anim_talk_std25,
	anim_talk_std26,
	anim_talk_std27,
	anim_talk_std28,
	anim_talk_std29,
	anim_glide,
	anim_glide_land,
	anim_roll,
	anim_slide,
	anim_slide01,
	anim_slide02,
	anim_pickup,
	anim_pickup01,
	anim_pickup02,
	anim_carry,
	anim_jump_carry,
	anim_carry_fall,
	anim_drop,			
	anim_hold,			
	anim_throw,
	anim_throw01,
	anim_throw02,
	anim_jf_compress,	
	anim_jf_pump,		
	anim_jf_glide,	

	anim_open,
	anim_opening,
	anim_closed,
	anim_closing,

	anim_tucked,
	anim_tuck_out,

	anim_spring,

	anim_alerted,
	anim_alerted01,
	anim_alerted02,
	anim_alerted_idle,
	anim_alerted_idle01,
	anim_alerted_idle02,

	anim_attack_charge,
	anim_attack_charge01,
	anim_attack_charge02,
	anim_jump_moving,
	anim_jump_moving01,
	anim_jump_moving02,
	anim_fly,
	anim_fly01,
	anim_fly02,

	anim_run_attack,

	anim_misc,
	anim_misc01,
	anim_misc02,
	anim_misc03,
	anim_misc04,
	anim_misc05,
	anim_misc06,
	anim_misc07,
	anim_misc08,
	anim_misc09,
	anim_misc10,
	anim_misc11,
	anim_misc12,
	anim_misc13,
	anim_misc14,
	anim_misc15,
	anim_misc16,
	anim_misc17,
	anim_misc18,
	anim_misc19,
	anim_misc20,
	anim_misc21,
	anim_misc22,
	anim_misc23,
	anim_misc24,
	anim_misc25,
	anim_misc26,
	anim_misc27,
	anim_misc28,
	anim_misc29,

	anim_jf_move_all,

	anim_turn,

	anim_talk_hold,
	anim_talk_hold01,
	anim_talk_hold02,

	anim_game_end	//-tm- please end with this !!
};

#endif //ANIM_SYMBOL_GAME_H

game\Sound_Symbol_Game.h

/********************************************************************
 *
 * $Workfile: Sound_Symbol_Game.h $
 *
 * (c) Copyright 2000 Kalisto USA.  All rights reserved.
 *
 * $Log: /GameSrc/Main/Sound_Symbol_Game.h $ 
 * 
 * 2     11/12/00 15:04 Fmizac
 * Project Creation
 * 
 *******************************************************************/

#ifndef SOUND_SYMBOL_GAME_H
#define SOUND_SYMBOL_GAME_H

#include	<Sound_Symbol_Engine.h>

enum
{
	snd_game_start=snd_engine_end,	//dont remove this.
	snd_collect,
	snd_jump,
	snd_powerjump,
	
	//step sounds for spongebob.
	snd_step_left_bone,
	snd_step_left_carpet,
	snd_step_left_glass,
	snd_step_left_dirt,
	snd_step_left_gravel,
	snd_step_left_metal,
    snd_step_left_mud,
    snd_step_left_road,
	snd_step_left_sand,
	snd_step_left_stone,     
	snd_step_left_water,     
	snd_step_left_wood,
	snd_step_left_default,

	snd_step_right_bone,
	snd_step_right_carpet,
	snd_step_right_glass,
	snd_step_right_dirt,
	snd_step_right_gravel,
	snd_step_right_metal,
    snd_step_right_mud,
    snd_step_right_road,
	snd_step_right_sand,
	snd_step_right_stone,     
	snd_step_right_water,     
	snd_step_right_wood,
	snd_step_right_default,

	// for breakables
	snd_break,		

	// for NPCs and such
	snd_defeated,	
	snd_defeated01,
	snd_defeated02,


	// for bombs
	snd_lit,		
	snd_burn,		
	snd_explode,

	// menus
	snd_menu_accept,
	snd_menu_reject,
	snd_menu_goback,
	snd_menu_scroll,
	snd_menu_slider,
	snd_menu_task,

	snd_fall,

	// multiple for dif landing textures
	snd_land,
	snd_land01,
	snd_land02,

	snd_collide,
	snd_collide01,
	snd_collide02,

	snd_skid_in,
	snd_skid,
	snd_skid_out,

	snd_attack,
	snd_attack01,
	snd_attack02,
	snd_attack03,
	snd_attack04,
	snd_attack05,
	snd_attack06,
	snd_attack07,
	snd_attack08,
	snd_attack09,
	snd_jump_attack,
	snd_moving_attack,
	snd_pwr_attack,
	snd_pwr_attack01,
	snd_pwr_attack02,
	snd_pwr_attack03,
	
	snd_attack_jump,
	snd_attack_jump01,
	snd_attack_jump02,
	snd_attack_jump03,
	snd_attack_jump_kick,
	snd_attack_jump_kick01,
	snd_attack_jump_kick02,
	snd_attack_jump_kick03,
	snd_attack_jump_punch,
	snd_attack_jump_punch01,
	snd_attack_jump_punch02,
	snd_attack_jump_punch03,
	
	snd_duck_attack,
	snd_duck_in,
	snd_duck_in01,
	snd_duck_in02,
	snd_duck_hld,
	snd_duck_out,

	snd_get_hit,
	snd_get_hit01,
	snd_get_hit02,

	snd_impact_char,
	snd_impact_char01,
	snd_impact_char02,

	snd_impact_obj,
	snd_impact_obj01,
	snd_impact_obj02,

	snd_laugh,
	snd_laugh01,
	snd_laugh02,

	snd_roll,

	snd_slide,
	snd_slide01,
	snd_slide02,

	snd_pickup,
	snd_pickup01,
	snd_pickup02,

	snd_carry,
	snd_jump_carry,
	snd_carry_fall,

	snd_drop,			
	snd_hold,			

	snd_open,
	snd_opening,
	snd_closed,
	snd_closing,

	snd_spring,

	snd_fly,
	snd_fly01,
	snd_fly02,

	snd_misc,
	snd_misc01,
	snd_misc02,
	snd_misc03,
	snd_misc04,
	snd_misc05,
	snd_misc06,
	snd_misc07,
	snd_misc08,
	snd_misc09,
	snd_misc10,
	snd_misc11,
	snd_misc12,
	snd_misc13,
	snd_misc14,
	snd_misc15,
	snd_misc16,
	snd_misc17,
	snd_misc18,
	snd_misc19,
	snd_misc20,
	snd_misc21,
	snd_misc22,
	snd_misc23,
	snd_misc24,
	snd_misc25,
	snd_misc26,
	snd_misc27,
	snd_misc28,
	snd_misc29,

	snd_turn,
	snd_step_left_gold,
	snd_step_right_gold,
	snd_bubble_wipe,
	snd_td_jump,
	snd_td_slam,
	snd_td_throw,
	snd_splash_small,
	snd_splash_large

};

#endif //SOUND_SYMBOL_GAME_H

Scripts

Many if not all of the games' scripts are stored as text and are fully readable.

Message Boxes

Message boxes are defined in BOXTEXTGC.TXT and their behavior is dictated by this script.

Changing Tent

ITEM
{
ID		MSG_COSTUME_TENT_JF
To change costume:
Press \x7B for Default
Press \x7C for Jellyfishing
}

ITEM
{
ID		MSG_COSTUME_TENT_JF_MM
To change costume:
Press \x7B for Default
Press \x7C for Jellyfishing
Press \x7E for Mermaid Man
}

ITEM
{
ID		MSG_COSTUME_TENT_JF_RB
To change costume:
Press \x7B for Default
Press \x7C for Jellyfishing
Press \x7D for Reefblower
}

All of these MessageBoxes for changing costumes refer to the "Square Pants" costume as "Default". "Fishing Gear" is also called "Jellyfishing" and "Reefblower" is now one word instead of two.

Interestingly, there are message boxes for having the Reef Blower and not Mermaid Man unlocked, even though In-Game this can never happen due to the game's linear progression.

MSG_COSTUME_TENT_NOT_UNLOCKED

You have not unlocked any costumes yet!

You will always have the Square Pants "costume" by default, leaving this unused.

Executable File

The game's executable, has a few interesting little strings.

Karate: nNumToDrop > nTotalOpenSlotCount this used to crash here !!!!!!!!!!!!!!!!!
Karate: debug Couldn't find good drop point
Pausing an effect that is already paused.
Game Not Found..
Sound %u is %u bytes long, TOO BIG TOO BIG ?
YOU CAN'T SAVE HERE
An error occured in: Init Please check stderr.txt for more information
X Angle Governor kicking in!
Taking emergency camera action!
Target is not set, you must set Target before using State_Attack_Flee
RtcId %d does not (yet) exist in level
SoundBF ERROR, Line number cannot be above 65535, we have %s !!
TotemTech Data v1.73 (c) 1999-2002 Kalisto Entertainment - All right reserved
You are late
You are ahead
Got reset data as DEADBEEF!
Got no reboot data!****************************************8
Got DEADBEEF RESET data!****************************************
Useless but keep that or it will crashes
Useless as well, but keep that or it will crashes
Not ok on first try, restarting
Out of Async Error Loop after error ;)
>>> L2 INVALIDATE : SHOULD NEVER HAPPEN

There's also a build date.

Nov  5 2002
12:52:29

vo_test.txt

In the same folder as the test sound, vo_test.txt has some captions.

This is a sample voice over script.
It can be used to communicate information
to the player.

Text can be color coded if more than one
voice is heard.
ENDTEXT

This is another sample voice over script.
VOs are a good way to teach the player how
to play the game
ENDTEXT

Encrypted Messages

There are several messages encrypted using Caesar cipher in the executable:

Jim really likes poo

Amy Sue, Jim loves you!!

You have moved into a dark place.
It is pitch black.  You are likely to be eaten by a Grue.

Hi Yurina!  I just wanted to tell you that I love you

Jim in this context is probably programmer Jim McHugh. The third message is a reference to the game Zork.