/* ScummVM - Scumm Interpreter * Copyright (C) 2004 The ScummVM project * * The ReInherit Engine is (C)2000-2003 by Daniel Balsom. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Header$ * */ // Scene management module private header file #ifndef SAGA_SCENE_H #define SAGA_SCENE_H namespace Saga { enum SCENE_LOAD_FLAGS { BY_RESOURCE = 0, BY_SCENE, BY_DESC }; enum SCENE_PROC_PARAMS { SCENE_BEGIN = 0, SCENE_END }; // Resource type numbers enum SAGA_RESOURCE_TYPES { SAGA_BG_IMAGE = 2, SAGA_BG_MASK = 3, SAGA_OBJECT_NAME_LIST = 5, SAGA_OBJECT_MAP = 6, SAGA_ACTION_MAP = 7, SAGA_ISO_TILESET = 8, SAGA_ISO_METAMAP = 9, SAGA_ISO_METATILESET = 10, SAGA_ANIM_1 = 14, SAGA_ANIM_2, SAGA_ANIM_3, SAGA_ANIM_4, SAGA_ANIM_5, SAGA_ANIM_6, SAGA_ANIM_7, SAGA_PAL_ANIM = 23 }; #define SAGA_RESLIST_ENTRY_LEN 4 struct R_SCENE_RESLIST { uint32 res_number; int res_type; byte *res_data; size_t res_data_len; }; #define SAGA_SCENE_DESC_LEN 16 struct R_SCENE_DESC { int unknown0; int res_list_rn; int end_slope; int begin_slope; int script_num; int scene_scriptnum; int start_scriptnum; int music_rn; R_SCENE_RESLIST *res_list; size_t res_list_ct; }; struct SCENE_IMAGE { int loaded; int w; int h; int p; byte *buf; size_t buf_len; byte *res_buf; size_t res_len; PALENTRY pal[256]; }; struct SCENE_ANIMINFO { int anim_res_number; int anim_handle; SCENE_ANIMINFO *next; }; struct R_SCENE_QUEUE { uint32 scene_n; R_SCENE_DESC *scene_desc; int load_flag; R_SCENE_PROC *scene_proc; int scene_skiptarget; }; struct R_SCENE_MODULE { int init; R_RSCFILE_CONTEXT *scene_ctxt; int *scene_lut; int scene_count; int scene_max; YS_DL_LIST *scene_queue; int first_scene; int scene_loaded; int scene_mode; int scene_number; int scene_rn; int in_game; int load_desc; R_SCENE_DESC desc; int reslist_loaded; int reslist_entries; R_SCENE_RESLIST *reslist; int anim_entries; YS_DL_LIST *anim_list; R_SCENE_PROC *scene_proc; R_TEXTLIST *text_list; SCENE_IMAGE bg; SCENE_IMAGE bg_mask; }; int SCENE_Queue(R_SCENE_QUEUE * scene_queue); int SCENE_ClearQueue(void); int SCENE_Load(int scene, int load_flag, R_SCENE_PROC scene_proc, R_SCENE_DESC *); int LoadSceneDescriptor(uint32 res_number); int LoadSceneResourceList(uint32 res_number); int ProcessSceneResources(); void CF_scenechange(int argc, char *argv[]); void CF_sceneinfo(int argc, char *argv[]); int IHNM_StartProc(); int InitialSceneProc(int param, R_SCENE_INFO *scene_info); int DefaultSceneProc(int param, R_SCENE_INFO *scene_info); int ITE_StartProc(); int ITE_IntroAnimProc(int param, R_SCENE_INFO *scene_info); int ITE_IntroCave1Proc(int param, R_SCENE_INFO *scene_info); int ITE_IntroCave2Proc(int param, R_SCENE_INFO *scene_info); int ITE_IntroCave3Proc(int param, R_SCENE_INFO *scene_info); int ITE_IntroCave4Proc(int param, R_SCENE_INFO *scene_info); int ITE_IntroValleyProc(int param, R_SCENE_INFO *scene_info); int ITE_IntroTreeHouseProc(int param, R_SCENE_INFO *scene_info); int ITE_IntroFairePathProc(int param, R_SCENE_INFO *scene_info); int ITE_IntroFaireTentProc(int param, R_SCENE_INFO *scene_info); int IHNM_StartProc(); int IHNM_IntroMovieProc1(int param, R_SCENE_INFO *scene_info); int IHNM_IntroMovieProc2(int param, R_SCENE_INFO *scene_info); int IHNM_IntroMovieProc3(int param, R_SCENE_INFO *scene_info); int IHNM_HateProc(int param, R_SCENE_INFO *scene_info); } // End of namespace Saga #endif