Black Ops 3 Source Code Explorer
0.1
An script explorer for Black Ops 3 by ZeRoY
gib.gsh
Go to the documentation of this file.
1
#define GET_GIB_DATA(entity,field) (isdefined(entity.gib_data)?entity.gib_data.field:entity.field)
2
3
// Server side only
4
#define GIB_HAT_MODEL(entity) GET_GIB_DATA(entity,hatmodel)
5
#define GIB_HEAD_MODEL(entity) GET_GIB_DATA(entity,head)
6
7
// Server side only
8
#define GIB_TORSO_UNDAMAGED_MODEL(entity) GET_GIB_DATA(entity,torsoDmg1)
9
#define GIB_TORSO_RIGHT_ARM_GONE_MODEL(entity) GET_GIB_DATA(entity,torsoDmg2)
10
#define GIB_TORSO_LEFT_ARM_GONE_MODEL(entity) GET_GIB_DATA(entity,torsoDmg3)
11
#define GIB_TORSO_GUTS_GONE_MODEL(entity) GET_GIB_DATA(entity,torsoDmg4)
12
#define GIB_TORSO_HEAD_GONE_MODEL(entity) GET_GIB_DATA(entity,torsoDmg5)
13
14
// Server side only
15
#define GIB_LEGS_UNDAMAGED_MODEL(entity) GET_GIB_DATA(entity,legDmg1)
16
#define GIB_LEGS_RIGHT_LEG_GONE_MODEL(entity) GET_GIB_DATA(entity,legDmg2)
17
#define GIB_LEGS_LEFT_LEG_GONE_MODEL(entity) GET_GIB_DATA(entity,legDmg3)
18
#define GIB_LEGS_NO_LEGS_MODEL(entity) GET_GIB_DATA(entity,legDmg4)
19
20
#define GIB_UNDAMAGED_FLAG 0
21
#define GIB_TOGGLE_GIB_MODEL_FLAG 1
22
#define GIB_ANNIHILATE_FLAG 2
23
#define GIB_HEAD_HAT_FLAG 4
24
#define GIB_TORSO_HEAD_FLAG 8
25
#define GIB_TORSO_RIGHT_ARM_FLAG 16
26
#define GIB_TORSO_LEFT_ARM_FLAG 32
27
#define GIB_TORSO_GUTS_FLAG 64
28
#define GIB_LEGS_RIGHT_LEG_FLAG 128
29
#define GIB_LEGS_LEFT_LEG_FLAG 256
30
#define GIB_LEGS_BOTH_LEGS_FLAG (GIB_LEGS_RIGHT_LEG_FLAG+GIB_LEGS_LEFT_LEG_FLAG)
31
32
#define GIB_FLAG_BITS 9
33
#define GIB_DIR_BITS 3
34
#define GIB_SCALE_BITS 3
35
36
#define GIB_CLIENTFIELD "gib_state"
37
// 7 Damage states and 1 toggle bit to determine if gib models should be spawned on the client.
38
#define GIB_CLIENTFIELD_BITS_ACTOR (GIB_FLAG_BITS)
39
#define GIB_CLIENTFIELD_BITS_PLAYER (GIB_FLAG_BITS+GIB_DIR_BITS+GIB_SCALE_BITS)
40
#define GIB_CLIENTFIELD_TYPE "int"
41
42
#define GIB_FLAG_STRIPPED(gib_state) ( gib_state & ( ( 1 << GIB_FLAG_BITS ) - 1 ) )
43
#define GET_GIB_DIR_BITS(gib_state) ( ( gib_state >> GIB_FLAG_BITS ) & ( ( 1 << GIB_DIR_BITS ) - 1 ) )
44
#define GET_GIB_SCALE_BITS(gib_state) ( ( gib_state >> ( GIB_FLAG_BITS + GIB_DIR_BITS ) ) & ( ( 1 << GIB_SCALE_BITS ) - 1 ) )
45
46
// Less than GIB_TORSO_RIGHT_ARM_FLAG
47
#define IS_BODY_UNDAMAGED(gib_state) (gib_state < GIB_TORSO_RIGHT_ARM_FLAG)
48
#define IS_GIBBED(gib_state,gib_flag) (gib_state & gib_flag)
49
#define IS_UNDAMAGED(gib_state) (gib_state == 0)
50
#define GET_GIB_FLAG(old_gib_state,current_gib_state) (old_gib_state ^ current_gib_state)
51
#define SET_GIBBED(gib_state,gib_flag) (gib_state | GIB_FLAG_STRIPPED(gib_flag))
52
#define SET_GIBBED_PLAYER(gib_state,gib_flag,yawbits) (GIB_FLAG_STRIPPED(gib_state|gib_flag) + ( yawbits << GIB_FLAG_BITS ) )
53
#define SHOULD_SPAWN_GIBS(gib_state) (!(gib_state & GIB_TOGGLE_GIB_MODEL_FLAG))
54
55
// Client/Server scriptbundle
56
#define GET_GIB_BUNDLE(_gib_def) struct::get_script_bundle("gibcharacterdef",_gib_def)
57
#define GET_GIB_BUNDLES struct::get_script_bundles("gibcharacterdef")
scripts
shared
ai
systems
gib.gsh
Generated by
1.8.17