mirror of
https://github.com/astromaddie/HaloCE-VR.git
synced 2026-10-19 23:00:14 +02:00
Recover transparent geometry submit (+1,285 meaningful code, zero exact losses); reconcile COMMON ownership and Q10 85+EXT1 credit, actions/main data, and separately disclosed denominator corrections. Preserve canonical-only repairs and all held research. C09 is ordinary disclosed cleanup, not a claim of proven scaffolding intent. Clean rebuild, 1,663 tests, parks, audits, provider links and independent EXT1 check pass. Local reconciliation only.
325 lines
7.9 KiB
C
325 lines
7.9 KiB
C
/*
|
|
AI_SCRIPT.H
|
|
|
|
header included in hcex build.
|
|
*/
|
|
|
|
#ifndef __AI_SCRIPT_H
|
|
#define __AI_SCRIPT_H
|
|
#pragma once
|
|
|
|
/* ---------- headers */
|
|
|
|
#include "math/real_math.h"
|
|
|
|
/* ---------- constants */
|
|
|
|
/* ---------- macros */
|
|
|
|
/* ---------- structures */
|
|
|
|
struct platoon_datum;
|
|
struct scenario;
|
|
struct squad_datum;
|
|
|
|
struct ai_script_platoon_iterator
|
|
{
|
|
long encounter_index;
|
|
long platoon_index;
|
|
long last_platoon_index;
|
|
};
|
|
|
|
struct ai_script_squad_iterator
|
|
{
|
|
long encounter_index;
|
|
long required_platoon_index;
|
|
long squad_index;
|
|
long next_squad_index;
|
|
long last_squad_index;
|
|
};
|
|
|
|
struct ai_script_actor_reference_iterator
|
|
{
|
|
long encounter_index;
|
|
long squad_index;
|
|
long platoon_index;
|
|
long actor_encounter_index;
|
|
long actor_index;
|
|
long next_actor_index;
|
|
};
|
|
|
|
/* ---------- prototypes/AI_SCRIPT.C */
|
|
|
|
void ai_script_initialize(
|
|
void);
|
|
void ai_script_dispose(
|
|
void);
|
|
void ai_script_initialize_for_new_map(
|
|
void);
|
|
void ai_script_dispose_from_old_map(
|
|
void);
|
|
void ai_scripting_reconnect(
|
|
void);
|
|
short ai_scripting_conversation_line(
|
|
short conversation_index);
|
|
short ai_scripting_conversation_status(
|
|
short conversation_index);
|
|
void ai_scripting_retreat(
|
|
long ai_reference);
|
|
void ai_scripting_erase_all(
|
|
void);
|
|
void ai_index_to_string(
|
|
long ai_reference,
|
|
struct scenario *scenario,
|
|
char *buffer,
|
|
long buffer_size);
|
|
boolean ai_index_from_string(
|
|
struct scenario *scenario,
|
|
char const *ai_string,
|
|
long *ai_reference);
|
|
void ai_index_squad_iterator_new(
|
|
long ai_reference,
|
|
struct ai_script_squad_iterator *iterator);
|
|
struct squad_datum *ai_index_squad_iterator_next(
|
|
struct ai_script_squad_iterator *iterator);
|
|
void ai_index_platoon_iterator_new(
|
|
long ai_reference,
|
|
struct ai_script_platoon_iterator *iterator);
|
|
struct platoon_datum *ai_index_platoon_iterator_next(
|
|
struct ai_script_platoon_iterator *iterator);
|
|
long object_list_from_ai_reference(
|
|
long ai_reference);
|
|
struct ai_vehicle_enterable *ai_scripting_find_vehicle_enterable(
|
|
long vehicle_index);
|
|
void ai_scripting_vehicle_enterable_distance(
|
|
long ai_reference,
|
|
real distance);
|
|
void ai_scripting_vehicle_enterable_team(
|
|
long object_list_index,
|
|
short team);
|
|
void ai_scripting_vehicle_enterable_actor_type(
|
|
long object_list_index,
|
|
short actor_type);
|
|
void ai_scripting_vehicle_enterable_actors(
|
|
long vehicle_index,
|
|
long actor_list_index);
|
|
void ai_scripting_vehicle_enterable_disable(
|
|
long vehicle_index);
|
|
void ai_scripting_detach_unit(
|
|
long unit_index);
|
|
void ai_scripting_attach_unit(
|
|
long unit_index,
|
|
long ai_reference);
|
|
void ai_scripting_magically_see_unit(
|
|
long ai_reference,
|
|
long unit_index);
|
|
void ai_scripting_magically_see_players(
|
|
long ai_reference);
|
|
void ai_index_actor_iterator_new(
|
|
long ai_reference,
|
|
struct ai_script_actor_reference_iterator *iterator);
|
|
struct actor_datum *ai_index_actor_iterator_next(
|
|
struct ai_script_actor_reference_iterator *iterator);
|
|
void ai_scripting_go_to_vehicle(
|
|
long ai_reference,
|
|
long unit_index,
|
|
char const *seat_substring_name);
|
|
void ai_scripting_go_to_vehicle_override(
|
|
long ai_reference,
|
|
long unit_index,
|
|
char const *seat_substring_name);
|
|
void ai_scripting_attack(
|
|
long ai_reference);
|
|
void ai_scripting_defend(
|
|
long ai_reference);
|
|
void ai_scripting_maneuver(
|
|
long ai_reference);
|
|
void ai_scripting_maneuver_enable(
|
|
long ai_reference,
|
|
boolean enable);
|
|
void ai_scripting_migrate_by_unit(
|
|
long object_list_index,
|
|
long target_ai_reference);
|
|
void ai_scripting_migrate_and_speak(
|
|
long source_ai_reference,
|
|
long target_ai_reference,
|
|
char const *speech_type);
|
|
void ai_scripting_allegiance_remove(
|
|
short team_a,
|
|
short team_b);
|
|
void ai_scripting_berserk(
|
|
long ai_reference,
|
|
boolean berserk);
|
|
void ai_scripting_playfight(
|
|
long ai_reference,
|
|
boolean playfight);
|
|
void ai_scripting_braindead(
|
|
long ai_reference,
|
|
boolean braindead);
|
|
void ai_scripting_allow_charge(
|
|
long ai_reference,
|
|
boolean allow);
|
|
void ai_scripting_allow_dormant(
|
|
long ai_reference,
|
|
boolean allow);
|
|
void ai_scripting_timer_start(
|
|
long ai_reference);
|
|
void ai_scripting_timer_expire(
|
|
long ai_reference);
|
|
void ai_scripting_follow_target_disable(
|
|
long ai_reference);
|
|
void ai_scripting_automatic_migration_target(
|
|
long ai_reference,
|
|
boolean automatic);
|
|
void ai_scripting_follow_target_players(
|
|
long ai_reference);
|
|
void ai_scripting_follow_distance(
|
|
long ai_reference,
|
|
real distance);
|
|
void ai_scripting_follow_target_unit(
|
|
long ai_reference,
|
|
long unit_index);
|
|
void ai_scripting_follow_target_ai(
|
|
long ai_reference,
|
|
long target_ai_reference);
|
|
void ai_scripting_force_active(
|
|
long ai_reference,
|
|
boolean force);
|
|
void ai_scripting_deselect(
|
|
void);
|
|
void ai_scripting_attach_units(
|
|
long ai_reference,
|
|
long object_list_index);
|
|
void ai_scripting_magically_see_units(
|
|
long ai_reference,
|
|
long object_list_index);
|
|
void ai_scripting_set_respawn(
|
|
long ai_reference,
|
|
boolean respawn);
|
|
void ai_scripting_set_deaf(
|
|
long ai_reference,
|
|
boolean deaf);
|
|
void ai_scripting_set_blind(
|
|
long ai_reference,
|
|
boolean blind);
|
|
void ai_scripting_detach_units(
|
|
long object_list_index);
|
|
void ai_scripting_kill(
|
|
long ai_reference);
|
|
void ai_scripting_kill_silent(
|
|
long ai_reference);
|
|
short ai_scripting_swarm_count(
|
|
long ai_reference);
|
|
short ai_scripting_nonswarm_count(
|
|
long ai_reference);
|
|
short ai_scripting_living_count(
|
|
long ai_reference);
|
|
real ai_scripting_living_fraction(
|
|
long ai_reference);
|
|
real ai_scripting_strength(
|
|
long ai_reference);
|
|
boolean ai_scripting_is_attacking(
|
|
long encounter_index);
|
|
short ai_scripting_going_to_vehicle(
|
|
long ai_reference);
|
|
void ai_scripting_migrate(
|
|
long source_ai_index,
|
|
long destination_ai_index);
|
|
void ai_scripting_select(
|
|
long ai_reference);
|
|
short ai_scripting_status(
|
|
long ai_reference);
|
|
void ai_scripting_spawn_actor(
|
|
long ai_reference);
|
|
void ai_scripting_vehicle_encounter(
|
|
long unit_index,
|
|
long ai_reference);
|
|
void ai_scripting_allegiance(
|
|
short team_index0,
|
|
short team_index1);
|
|
boolean ai_scripting_allegiance_broken(
|
|
short team1_index,
|
|
short team2_index);
|
|
boolean ai_scripting_conversation(
|
|
short conversation_index);
|
|
void ai_scripting_conversation_stop(
|
|
short conversation_index);
|
|
void ai_scripting_conversation_advance(
|
|
short conversation_index);
|
|
void ai_scripting_stop_looking(
|
|
long ai_index);
|
|
void ai_scripting_renew(
|
|
long ai_reference);
|
|
void ai_scripting_braindead_by_unit(
|
|
long object_list_index,
|
|
boolean braindead);
|
|
void ai_scripting_force_active_by_unit(
|
|
long unit_index,
|
|
boolean force);
|
|
void ai_scripting_attach_free(
|
|
long unit_index,
|
|
long actor_variant_definition_index);
|
|
void ai_scripting_try_to_fight(
|
|
long ai_reference,
|
|
long target_ai_reference);
|
|
void ai_scripting_set_return_state(
|
|
long ai_reference,
|
|
short default_state);
|
|
void ai_scripting_magically_see_encounter(
|
|
long ai_reference,
|
|
long target_ai_reference);
|
|
void ai_scripting_link_activation(
|
|
long ai_reference,
|
|
long link_ai_reference);
|
|
void ai_scripting_free(
|
|
long ai_reference);
|
|
void ai_scripting_free_units(
|
|
long object_list_index);
|
|
void ai_scripting_exit_vehicle(
|
|
long ai_reference);
|
|
void ai_scripting_set_current_state(
|
|
long ai_reference,
|
|
short current_state);
|
|
void ai_scripting_command_list(
|
|
long ai_reference,
|
|
short command_list_index);
|
|
void ai_scripting_command_list_by_unit(
|
|
long unit_index,
|
|
short command_list_index);
|
|
void ai_scripting_try_to_fight_nothing(
|
|
long ai_reference);
|
|
void ai_scripting_try_to_fight_player(
|
|
long ai_reference);
|
|
void ai_scripting_ignore(
|
|
long object_list_index,
|
|
boolean ignore);
|
|
void ai_scripting_prefer_target(
|
|
long object_list_index,
|
|
boolean prefer);
|
|
void ai_scripting_teleport_starting_location(
|
|
long ai_reference);
|
|
void ai_scripting_teleport_starting_location_if_unsupported(
|
|
long ai_reference);
|
|
void ai_scripting_command_list_advance(
|
|
long ai_reference);
|
|
void ai_scripting_erase(
|
|
long ai_reference);
|
|
void ai_scripting_place(
|
|
long ai_reference);
|
|
void ai_scripting_look_at_object(
|
|
long unit_index,
|
|
long object_index);
|
|
void ai_scripting_set_team(
|
|
long ai_reference,
|
|
short team_index);
|
|
void ai_scripting_command_list_advance_by_unit(
|
|
long unit_index);
|
|
short ai_scripting_command_list_status(
|
|
long ai_reference);
|
|
|
|
/* ---------- globals */
|
|
|
|
/* ---------- public code */
|
|
|
|
#endif // __AI_SCRIPT_H
|