Difference between revisions of "Character Script External Code"
m (→Constants) |
(→Global Variables) |
||
Line 11: | Line 11: | ||
== Global Variables == | == Global Variables == | ||
− | <pre style="white-space: pre-wrap;">ASCollisions col; // | + | <pre style="white-space: pre-wrap;">ASCollisions col; // Access collision functions</pre> |
− | <pre style="white-space: pre-wrap;">ScriptParams params;</pre> | + | <pre style="white-space: pre-wrap;">ScriptParams params; // Access the script parameters for the current character</pre> |
− | <pre style="white-space: pre-wrap;">ReactionScriptGetter reaction_getter;</pre> | + | <pre style="white-space: pre-wrap;">ReactionScriptGetter reaction_getter; // Access to the attack reaction animation data file for the character</pre> |
− | <pre style="white-space: pre-wrap;">SphereCollision sphere_col; // Stores results of collision functions</pre> | + | <pre style="white-space: pre-wrap;">SphereCollision sphere_col; // Stores results of collision functions</pre> |
− | <pre style="white-space: pre-wrap;">MovementObject this_mo;</pre> | + | <pre style="white-space: pre-wrap;">MovementObject this_mo; // The current character's MovementObject instance</pre> |
== Constants == | == Constants == |
Revision as of 09:26, 5 November 2017
This is a list of the external code that is only available to be used inside a character script - variables, functions, and classes that "magically" exist.
To see a list of external code that is available to all scripts, please see this page - Common Script External Code
This list is pulled from the ~/Documents/Wolfire/Overgrowth/aschar_docs.h file, which is automatically generated by the game.
See this page to find the location for the Wolfire/Overgrowth folder on each OS - How to clear the game's cache
TODO: These can be documented individually, possibly on their own pages - or maybe as just subsections?
Global Variables
ASCollisions col; // Access collision functions
ScriptParams params; // Access the script parameters for the current character
ReactionScriptGetter reaction_getter; // Access to the attack reaction animation data file for the character
SphereCollision sphere_col; // Stores results of collision functions
MovementObject this_mo; // The current character's MovementObject instance
Constants
Types in this section that specify the base type for the enum aren't actually exposed via enums. They are defined as const instances of the base type.
Functions that take those parameters will take the base type instead. E.g. _front is actually defined in your script as an "const int _front".
"Flags" enums can be combined using a bit-wise "or" operator, optionally using a temporary variable. E.g. _ANM_FROM_START | _ANM_MIRRORED
enum AnimationFlags : uint8 { _ANM_FROM_START, _ANM_MIRRORED, _ANM_MOBILE, _ANM_SUPER_MOBILE, _ANM_SWAP, };
enum AttackerDirectionType : int { _front, _left, _right, };
enum AttackerHeightType : int { _high, _low, _medium, };
enum CollisionSides { DOUBLE_SIDED, SINGLE_SIDED, };
enum NavPathFlag { DT_STRAIGHTPATH_START, DT_STRAIGHTPATH_END, DT_STRAIGHTPATH_OFFMESH_CONNECTION, };
enum SamplePolyFlag { POLYFLAGS_NONE, POLYFLAGS_WALK, POLYFLAGS_SWIM, POLYFLAGS_DOOR, POLYFLAGS_JUMP1, POLYFLAGS_JUMP2, POLYFLAGS_JUMP3, POLYFLAGS_JUMP4, POLYFLAGS_JUMP5, POLYFLAGS_JUMP_ALL, POLYFLAGS_DISABLED, POLYFLAGS_ALL, };
Global Functions
float GetAnimationEventTime( string &in anim_path, string &in event_label );
NavPoint GetNavPoint(vec3);
vec3 GetNavPointPos(vec3);
NavPath GetPath(vec3 start, vec3 end);
NavPath GetPath(vec3 start, vec3 end, uint16 include_poly_flags, uint16 exclude_poly_flags);
vec3 LineLineIntersect(vec3 start_a, vec3 end_a, vec3 start_b, vec3 end_b); // Get closest point between two line segments
vec3 NavRaycast(vec3 start, vec3 end);
vec3 NavRaycastSlide(vec3 start, vec3 end, int depth);
Classes
class ASCollisions;
class AttackScriptGetter;
class CollisionPoint;
class NavPath;
class NavPoint;
class ReactionScriptGetter;
class SphereCollision;