script_func.h
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef SCRIPT_FUNC_H
#define SCRIPT_FUNC_H
#include "common/array.h"
#include "toon/script.h"
namespace Toon {
class ScriptFunc;
typedef Common::Functor1Mem<EMCState *, int32, ScriptFunc> OpcodeV2;
class ScriptFunc {
public:
ScriptFunc(ToonEngine *vm);
~ScriptFunc(void);
Common::Array<const OpcodeV2 *> _opcodes;
ToonEngine *_vm;
#define SYSFUNC(x) int32 x(EMCState *)
SYSFUNC(sys_Cmd_Dummy);
SYSFUNC(sys_Cmd_Change_Actor_X_And_Y);
SYSFUNC(sys_Cmd_Init_Talking_Character);
SYSFUNC(sys_Cmd_Draw_Actor_Standing);
SYSFUNC(sys_Cmd_Get_Actor_X);
SYSFUNC(sys_Cmd_Get_Actor_Y);
SYSFUNC(sys_Cmd_Get_Actor_Facing);
SYSFUNC(sys_Cmd_Get_Last_Scene);
SYSFUNC(sys_Cmd_Debug_Print);
SYSFUNC(sys_Cmd_Flip_Screens);
SYSFUNC(sys_Cmd_Play_Flic);
SYSFUNC(sys_Cmd_Force_Facing);
SYSFUNC(sys_Cmd_Restart_Thread);
SYSFUNC(sys_Cmd_Walk_Actor_To_Point);
SYSFUNC(sys_Cmd_Set_Sack_Visible);
SYSFUNC(sys_Cmd_Set_Actor_Facing);
SYSFUNC(sys_Cmd_Confiscate_Inventory);
SYSFUNC(sys_Cmd_Character_Talks);
SYSFUNC(sys_Cmd_Visited_Scene);
SYSFUNC(sys_Cmd_Query_Rif_Flag);
SYSFUNC(sys_Cmd_Query_Scroll);
SYSFUNC(sys_Cmd_Set_Initial_Location);
SYSFUNC(sys_Cmd_Make_Line_Non_Walkable);
SYSFUNC(sys_Cmd_Make_Line_Walkable);
SYSFUNC(sys_Cmd_Walk_Actor_On_Condition);
SYSFUNC(sys_Cmd_Set_Actor_Facing_Point);
SYSFUNC(sys_Cmd_Set_Inventory_Slot);
SYSFUNC(sys_Cmd_Get_Inventory_Slot);
SYSFUNC(sys_Cmd_Add_Item_To_Inventory);
SYSFUNC(sys_Cmd_Set_Actor_RGB_Modifiers);
SYSFUNC(sys_Cmd_Init_Conversation_AP);
SYSFUNC(sys_Cmd_Actor_Talks);
SYSFUNC(sys_Cmd_Say_Lines);
SYSFUNC(sys_Cmd_Set_Rif_Flag);
SYSFUNC(sys_Cmd_Empty_Inventory);
SYSFUNC(sys_Cmd_Set_Anim_Scale_Size);
SYSFUNC(sys_Cmd_Delete_Item_From_Inventory);
SYSFUNC(sys_Cmd_Specific_Item_In_Inventory);
SYSFUNC(sys_Cmd_Run_Script);
SYSFUNC(sys_Cmd_Query_Game_Flag);
SYSFUNC(sys_Cmd_Reset_Game_Flag);
SYSFUNC(sys_Cmd_Set_Game_Flag);
SYSFUNC(sys_Cmd_Create_Mouse_Item);
SYSFUNC(sys_Cmd_Destroy_Mouse_Item);
SYSFUNC(sys_Cmd_Get_Mouse_State);
SYSFUNC(sys_Cmd_Hide_Mouse);
SYSFUNC(sys_Cmd_Exit_Conversation);
SYSFUNC(sys_Cmd_Set_Mouse_Pos);
SYSFUNC(sys_Cmd_Show_Mouse);
SYSFUNC(sys_Cmd_In_Close_Up);
SYSFUNC(sys_Cmd_Set_Scroll_Lock);
SYSFUNC(sys_Cmd_Fill_Area_Non_Walkable);
SYSFUNC(sys_Cmd_Set_Scroll_Coords);
SYSFUNC(sys_Cmd_Hide_Cutaway);
SYSFUNC(sys_Cmd_Show_Cutaway);
SYSFUNC(sys_Cmd_Pause_Ticks);
SYSFUNC(sys_Cmd_In_Conversation);
SYSFUNC(sys_Cmd_Character_Talking);
SYSFUNC(sys_Cmd_Set_Flux_Facing_Point);
SYSFUNC(sys_Cmd_Set_Flux_Facing);
SYSFUNC(sys_Cmd_Set_Flux_Coords);
SYSFUNC(sys_Cmd_Set_Flux_Visible);
SYSFUNC(sys_Cmd_Get_Flux_X);
SYSFUNC(sys_Cmd_Get_Flux_Y);
SYSFUNC(sys_Cmd_Get_Flux_Facing);
SYSFUNC(sys_Cmd_Get_Flux_Flags);
SYSFUNC(sys_Cmd_Query_Flux_Coords);
SYSFUNC(sys_Cmd_Have_A_Conversation);
SYSFUNC(sys_Cmd_Walk_Flux_To_Point);
SYSFUNC(sys_Cmd_Query_Scene_Anim_Loaded);
SYSFUNC(sys_Cmd_Play_Flux_Anim);
SYSFUNC(sys_Cmd_Set_Anim_Priority);
SYSFUNC(sys_Cmd_Place_Scene_Anim);
SYSFUNC(sys_Cmd_Update_Scene_Animations);
SYSFUNC(sys_Cmd_Get_Drew_Scale);
SYSFUNC(sys_Cmd_Query_Drew_Flags);
SYSFUNC(sys_Cmd_Set_Music);
SYSFUNC(sys_Cmd_Query_Speech);
SYSFUNC(sys_Cmd_Enter_New_Scene);
SYSFUNC(sys_Cmd_Enter_Same_Scene);
SYSFUNC(sys_Cmd_Is_Pixel_Walkable);
SYSFUNC(sys_Cmd_Show_Screen);
SYSFUNC(sys_Cmd_Hide_Screen);
SYSFUNC(sys_Cmd_Set_Special_Enter_X_And_Y);
SYSFUNC(sys_Cmd_Get_Mouse_X);
SYSFUNC(sys_Cmd_Get_Mouse_Y);
SYSFUNC(sys_Cmd_Fade_Palette);
SYSFUNC(sys_Cmd_Music_Enabled);
SYSFUNC(sys_Cmd_Random);
SYSFUNC(sys_Cmd_Wait_Key);
SYSFUNC(sys_Cmd_Draw_Scene_Anim_WSA_Frame_To_Back);
SYSFUNC(sys_Cmd_Set_Scene_Anim_Wait);
SYSFUNC(sys_Cmd_Init_Scene_Anim);
SYSFUNC(sys_Cmd_Set_Scene_Animation_Active_Flag);
SYSFUNC(sys_Cmd_Draw_Scene_Anim_WSA_Frame);
SYSFUNC(sys_Cmd_Move_Scene_Anim);
SYSFUNC(sys_Cmd_Run_Actor_Default_Script);
SYSFUNC(sys_Cmd_Set_Location_Data);
SYSFUNC(sys_Cmd_Set_CountDown_Timer);
SYSFUNC(sys_Cmd_Query_CountDown_Timer);
SYSFUNC(sys_Cmd_Proceed_To_Next_Chapter);
SYSFUNC(sys_Cmd_Play_Sfx_Plus);
SYSFUNC(sys_Cmd_Play_Sfx);
SYSFUNC(sys_Cmd_Set_Ambient_Sfx);
SYSFUNC(sys_Cmd_Kill_Ambient_Sfx);
SYSFUNC(sys_Cmd_Set_Ambient_Sfx_Plus);
SYSFUNC(sys_Cmd_Set_Ambient_Volume);
SYSFUNC(sys_Cmd_Freeze_Scene_Animation);
SYSFUNC(sys_Cmd_Unfreeze_Scene_Animation);
SYSFUNC(sys_Cmd_Scene_Animation_Frozen);
SYSFUNC(sys_Cmd_Set_Script_Game_Data_Global);
SYSFUNC(sys_Cmd_Get_Script_Game_Data_Global);
SYSFUNC(sys_Cmd_Say_Line);
SYSFUNC(sys_Cmd_Knight_Puzzle_Get_Coord);
SYSFUNC(sys_Cmd_Add_Scene_Anim);
SYSFUNC(sys_Cmd_Remove_Scene_Anim);
SYSFUNC(sys_Cmd_Disable_Timer);
SYSFUNC(sys_Cmd_Enable_Timer);
SYSFUNC(sys_Cmd_Set_Timer);
SYSFUNC(sys_Cmd_Set_Palette_Color);
SYSFUNC(sys_Cmd_Number_Of_NPCs);
SYSFUNC(sys_Cmd_Get_Config_Language);
SYSFUNC(sys_Cmd_Get_Actor_Final_X);
SYSFUNC(sys_Cmd_Get_Actor_Final_Y);
};
} // End of namespace Toon
#endif