Home / Characters / Actions
Animation Actions (ACTION_*)
All action codes are defined in include/def.h.
They control the sprite frame sequence played by Action() in action.cpp.
A character's current animation is stored in Blupi.action.
The current direction is Blupi.aDirect (a DIRECT_* value).
Blupi (perso=0) Actions
| Constant |
Code |
Description |
ACTION_STOP |
0 |
Standing still |
ACTION_STOPf |
1 |
Standing still (tired variant) |
ACTION_MARCHE |
2 |
Walking |
ACTION_MARCHEf |
3 |
Walking (tired variant) |
ACTION_BUILD |
4 |
Building / constructing |
ACTION_PIOCHE |
5 |
Mining / digging (pickaxe) |
ACTION_ENERGY |
6 |
Collecting energy (eating/drinking) |
ACTION_TAKE |
8 |
Picking up object and putting it on head |
ACTION_DEPOSE |
9 |
Putting down the carried object |
ACTION_SCIE |
10 |
Sawing wood |
ACTION_BRULE |
11 |
On fire (burning to death) |
ACTION_TCHAO |
12 |
Vanishing / dying (disappear animation) |
ACTION_MANGE |
13 |
Eating |
ACTION_NAISSANCE |
14 |
Being born (hatching from egg) |
ACTION_SAUTE2 |
15 |
Jumping over obstacle (phase 2 of 4) |
ACTION_SAUTE3 |
16 |
Jumping over obstacle (phase 3) |
ACTION_SAUTE4 |
17 |
Jumping over obstacle (phase 4) |
ACTION_SAUTE5 |
18 |
Jumping over obstacle (phase 5) |
ACTION_PONT |
19 |
Pushing a bridge segment |
ACTION_MISC1 |
20 |
Idle animation: shrugging |
ACTION_MISC2 |
21 |
Idle animation: scratching |
ACTION_MISC3 |
22 |
Idle animation: yo-yo |
ACTION_MISC1f |
23 |
Idle (tired): bof-bof |
ACTION_GLISSE |
24 |
Sliding on ice |
ACTION_BOIT |
25 |
Drinking a potion |
ACTION_LABO |
26 |
Working in the laboratory |
ACTION_DYNAMITE |
27 |
Setting off dynamite |
ACTION_DELAY |
28 |
Waiting one frame |
ACTION_CUEILLE1 |
29 |
Picking flowers (phase 1) |
ACTION_CUEILLE2 |
30 |
Picking flowers (phase 2) |
ACTION_MECHE |
31 |
Covering ears (waiting for explosion) |
ACTION_STOPb |
32 |
Standing still in a boat |
ACTION_MARCHEb |
33 |
Moving in a boat |
ACTION_STOPj |
34 |
Standing still in a jeep |
ACTION_MARCHEj |
35 |
Moving in a jeep |
ACTION_ELECTRO |
36 |
Being electrocuted |
ACTION_GRILLE1 |
37 |
Being electro-grilled (phase 1) |
ACTION_GRILLE2 |
38 |
Being electro-grilled (phase 2) |
ACTION_GRILLE3 |
39 |
Being electro-grilled (phase 3) |
ACTION_MISC4 |
40 |
Idle: closing eyes |
ACTION_CONTENT |
41 |
Happy dance (mission success) |
ACTION_ARROSE |
42 |
Watering plants |
ACTION_BECHE |
43 |
Digging with a spade |
ACTION_CUEILLE3 |
44 |
Picking flowers (phase 3) |
ACTION_BUILDBREF |
45 |
Building (brief variant) |
ACTION_BUILDSEC |
46 |
Building (dry/stone variant) |
ACTION_BUILDSOURD |
47 |
Building (muffled variant) |
ACTION_BUILDPIERRE |
48 |
Building (rock variant) |
ACTION_PIOCHEPIERRE |
49 |
Mining (stone/rock variant) |
ACTION_PIOCHESOURD |
50 |
Mining (muffled variant) |
ACTION_MISC5 |
51 |
Idle: waving / calling |
ACTION_TELEPORTE1 |
52 |
Teleporter animation (phase 1) |
ACTION_TELEPORTE2 |
53 |
Teleporter animation (phase 2) |
ACTION_TELEPORTE3 |
54 |
Teleporter animation (phase 3) |
ACTION_STOPa |
55 |
Standing still in armour |
ACTION_MARCHEa |
56 |
Walking in armour |
ACTION_ARMUREOPEN |
57 |
Armour opening (entering) |
ACTION_ARMURECLOSE |
58 |
Armour closing (exiting) |
ACTION_SAUTE1 |
59 |
Jumping into a jeep (phase 1) |
ACTION_MISC6 |
60 |
Idle: diabolo trick |
Spider (perso=1) Actions — ACTION_A_*
| Constant |
Code |
Description |
ACTION_A_STOP |
100 |
Standing still |
ACTION_A_MARCHE |
101 |
Walking |
ACTION_A_SAUT |
102 |
Jumping over an obstacle |
ACTION_A_GRILLE |
103 |
Being hit by an electro ray |
ACTION_A_POISON |
105 |
Being poisoned (hit by dynamite) |
ACTION_A_MORT1 |
106 |
Death animation (phase 1) |
ACTION_A_MORT2 |
107 |
Death animation (phase 2) |
ACTION_A_MORT3 |
108 |
Death animation (phase 3) |
Virus (perso=2) Actions — ACTION_V_*
| Constant |
Code |
Description |
ACTION_V_STOP |
200 |
Standing still |
ACTION_V_MARCHE |
201 |
Walking / spreading |
ACTION_V_GRILLE |
202 |
Being hit by an electro ray |
Tracks / Tank (perso=3) Actions — ACTION_T_*
| Constant |
Code |
Description |
ACTION_T_STOP |
300 |
Standing still |
ACTION_T_MARCHE |
301 |
Moving (tracks rolling) |
ACTION_T_ECRASE |
302 |
Crushing an object |
Robot (perso=4) Actions — ACTION_R_*
| Constant |
Code |
Description |
ACTION_R_STOP |
400 |
Standing still |
ACTION_R_MARCHE |
401 |
Walking |
ACTION_R_APLAT |
402 |
Flattening / squashing |
ACTION_R_BUILD |
403 |
Building / working |
ACTION_R_DELAY |
404 |
Waiting (build delay) |
ACTION_R_CHARGE |
405 |
Recharging |
ACTION_R_ECRASE |
406 |
Crushing an object |
Bomb (perso=5) Actions — ACTION_B_*
| Constant |
Code |
Description |
ACTION_B_STOP |
500 |
Standing still |
ACTION_B_MARCHE |
501 |
Hopping / bouncing |
Mine Detonator (perso=6) Actions — ACTION_D_DELAY
| Constant |
Code |
Description |
ACTION_D_DELAY |
600 |
Waiting (invisible, passive) |
Electro Tower (perso=7) Actions — ACTION_E_*
| Constant |
Code |
Description |
ACTION_E_STOP |
700 |
Idle (not firing) |
ACTION_E_MARCHE |
701 |
Rotating / tracking target |
ACTION_E_DEBUT |
702 |
Starting up / powering on |
ACTION_E_RAYON |
703 |
Firing electric ray |
Disciple / Robot2 (perso=8) Actions — ACTION_D_*
| Constant |
Code |
Description |
ACTION_D_STOP |
800 |
Standing still |
ACTION_D_MARCHE |
801 |
Walking |
ACTION_D_BUILD |
802 |
Building / constructing |
ACTION_D_PIOCHE |
803 |
Mining |
ACTION_D_SCIE |
804 |
Sawing wood |
ACTION_D_TCHAO |
805 |
Disappearing / dying |
ACTION_D_CUEILLE1 |
806 |
Picking flowers (phase 1) |
ACTION_D_CUEILLE2 |
807 |
Picking flowers (phase 2) |
ACTION_D_MECHE |
808 |
Covering ears (dynamite) |
ACTION_D_ARROSE |
809 |
Watering plants |
ACTION_D_BECHE |
810 |
Digging with spade |
How Action() Works (action.cpp)
CDecor::Action() is called each tick for each character.
For each action + aDirect combination, it looks up:
- A table of sprite icons (from CHBLUPI channel) for each animation frame
- The animation phase duration (how many ticks per frame)
- Which sounds to play and when
It advances Blupi.phase and updates Blupi.icon to the next frame.
When the animation completes, BlupiNextAction() is called to transition
to the next state (typically idle ACTION_STOP or next GOAL step).