//* icsal.h - header for icsal.c //* ICSAL op-code constant definitions - there are two sets: //* 1 - Regular set without 'last call' bit set allowing further commands to be //* executed before the current ICSAL call terminates. //* 2 - Set prefixed with END_ and with 'last call' bit set (0x100) to cause //* termination of current ICSAL call after execution of the command. enum { //* GsSPRITE operation commands set_sprite_attr_all, set_sprite_attr_brightness, set_sprite_attr_clut_mode, set_sprite_attr_rotation, set_sprite_attr_trans_rate, set_sprite_attr_transparency, set_sprite_attr_display, set_sprite_x, set_sprite_y, add_sprite_x, add_sprite_y, add_sprite_x_data, add_sprite_y_data, set_sprite_width, set_sprite_height, add_sprite_width, add_sprite_height, get_sprite_tpage, set_sprite_texture_u, set_sprite_texture_v, add_sprite_texture_u, add_sprite_texture_v, get_sprite_clut_xy, set_sprite_rgb, add_sprite_rgb, add_sprite_mx, add_sprite_my, set_sprite_rotation_xy, set_sprite_scale_xy, set_sprite_rotation_degree, add_sprite_rotation_degree, add_sprite_scale_x, add_sprite_scale_y, change_sprite_tim, //* struct SCTRL operation instructions set_ctrl_wx, set_ctrl_wy, add_ctrl_wx, add_ctrl_wy, add_ctrl_wx_data, add_ctrl_wy_data, set_ctrl_accelX, set_ctrl_accelY, add_ctrl_accelXY, set_ctrl_speed, set_ctrl_repsPerFrame, set_ctrl_frameCount, set_ctrl_currFrame, set_ctrl_alive, set_ctrl_dir, set_ctrl_locks, set_ctrl_ID, set_ctrl_bbXOff, set_ctrl_bbYOff, set_ctrl_bbW, set_ctrl_bbH, set_ctrl_high, add_ctrl_high, add_ctrl_high_data, set_ctrl_isLight, set_ctrl_unintICSAL, set_ctrl_shadStat, add_ctrl_shadBase, set_ctrl_moveCount, //* Specialized operation functions move_chasing_enemy, move_enemy, move_chasing_ufo, move_mining_ufo, move_ufo, move_lost_baby, move_following_baby, move_centre_tv, move_decoy_boy, handle_sprite_over_wall, handle_shadow_over_wall, handle_heart_over_wall, start_bullet_blur, update_bullet_blur, update_coin_fall, update_fdrop_buildUp, update_powflash_xy, update_orbit, update_ufo_crash, update_ufo_fall, goto_orbit, set_spin_frame, reset_moneybag, check_landing_action, c1, c2, c3, c4, c5, c6, c7, c8, c9, //* General control operation instructions set_loop_start, repeat_loop, set_data_start, loop_while_data, loop_repeat_data, if_floor_hit_expire, reuse_last_data, do_nothing, done_if_x_past, play_sfx, //* Note: the following constants will index the same ICSAL functions as //* the above constants except they have the 'last call' bit set (bit that holds 256) //* so will cause termination of the ICSAL call after execution. //* GsSPRITE operation commands END_set_sprite_attr_all = 0x100, END_set_sprite_attr_brightness, END_set_sprite_attr_clut_mode, END_set_sprite_attr_rotation, END_set_sprite_attr_trans_rate, END_set_sprite_attr_transparency, END_set_sprite_attr_display, END_set_sprite_x, END_set_sprite_y, END_add_sprite_x, END_add_sprite_y, END_add_sprite_x_data, END_add_sprite_y_data, END_set_sprite_width, END_set_sprite_height, END_add_sprite_width, END_add_sprite_height, END_get_sprite_tpage, END_set_sprite_texture_u, END_set_sprite_texture_v, END_add_sprite_texture_u, END_add_sprite_texture_v, END_get_sprite_clut_xy, END_set_sprite_rgb, END_add_sprite_rgb, END_add_sprite_mx, END_add_sprite_my, END_set_sprite_rotation_xy, END_set_sprite_scale_xy, END_set_sprite_rotation_degree, END_add_sprite_rotation_degree, END_add_sprite_scale_x, END_add_sprite_scale_y, END_change_sprite_tim, //* struct SCTRL operation instructions END_set_ctrl_wx, END_set_ctrl_wy, END_add_ctrl_wx, END_add_ctrl_wy, END_add_ctrl_wx_data, END_add_ctrl_wy_data, END_set_ctrl_accelX, END_set_ctrl_accelY, END_add_ctrl_accelXY, END_set_ctrl_speed, END_set_ctrl_repsPerFrame, END_set_ctrl_frameCount, END_set_ctrl_currFrame, END_set_ctrl_alive, END_set_ctrl_dir, END_set_ctrl_locks, END_set_ctrl_ID, END_set_ctrl_bbXOff, END_set_ctrl_bbYOff, END_set_ctrl_bbW, END_set_ctrl_bbH, END_set_ctrl_high, END_add_ctrl_high, END_add_ctrl_high_data, END_set_ctrl_isLight, END_set_ctrl_unintICSAL, END_set_ctrl_shadStat, END_add_ctrl_shadBase, END_set_ctrl_moveCount, //* Specialized operation functions END_move_chasing_enemy, END_move_enemy, END_move_chasing_ufo, END_move_mining_ufo, END_move_ufo, END_move_lost_baby, END_move_following_baby, END_move_centre_tv, END_move_decoy_boy, END_handle_sprite_over_wall, END_handle_shadow_over_wall, END_handle_heart_over_wall, END_start_bullet_blur, END_update_bullet_blur, END_update_coin_fall, END_update_fdrop_buildUp, END_update_powflash_xy, END_update_orbit, END_update_ufo_crash, END_update_ufo_fall, END_goto_orbit, END_set_spin_frame, END_reset_moneybag, END_check_landing_action, REP_tv_off, REP_tv_on, END_run_baby_wander, END_beam, REP_update_HUD_box, REP_close_HUD_box, REP_update_range_HUD, REP_close_range_HUD, REP_close_decoy_boy, //* General control operation instructions d1, //* Dummy place holders to step past already used values above d2, d3, d4, d5, END_if_floor_hit_expire, END_reuse_last_data, END_do_nothing, END_done_if_x_past, END_play_sfx, END_proc, END_kill_sprite, END_expire_bullet }; //* icsal.c global function prototypes void RunICSAL(register struct SCTRL *sprite);