All pastes #898681 Raw Edit

springdefs.h

public text v1 · immutable
·published 2008-02-10 14:56 UTC
rendered paste body
//==============================================================================
//
// Constants and macros for Spring /units/*.BOS
//
// Made by merging the exptype.h and sfxtype.h that are tradionally shipped with Scriptor
// Which are themselves edited from the ones inside Cavedog's Totala1.hpi
// And the #define from https://spring.clan-sy.com/svn/spring/trunk/rts/Sim/Units/COB/CobInstance.cpp
//
//==============================================================================

#ifndef SPRING_SCRIPTS_H
#define SPRING_SCRIPTS_H


// To use with the "emit-sfx" command:

// Vector-based special effects
#define SFXTYPE_VTOL			0
#define SFXTYPE_THRUST			1
#define	SFXTYPE_WAKE1			2
#define	SFXTYPE_WAKE2			3
#define	SFXTYPE_REVERSEWAKE1	4
#define	SFXTYPE_REVERSEWAKE2	5

// Point-based (piece origin) special effects
#define SFXTYPE_POINTBASED	256
#define SFXTYPE_WHITESMOKE	(SFXTYPE_POINTBASED | 1)
#define SFXTYPE_BLACKSMOKE	(SFXTYPE_POINTBASED | 2)
#define SFXTYPE_SUBBUBBLES	(SFXTYPE_POINTBASED | 3)
// TA:K sfx, maybe not implemented in Spring
#define SFXTYPE_SMALLDAMAGEFLAME	(SFXTYPE_POINTBASED | 4)
#define SFXTYPE_MEDIUMDAMAGEFLAME	(SFXTYPE_POINTBASED | 5)
#define SFXTYPE_LARGEDAMAGEFLAME	(SFXTYPE_POINTBASED | 6)

// Probably not implemented in Spring, TA:K stuff
#define PLAYSOUND_PRIORITY_BATTLE		4

// Probably not implemented in Spring, probably TA:K stuff
#define SFXOCCUPY_AIR		5 // SFX Occupy States

// To use with the "explode" command:
#define SHATTER			1		// The piece will shatter instead of remaining whole
#define EXPLODE_ON_HIT	2		// The piece will explode when it hits the ground
#define FALL			4		// The piece will fall due to gravity instead of just flying off
#define SMOKE			8		// A smoke trail will follow the piece through the air
#define FIRE			16		// A fire trail will follow the piece through the air
#define BITMAPONLY		32		// The piece will not fly off or shatter or anything.  Only a bitmap explosion will be rendered.
#define BITMAP1			256
#define BITMAP2			512
#define BITMAP3			1024
#define BITMAP4			2048
#define BITMAP5			4096
#define BITMAPNUKE		8192
#define BITMAPMASK		16128	// Mask of the possible bitmap bits

// Probably not implemented in Spring, TA:K stuff
#define EXPTYPE_SMALLEXPLOSION	256
#define EXPTYPE_MEDIUMEXPLOSION	512
#define EXPTYPE_LARGEEXPLOSION	1024
#define EXPTYPE_XLARGEEXPLOSION	2048
#define EXPTYPE_BLOODEXPLOSION	4096
#define EXPTYPE_SMALLSMOKE		8192
#define EXPTYPE_MEDIUMSMOKE		16384
#define EXPTYPE_XLARGESMOKE		65536

// Probably not implemented in Spring, TA:K stuff (DT stands for Damage Type)
#define DT_FIRE					2
#define DT_EXPLOSION			3
#define DT_PARALYZER			4

// Indices for set/get value
#define ACTIVATION           1  // set or get
#define STANDINGMOVEORDERS   2  // set or get
#define STANDINGFIREORDERS   3  // set or get
#define HEALTH               4  // get (0-100%)
#define INBUILDSTANCE        5  // set or get
#define BUSY                 6  // set or get (used by misc. special case missions like transport ships)
#define PIECE_XZ             7  // get
#define PIECE_Y              8  // get
#define UNIT_XZ              9  // get
#define UNIT_Y              10  // get
#define UNIT_HEIGHT         11  // get
#define XZ_ATAN             12  // get atan of packed x,z coords
#define XZ_HYPOT            13  // get hypot of packed x,z coords
#define ATAN                14  // get ordinary two-parameter atan
#define HYPOT               15  // get ordinary two-parameter hypot
#define GROUND_HEIGHT       16  // get land height, 0 if below water
#define BUILD_PERCENT_LEFT  17  // get 0 = unit is built and ready, 1-100 = How much is left to build
#define YARD_OPEN           18  // set or get (change which plots we occupy when building opens and closes)
#define BUGGER_OFF          19  // set or get (ask other units to clear the area)
#define ARMORED             20  // set or get

#define WEAPON_AIM_ABORTED  21 // Not implemented in Spring, TAK stuff
#define WEAPON_READY        22 // Not implemented in Spring, TAK stuff
#define WEAPON_LAUNCH_NOW   23 // Not implemented in Spring, TAK stuff
#define FINISHED_DYING      26 // Not implemented in Spring, TAK stuff
#define ORIENTATION         27 // Not implemented in Spring, TAK stuff
#define IN_WATER            28
#define CURRENT_SPEED       29
#define MAGIC_DEATH         31 // Not implemented in Spring, TAK stuff
#define VETERAN_LEVEL       32
#define ON_ROAD             34

#define MAX_ID                    70
#define MY_ID                     71
#define UNIT_TEAM                 72
#define UNIT_BUILD_PERCENT_LEFT   73
#define UNIT_ALLIED               74
#define MAX_SPEED                 75
#define CLOAKED                   76
#define WANT_CLOAK                77
#define GROUND_WATER_HEIGHT       78 // get land height, negative if below water
#define UPRIGHT                   79 // set or get
#define	POW                       80 // get
#define PRINT                     81 // get, so multiple args can be passed
#define HEADING                   82 // get
#define TARGET_ID                 83 // get
#define LAST_ATTACKER_ID          84 // get
#define LOS_RADIUS                85 // set or get
#define AIR_LOS_RADIUS            86 // set or get
#define RADAR_RADIUS              87 // set or get
#define JAMMER_RADIUS             88 // set or get
#define SONAR_RADIUS              89 // set or get
#define SONAR_JAM_RADIUS          90 // set or get
#define SEISMIC_RADIUS            91 // set or get
#define DO_SEISMIC_PING           92 // get
#define CURRENT_FUEL              93 // set or get
#define TRANSPORT_ID              94 // get
#define SHIELD_POWER              95 // set or get
#define STEALTH                   96 // set or get
#define CRASHING                  97 // set or get, returns whether aircraft isCrashing state
#define CHANGE_TARGET             98 // set, the value it's set to determines the affected weapon
#define CEG_DAMAGE                99 // set
#define COB_ID                   100 // get
#define PLAY_SOUND				 101 // get, so multiple args can be passed
#define KILL_UNIT                102 // get KILL_UNIT(unitId, SelfDestruct=true, Reclaimed=false)
#define ALPHA_THRESHOLD          103 // set or get
#define SET_WEAPON_UNIT_TARGET   106 // get (fake set)
#define SET_WEAPON_GROUND_TARGET 107 // get (fake set)
#define LUA0 110
#define LUA1 111
#define LUA2 112
#define LUA3 113
#define LUA4 114
#define LUA5 115
#define LUA6 116
#define LUA7 117
#define LUA8 118
#define LUA9 119
#define FLANK_B_MODE             120 // set or get
#define FLANK_B_DIR              121 // set or get, set is through get for multiple args
#define FLANK_B_MOBILITY_ADD     122 // set or get
#define FLANK_B_MAX_DAMAGE       123 // set or get
#define FLANK_B_MIN_DAMAGE       124 // set or get
#define WEAPON_RELOADSTATE       125 // get (with fake set)
#define WEAPON_RELOADTIME        126 // get (with fake set)
#define WEAPON_ACCURACY          127 // get (with fake set)
#define WEAPON_SPRAY             128 // get (with fake set)
#define WEAPON_RANGE             129 // get (with fake set)
#define WEAPON_PROJECTILE_SPEED  130 // get (with fake set)

// NOTE: shared variables use codes [1024 - 5119]

#endif // SPRING_SCRIPTS_H