SpongeBob SquarePants: Revenge of the Flying Dutchman (GameCube, PlayStation 2)/Development Text
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.