diff options
author | Eugene Sandulenko | 2004-04-12 21:40:49 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2004-04-12 21:40:49 +0000 |
commit | f3d340fb0ce72b9db59b8c701153bc82b595f75e (patch) | |
tree | bf250cf3a1e6aee35c7f40d766994b0c2c188e5c /saga/scene.h | |
parent | 0a0a0c7b0609d8774cef849e7511e7b21d12c5db (diff) | |
download | scummvm-rg350-f3d340fb0ce72b9db59b8c701153bc82b595f75e.tar.gz scummvm-rg350-f3d340fb0ce72b9db59b8c701153bc82b595f75e.tar.bz2 scummvm-rg350-f3d340fb0ce72b9db59b8c701153bc82b595f75e.zip |
WIP for SAGA engine.
o text formatting is not consistent with rules, just indent utility is too
dumb for that
o it does not use OSystem, i.e. it runs on direct SDL calls
o it may not even compile on your box
o if you enable it, expect zillions of warnings
o no sound
Now it runs ITE intro as reinherit did
svn-id: r13564
Diffstat (limited to 'saga/scene.h')
-rw-r--r-- | saga/scene.h | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/saga/scene.h b/saga/scene.h new file mode 100644 index 0000000000..21478c64c1 --- /dev/null +++ b/saga/scene.h @@ -0,0 +1,229 @@ +/* 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$ + * + */ +/* + Description: + + Scene management module private header file + + Notes: +*/ + +#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_SCENE_DESC_LEN 16 + +typedef struct R_SCENE_DESC_tag { + + int unknown0; + int res_list_rn; + int end_slope; + int begin_slope; + int script_num; + int scene_scriptnum; + int start_scriptnum; + int music_rn; + + struct R_SCENE_RESLIST_tag *res_list; + size_t res_list_ct; + +} R_SCENE_DESC; + +#define SAGA_RESLIST_ENTRY_LEN 4 + +typedef struct R_SCENE_RESLIST_tag { + + ulong res_number; + int res_type; + + uchar *res_data; + size_t res_data_len; + +} R_SCENE_RESLIST; + +typedef struct SCENE_IMAGE_tag { + + int loaded; + + int w; + int h; + int p; + + uchar *buf; + size_t buf_len; + + uchar *res_buf; + size_t res_len; + + PALENTRY pal[256]; + +} SCENE_IMAGE; + +typedef struct SCENE_ANIMINFO_tag { + + int anim_res_number; + int anim_handle; + + struct SCENE_ANIMINFO_tag *next; + +} SCENE_ANIMINFO; + +typedef struct R_SCENE_QUEUE_tag { + + ulong scene_n; + R_SCENE_DESC *scene_desc; + int load_flag; + + R_SCENE_PROC *scene_proc; + int scene_skiptarget; + +} R_SCENE_QUEUE; + +typedef struct R_SCENE_MODULE_tag { + + 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; + +} R_SCENE_MODULE; + +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, struct R_SCENE_DESC_tag *); + +int LoadSceneDescriptor(ulong res_number); + +int LoadSceneResourceList(ulong res_number); + +int ProcessSceneResources(void); + +void CF_scenechange(int argc, char *argv[]); + +void CF_sceneinfo(int argc, char *argv[]); + +/* + * r_sceneproc.c +\*--------------------------------------------------------------------------*/ + +int IHNM_StartProc(void); + +int InitialSceneProc(int param, R_SCENE_INFO * scene_info); +int DefaultSceneProc(int param, R_SCENE_INFO * scene_info); + +/* + * r_ite_introproc.c +\*--------------------------------------------------------------------------*/ + +int ITE_StartProc(void); +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); + +/* + * r_ihnm_introproc.c +\*--------------------------------------------------------------------------*/ +int IHNM_StartProc(void); +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 /* SAGA_SCENE_H_ */ |