1
0
mirror of https://github.com/blupi-games/planetblupi synced 2024-12-30 10:15:36 +01:00
planetblupi/decgoal.cpp
Mathieu Schroeter 93047957fd Replace BOOL by bool
And replace structs that are stored from BOOL to int.
2017-01-22 00:15:32 +01:00

3550 lines
101 KiB
C++
Raw Blame History

// DecGoal.cpp
#include "decgoal.h"
#include "DEF.H"
#include "DECOR.H"
short table_goal_nbop[] =
{
0, // term
3, // gohili
3, // gohili2
3, // goblupi
4, // putfloor
4, // putobject
9, // buildfloor
9, // buildobject
2, // action
1, // interrupt
1, // energy
3, // addmoves
6, // other
0, // finishmove
2, // take
0, // depose
1, // group
2, // work
4, // testobject
2, // fix
6, // otherfix
3, // addicons
2, // newblupi
1, // sound
1, // repeat
1, // otherloop
0, // nextloop
2, // arrangeobject
0, // labo
2, // cache
0, // delete
3, // electro
3, // newperso
2, // usinebuild
2, // usinefree
2, // explose1
2, // explose2
1, // vehicule
4, // takeobject
3, // floorjump
2, // adddrapeau
2, // amorce
1, // malade
2, // ifterm
2, // ifdebarque
0, // isnomalade
2, // skipskill
2, // teleporte
0, // actualise
2, // waitfree
};
// Va, mon petit.
static short table_goal_go[] =
{
WM_ACTION_GO,
GOAL_GOHILI, 0,0, false,
GOAL_TERM,
0
};
// Blupi va dans sa maison.
static short table_goal_maison[] =
{
WM_ACTION_MAISON,
GOAL_GOHILI2, +1,+1, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_CONTENT, DIRECT_E,
GOAL_TERM,
0
};
// Blupi bucheron.
static short table_goal_abat1[] =
{
WM_ACTION_ABAT1,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,6,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,30, -1,-1, DIMOBJY+20,1,-1*100,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,-1, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, -1,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,36, -1,-1, 80/10,10,-10*100,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_OTHER, CHOBJECT,6,11,-1,-1, WM_ACTION_ABAT1,
GOAL_TERM,
0
};
static short table_goal_abat2[] =
{
WM_ACTION_ABAT2,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,7,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,31, -1,-1, DIMOBJY+20,1,-1*100,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,-1, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, -1,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,36, -1,-1, 80/10,10,-10*100,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_OTHER, CHOBJECT,6,11,-1,-1, WM_ACTION_ABAT1,
GOAL_TERM,
0
};
static short table_goal_abat3[] =
{
WM_ACTION_ABAT3,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, -1,0, CHOBJECT,8,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,32, -1,-1, DIMOBJY+20,1,-1*100,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, -1,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, -1,-1, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, -1,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,36, -1,-1, 80/10,10,-10*100,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_OTHER, CHOBJECT,6,11,-1,-1, WM_ACTION_ABAT1,
GOAL_TERM,
0
};
static short table_goal_abat4[] =
{
WM_ACTION_ABAT4,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,0, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,0, CHOBJECT,9,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,0,
GOAL_BUILDOBJECT, 0,0, CHOBJECT,33, -1,-1, DIMOBJY,1,-1*100,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_BUILDOBJECT, 0,0, CHOBJECT,36, -1,-1, 80/10,10,-10*100,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_OTHER, CHOBJECT,6,11,-1,-1, WM_ACTION_ABAT1,
GOAL_TERM,
0
};
static short table_goal_abat5[] =
{
WM_ACTION_ABAT5,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,0, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,0, CHOBJECT,10,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,0,
GOAL_BUILDOBJECT, 0,0, CHOBJECT,34, -1,-1, DIMOBJY,1,-1*100,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_BUILDOBJECT, 0,0, CHOBJECT,36, -1,-1, 80/10,10,-10*100,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_OTHER, CHOBJECT,6,11,-1,-1, WM_ACTION_ABAT1,
GOAL_TERM,
0
};
static short table_goal_abat6[] =
{
WM_ACTION_ABAT6,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,0, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,0, CHOBJECT,11,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,0,
GOAL_BUILDOBJECT, 0,0, CHOBJECT,35, -1,-1, DIMOBJY,1,-1*100,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ADDMOVES, 0,0, 1,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_BUILDOBJECT, 0,0, CHOBJECT,36, -1,-1, 80/10,10,-10*100,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_OTHER, CHOBJECT,6,11,-1,-1, WM_ACTION_ABAT1,
GOAL_TERM,
0
};
// Blupi tailleur de pierre.
static short table_goal_roc1[] =
{
WM_ACTION_ROC1,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,38, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,39, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,40, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,41, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,42, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,43, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,44, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,37,43,-1,-1, WM_ACTION_ROC1,
GOAL_TERM,
0
};
static short table_goal_roc2[] =
{
WM_ACTION_ROC2,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,39, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,40, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,41, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,42, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,43, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,44, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,37,43,-1,-1, WM_ACTION_ROC1,
GOAL_TERM,
0
};
static short table_goal_roc3[] =
{
WM_ACTION_ROC3,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,40, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,41, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,42, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,43, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,44, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,37,43,-1,-1, WM_ACTION_ROC1,
GOAL_TERM,
0
};
static short table_goal_roc4[] =
{
WM_ACTION_ROC4,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,41, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,42, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,43, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,44, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,37,43,-1,-1, WM_ACTION_ROC1,
GOAL_TERM,
0
};
static short table_goal_roc5[] =
{
WM_ACTION_ROC5,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,42, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,43, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,44, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,37,43,-1,-1, WM_ACTION_ROC1,
GOAL_TERM,
0
};
static short table_goal_roc6[] =
{
WM_ACTION_ROC6,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,43, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,44, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,37,43,-1,-1, WM_ACTION_ROC1,
GOAL_TERM,
0
};
static short table_goal_roc7[] =
{
WM_ACTION_ROC7,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, true,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,44, -1,-1, 120/10,10,-10*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,37,43,-1,-1, WM_ACTION_ROC1,
GOAL_TERM,
0
};
// Construction d'une cabane.
static short table_goal_build1[] =
{
WM_ACTION_BUILD1,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDFLOOR, 0,-1, CHFLOOR,16, CHMASK1,0, 16,14,1*100, // briques
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
//? GOAL_ENERGY, MAXENERGY/4,
// <20>chaffaudage
GOAL_BUILDOBJECT, -1,0, CHOBJECT,62, -1,-1, DIMOBJY/10,18,10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,+1, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-2, true,
GOAL_GOBLUPI, -2,0, true,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, +2,0, true,
GOAL_GOBLUPI, 0,+1, true,
// maison
GOAL_BUILDOBJECT, -2,0, CHOBJECT,61, -1,-1, DIMOBJY/10,20,10*100,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Construction d'une nurserie.
static short table_goal_build2[] =
{
WM_ACTION_BUILD2,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDFLOOR, 0,-1, CHFLOOR,52, CHMASK1,0, 16,14,1*100, // nurserie
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_PUTOBJECT, -1,0, -1,-1, // enl<6E>ve les planches
GOAL_GOBLUPI, -1,+1, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,+1, true,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Construction d'un laboratoire.
static short table_goal_build3[] =
{
WM_ACTION_BUILD3,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDFLOOR, 0,-1, CHFLOOR,16, CHMASK1,0, 16,14,1*100, // briques
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, +1,0, true,
// laboratoire
GOAL_BUILDOBJECT, -1,0, CHOBJECT,28, -1,-1, DIMOBJY/10,20,10*100,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Construction d'une mine.
static short table_goal_build4[] =
{
WM_ACTION_BUILD4,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 2,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
// <20>chaffaudage
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,126, -1,-1, DIMOBJY/10,18,10*100,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-2, true,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_GOBLUPI, 0,+1, true,
// mine
GOAL_BUILDOBJECT, -2,0, CHOBJECT,122, -1,-1, DIMOBJY/10,20,10*100,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Construction d'une usine.
static short table_goal_build5[] =
{
WM_ACTION_BUILD5,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDFLOOR, 0,-1, CHFLOOR,16, CHMASK1,0, 16,14,1*100, // briques
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, +1,0, true,
// usine
GOAL_BUILDOBJECT, -1,0, CHOBJECT,120, -1,-1, DIMOBJY/10,20,10*100,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDSOURD, DIRECT_O,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Construction d'un t<>l<EFBFBD>porteur.
static short table_goal_build6[] =
{
WM_ACTION_BUILD6,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDFLOOR, 0,-1, CHFLOOR,80, CHMASK1,0, 16,14,1*100, // t<>l<EFBFBD>porteur
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_PUTOBJECT, -1,0, -1,-1, // enl<6E>ve les planches
GOAL_GOBLUPI, -1,+1, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_BUILDSEC, DIRECT_S,
GOAL_GOBLUPI, +1,+1, true,
GOAL_FINISHMOVE,
GOAL_GOBLUPI, 0,-2, true,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_TERM,
0
};
// Construction d'un mur.
static short table_goal_mur[] =
{
WM_ACTION_MUR,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,26, -1,-1, DIMOBJY/5,40,5*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_PUTOBJECT, 0,0, -1,-1, // enl<6E>ve les pierres
GOAL_GOBLUPI, +1,+1, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_S,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_TCHAO, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Construction d'une tour.
static short table_goal_tour[] =
{
WM_ACTION_TOUR,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,27, -1,-1, DIMOBJY/4,20,4*100,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_PUTOBJECT, -1,0, -1,-1, // enl<6E>ve les pierres
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_PIOCHEPIERRE, DIRECT_E,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_BUILDBREF, DIRECT_O,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_ARRANGEOBJECT, -1,-1,
GOAL_ACTION, ACTION_TCHAO, DIRECT_E,
GOAL_TERM,
0
};
// Construction d'une palissade.
static short table_goal_palis[] =
{
WM_ACTION_PALIS,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,71, -1,-1, DIMOBJY/10,20,10*100,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_PIOCHE, DIRECT_E,
GOAL_PUTOBJECT, 0,0, -1,-1, // enl<6E>ve les planches
GOAL_GOBLUPI, +1,+1, true,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Transporte (est).
static short table_goal_carry[] =
{
WM_ACTION_CARRY,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 4,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, -2,-2, -1,-1, 9+18,1,1*100,
GOAL_ADDMOVES, 0,-1, 2,
GOAL_ACTION, ACTION_TAKE, DIRECT_E,
GOAL_TAKE, 0,-1,
GOAL_TERM,
0
};
// Transporte (sud).
static short table_goal_carry2[] =
{
WM_ACTION_CARRY2,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_GROUP, 4,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, -2,-2, -1,-1, 9+18,1,1*100,
GOAL_ADDMOVES, -1,0, 3,
GOAL_ACTION, ACTION_TAKE, DIRECT_S,
GOAL_TAKE, -1,0,
GOAL_TERM,
0
};
// Repose (est).
static short table_goal_depose[] =
{
WM_ACTION_DEPOSE,
GOAL_GOHILI2, 0,+1, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 6,
GOAL_IFTERM, +1,0, // emplacement libre ?
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_PUTOBJECT, 0,-1, -3,-3, // l'objet transport<72>
GOAL_BUILDOBJECT, 0,-1, -2,-2, -1,-1, 11,1,1*100,
GOAL_ADDMOVES, 0,-1, 4,
GOAL_DEPOSE,
GOAL_ACTION, ACTION_DEPOSE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Repose (sud).
static short table_goal_depose2[] =
{
WM_ACTION_DEPOSE2,
GOAL_GOHILI2, +1,0, false,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_GROUP, 6,
GOAL_IFTERM, 0,+1, // emplacement libre ?
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_PUTOBJECT, -1,0, -3,-3, // l'objet transport<72>
GOAL_BUILDOBJECT, -1,0, -2,-2, -1,-1, 11,1,1*100,
GOAL_ADDMOVES, -1,0, 5,
GOAL_DEPOSE,
GOAL_ACTION, ACTION_DEPOSE, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Repose des oeufs sur la nurserie.
static short table_goal_newblupi[] =
{
WM_ACTION_NEWBLUPI,
GOAL_GOHILI2, 0,+1, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 5,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_PUTOBJECT, 0,-1, -3,-3, // l'objet transport<72>
GOAL_BUILDOBJECT, 0,-1, -2,-2, -1,-1, 11,1,1*100,
GOAL_ADDMOVES, 0,-1, 4,
GOAL_DEPOSE,
GOAL_ACTION, ACTION_DEPOSE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_GOBLUPI, -1,0, true,
GOAL_GROUP, 3,
GOAL_PUTOBJECT, +1,-1, CHOBJECT,64, // 4 oeufs
GOAL_BUILDFLOOR, +1,-1, CHFLOOR,-1, -1,-1, 100,1,1*100,
GOAL_ADDICONS, +1,-1, 3,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_NEWBLUPI, +1,-1,
GOAL_GOBLUPI, 0,-1, true,
GOAL_GOBLUPI, 0,+1, true,
GOAL_TERM,
0
};
// Cultive des tomates.
static short table_goal_cultive[] =
{
WM_ACTION_CULTIVE,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +2,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_FIX, -2,0,
GOAL_REPEAT, true,
GOAL_OTHERFIX, CHFLOOR,1,1,19,32, WM_ACTION_CULTIVE2,
GOAL_TERM,
0
};
static short table_goal_cultive2[] =
{
WM_ACTION_CULTIVE2,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,57, CHMASK1,0, 16,6,1*100, // terre
GOAL_ACTION, ACTION_BECHE, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_BECHE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,57, -1,-1, DIMOBJY,1,1*100,
GOAL_ACTION, ACTION_ARROSE, DIRECT_E,
GOAL_ACTION, ACTION_ARROSE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,58, -1,-1, DIMOBJY,1,1*100,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_ARROSE, DIRECT_E,
GOAL_ACTION, ACTION_ARROSE, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, 0,0, CHOBJECT,59, -1,-1, DIMOBJY,1,1*100,
GOAL_ACTION, ACTION_BECHE, DIRECT_E,
GOAL_ACTION, ACTION_BECHE, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_FINISHMOVE,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,60, -1,-1, DIMOBJY,1,-1*100,
GOAL_ACTION, ACTION_ARROSE, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_ARROSE, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_FINISHMOVE,
GOAL_BUILDFLOOR, 0,-1, CHFLOOR,1, CHMASK1,0, 16,1,1*100, // herbe
GOAL_FINISHMOVE,
GOAL_OTHERFIX, CHFLOOR,1,1,19,32, WM_ACTION_CULTIVE2,
GOAL_TERM,
0
};
// Bouffe des tomates (est).
static short table_goal_mange[] =
{
WM_ACTION_MANGE,
GOAL_GOHILI2, 0,+1, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,60, // tomates ?
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, -1,-1, -1,-1, DIMOBJY,1,-1*100,
GOAL_ACTION, ACTION_MANGE, DIRECT_E,
GOAL_ACTION, ACTION_MANGE, DIRECT_E,
GOAL_ACTION, ACTION_MANGE, DIRECT_E,
GOAL_GROUP, 2,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, -1,-1,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// Bouffe des tomates (sud).
static short table_goal_mange2[] =
{
WM_ACTION_MANGE2,
GOAL_GOHILI2, +1,0, false,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, -1,0, CHOBJECT,60, // tomates ?
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, -1,-1, -1,-1, DIMOBJY,1,-1*100,
GOAL_ACTION, ACTION_MANGE, DIRECT_E,
GOAL_ACTION, ACTION_MANGE, DIRECT_E,
GOAL_ACTION, ACTION_MANGE, DIRECT_E,
GOAL_GROUP, 2,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -1,0, -1,-1,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_TERM,
0
};
// Boit <20> la bouteille (est).
static short table_goal_boit[] =
{
WM_ACTION_BOIT,
GOAL_GOHILI2, 0,+1, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 5,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,80, // bouteille ?
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_PUTOBJECT, 0,-1, -1,-1,
GOAL_ACTION, ACTION_BOIT, DIRECT_E,
GOAL_ACTION, ACTION_BOIT, DIRECT_E,
GOAL_ACTION, ACTION_BOIT, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// Boit <20> la bouteille (sud).
static short table_goal_boit2[] =
{
WM_ACTION_BOIT2,
GOAL_GOHILI2, +1,0, false,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_GROUP, 5,
GOAL_TESTOBJECT, -1,0, CHOBJECT,80, // bouteille ?
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_PUTOBJECT, -1,0, -1,-1,
GOAL_ACTION, ACTION_BOIT, DIRECT_E,
GOAL_ACTION, ACTION_BOIT, DIRECT_E,
GOAL_ACTION, ACTION_BOIT, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_TERM,
0
};
// Cueille des fleurs.
static short table_goal_fleur1[] =
{
WM_ACTION_FLEUR1,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, true,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,81,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,82, -1,-1, DIMOBJY+20,1,-1*100,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE1, DIRECT_E,
GOAL_ACTION, ACTION_CUEILLE1, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE1, DIRECT_S,
GOAL_ACTION, ACTION_CUEILLE1, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE1, DIRECT_S,
GOAL_ACTION, ACTION_CUEILLE1, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,81,81,-1,-1, WM_ACTION_FLEUR1,
GOAL_TERM,
0
};
// Cueille des fleurs.
static short table_goal_fleur2[] =
{
WM_ACTION_FLEUR2,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, true,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,83,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,84, -1,-1, DIMOBJY+20,1,-1*100,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE2, DIRECT_E,
GOAL_ACTION, ACTION_CUEILLE2, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE2, DIRECT_S,
GOAL_ACTION, ACTION_CUEILLE2, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE2, DIRECT_S,
GOAL_ACTION, ACTION_CUEILLE2, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,83,83,-1,-1, WM_ACTION_FLEUR2,
GOAL_TERM,
0
};
// Cueille des fleurs.
static short table_goal_fleur3[] =
{
WM_ACTION_FLEUR3,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, true,
GOAL_GROUP, 4,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,94,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,95, -1,-1, DIMOBJY+20,1,-1*100,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE3, DIRECT_E,
GOAL_ACTION, ACTION_CUEILLE3, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE3, DIRECT_S,
GOAL_ACTION, ACTION_CUEILLE3, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_SOUND, SOUND_FLEUR,
GOAL_ACTION, ACTION_CUEILLE3, DIRECT_S,
GOAL_ACTION, ACTION_CUEILLE3, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_OTHER, CHOBJECT,94,94,-1,-1, WM_ACTION_FLEUR3,
GOAL_TERM,
0
};
// Transforme des fleurs.
static short table_goal_labo[] =
{
WM_ACTION_LABO,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 6,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,29, // ferme la porte
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,29, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 10, // secoue
GOAL_CACHE, true, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_O,
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 4,
GOAL_LABO,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,28, // ouvre la porte
GOAL_CACHE, false, false,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_IFTERM, 0,-1,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// Blupi fait p<>ter la dynamite.
static short table_goal_dynamite[] =
{
WM_ACTION_DYNAMITE,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 5,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_PUTOBJECT, 0,-1, -1,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,-1, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDICONS, 0,-1, 7, // m<>che
GOAL_ACTION, ACTION_MECHE, DIRECT_E,
GOAL_SOUND, SOUND_DYNAMITE,
GOAL_GROUP, 4,
GOAL_PUTOBJECT, 0,-1, -1,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,-1, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDICONS, 0,-1, 6, // explosion
GOAL_CACHE, true, true,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 4+4,
GOAL_EXPLOSE1, 0,-3,
GOAL_EXPLOSE1, -2,-1,
GOAL_EXPLOSE1, +2,-1,
GOAL_EXPLOSE1, 0,+1,
GOAL_EXPLOSE2, 0,-3,
GOAL_EXPLOSE2, -2,-1,
GOAL_EXPLOSE2, +2,-1,
GOAL_EXPLOSE2, 0,+1,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 4+4,
GOAL_EXPLOSE1, -2,-3,
GOAL_EXPLOSE1, +2,-3,
GOAL_EXPLOSE1, -2,+1,
GOAL_EXPLOSE1, +2,+1,
GOAL_EXPLOSE2, -2,-3,
GOAL_EXPLOSE2, +2,-3,
GOAL_EXPLOSE2, -2,+1,
GOAL_EXPLOSE2, +2,+1,
GOAL_ACTION, ACTION_DYNAMITE, DIRECT_E,
GOAL_GROUP, 3,
GOAL_FINISHMOVE,
GOAL_CACHE, false, true,
GOAL_DELETE, // blupi meurt brutalement
GOAL_TERM,
0
};
// Blupi fait p<>ter la dynamite tr<74>s fort.
static short table_goal_dynamite2[] =
{
WM_ACTION_DYNAMITE2,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
//? GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 5,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_PUTOBJECT, 0,-1, -1,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,-1, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDICONS, 0,-1, 7, // m<>che
GOAL_ACTION, ACTION_MECHE, DIRECT_E,
GOAL_SOUND, SOUND_DYNAMITE,
GOAL_GROUP, 5,
GOAL_PUTOBJECT, 0,-1, -1,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,-1, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDICONS, 0,-1, 6, // explosion
GOAL_CACHE, true, true,
GOAL_DEPOSE,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 4+4,
GOAL_EXPLOSE1, 0,-3,
GOAL_EXPLOSE1, -2,-1,
GOAL_EXPLOSE1, +2,-1,
GOAL_EXPLOSE1, 0,+1,
GOAL_EXPLOSE2, 0,-3,
GOAL_EXPLOSE2, -2,-1,
GOAL_EXPLOSE2, +2,-1,
GOAL_EXPLOSE2, 0,+1,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 4+4,
GOAL_EXPLOSE1, -2,-3,
GOAL_EXPLOSE1, +2,-3,
GOAL_EXPLOSE1, -2,+1,
GOAL_EXPLOSE1, +2,+1,
GOAL_EXPLOSE2, -2,-3,
GOAL_EXPLOSE2, +2,-3,
GOAL_EXPLOSE2, -2,+1,
GOAL_EXPLOSE2, +2,+1,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 12+12,
GOAL_EXPLOSE1, -4,-3,
GOAL_EXPLOSE1, -4,-1,
GOAL_EXPLOSE1, -4,+1,
GOAL_EXPLOSE1, -2,-5,
GOAL_EXPLOSE1, -2,+3,
GOAL_EXPLOSE1, 0,-5,
GOAL_EXPLOSE1, 0,+3,
GOAL_EXPLOSE1, +2,-5,
GOAL_EXPLOSE1, +2,+3,
GOAL_EXPLOSE1, +4,-3,
GOAL_EXPLOSE1, +4,-1,
GOAL_EXPLOSE1, +4,+1,
GOAL_EXPLOSE2, -4,-3,
GOAL_EXPLOSE2, -4,-1,
GOAL_EXPLOSE2, -4,+1,
GOAL_EXPLOSE2, -2,-5,
GOAL_EXPLOSE2, -2,+3,
GOAL_EXPLOSE2, 0,-5,
GOAL_EXPLOSE2, 0,+3,
GOAL_EXPLOSE2, +2,-5,
GOAL_EXPLOSE2, +2,+3,
GOAL_EXPLOSE2, +4,-3,
GOAL_EXPLOSE2, +4,-1,
GOAL_EXPLOSE2, +4,+1,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 16+16,
GOAL_EXPLOSE1, -6,-3,
GOAL_EXPLOSE1, -6,-1,
GOAL_EXPLOSE1, -6,+1,
GOAL_EXPLOSE1, -4,-5,
GOAL_EXPLOSE1, -4,+3,
GOAL_EXPLOSE1, -2,-7,
GOAL_EXPLOSE1, -2,+5,
GOAL_EXPLOSE1, 0,-7,
GOAL_EXPLOSE1, 0,+5,
GOAL_EXPLOSE1, +2,-7,
GOAL_EXPLOSE1, +2,+5,
GOAL_EXPLOSE1, +4,-5,
GOAL_EXPLOSE1, +4,+3,
GOAL_EXPLOSE1, +6,-3,
GOAL_EXPLOSE1, +6,-1,
GOAL_EXPLOSE1, +6,+1,
GOAL_EXPLOSE2, -6,-3,
GOAL_EXPLOSE2, -6,-1,
GOAL_EXPLOSE2, -6,+1,
GOAL_EXPLOSE2, -4,-5,
GOAL_EXPLOSE2, -4,+3,
GOAL_EXPLOSE2, -2,-7,
GOAL_EXPLOSE2, -2,+5,
GOAL_EXPLOSE2, 0,-7,
GOAL_EXPLOSE2, 0,+5,
GOAL_EXPLOSE2, +2,-7,
GOAL_EXPLOSE2, +2,+5,
GOAL_EXPLOSE2, +4,-5,
GOAL_EXPLOSE2, +4,+3,
GOAL_EXPLOSE2, +6,-3,
GOAL_EXPLOSE2, +6,-1,
GOAL_EXPLOSE2, +6,+1,
GOAL_ACTION, ACTION_DYNAMITE, DIRECT_E,
GOAL_GROUP, 3,
GOAL_FINISHMOVE,
GOAL_CACHE, false, true,
GOAL_DELETE, // blupi meurt brutalement
GOAL_TERM,
0
};
// Tracks fait p<>ter la dynamite.
static short table_goal_t_dynamite[] =
{
WM_ACTION_T_DYNAMITE,
GOAL_GOHILI2, +1,+1, false,
GOAL_SOUND, SOUND_DYNAMITE,
GOAL_GROUP, 6,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,-1, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDICONS, -1,-1, 6, // explosion
GOAL_CACHE, true, false,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 4+4,
GOAL_EXPLOSE1, -1,-3,
GOAL_EXPLOSE1, -3,-1,
GOAL_EXPLOSE1, +1,-1,
GOAL_EXPLOSE1, -1,+1,
GOAL_EXPLOSE2, -1,-3,
GOAL_EXPLOSE2, -3,-1,
GOAL_EXPLOSE2, +1,-1,
GOAL_EXPLOSE2, -1,+1,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 4+4,
GOAL_EXPLOSE1, -3,-3,
GOAL_EXPLOSE1, +1,-3,
GOAL_EXPLOSE1, -3,+1,
GOAL_EXPLOSE1, +1,+1,
GOAL_EXPLOSE2, -3,-3,
GOAL_EXPLOSE2, +1,-3,
GOAL_EXPLOSE2, -3,+1,
GOAL_EXPLOSE2, +1,+1,
GOAL_ACTION, ACTION_DYNAMITE, DIRECT_E,
GOAL_GROUP, 3,
GOAL_FINISHMOVE,
GOAL_CACHE, false, false,
GOAL_DELETE, // tracks meurt brutalement
GOAL_TERM,
0
};
// Blupi amorce une mine.
static short table_goal_mine[] =
{
WM_ACTION_MINE,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,125, // mine ?
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_ACTION, ACTION_MECHE, DIRECT_E,
GOAL_GROUP, 2,
GOAL_TESTOBJECT, 0,-1, CHOBJECT,125, // mine ?
GOAL_AMORCE, +1,0,
GOAL_TERM,
0
};
// D<>tonnateur de mine cr<63><72> par GOAL_AMORCE (blupi invisible).
static short table_goal_mine2[] =
{
WM_ACTION_MINE2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,127,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+10, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,125,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+9, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,127,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+8, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,125,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+7, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,127,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+6, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,125,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+5, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,127,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+4, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,125,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+3, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,127,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+2, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,125,
GOAL_BUILDOBJECT, -1,-1, -1,MOVEICONNB+1, -1,-1, 100,1,-1*100,
GOAL_SOUND, SOUND_CLICK,
GOAL_ACTION, ACTION_D_DELAY, DIRECT_E,
GOAL_SOUND, SOUND_DYNAMITE,
GOAL_GROUP, 4,
GOAL_PUTOBJECT, -1,-1, -1,-1,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,-1, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDICONS, -1,-1, 6, // explosion
GOAL_CACHE, true, false,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 4+4,
GOAL_EXPLOSE1, -1,-3,
GOAL_EXPLOSE1, -3,-1,
GOAL_EXPLOSE1, +1,-1,
GOAL_EXPLOSE1, -1,+1,
GOAL_EXPLOSE2, -1,-3,
GOAL_EXPLOSE2, -3,-1,
GOAL_EXPLOSE2, +1,-1,
GOAL_EXPLOSE2, -1,+1,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 4+4,
GOAL_EXPLOSE1, -3,-3,
GOAL_EXPLOSE1, +1,-3,
GOAL_EXPLOSE1, -3,+1,
GOAL_EXPLOSE1, +1,+1,
GOAL_EXPLOSE2, -3,-3,
GOAL_EXPLOSE2, +1,-3,
GOAL_EXPLOSE2, -3,+1,
GOAL_EXPLOSE2, +1,+1,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 12+12,
GOAL_EXPLOSE1, -5,-3,
GOAL_EXPLOSE1, -5,-1,
GOAL_EXPLOSE1, -5,+1,
GOAL_EXPLOSE1, -3,-5,
GOAL_EXPLOSE1, -3,+3,
GOAL_EXPLOSE1, -1,-5,
GOAL_EXPLOSE1, -1,+3,
GOAL_EXPLOSE1, +1,-5,
GOAL_EXPLOSE1, +1,+3,
GOAL_EXPLOSE1, +3,-3,
GOAL_EXPLOSE1, +3,-1,
GOAL_EXPLOSE1, +3,+1,
GOAL_EXPLOSE2, -5,-3,
GOAL_EXPLOSE2, -5,-1,
GOAL_EXPLOSE2, -5,+1,
GOAL_EXPLOSE2, -3,-5,
GOAL_EXPLOSE2, -3,+3,
GOAL_EXPLOSE2, -1,-5,
GOAL_EXPLOSE2, -1,+3,
GOAL_EXPLOSE2, +1,-5,
GOAL_EXPLOSE2, +1,+3,
GOAL_EXPLOSE2, +3,-3,
GOAL_EXPLOSE2, +3,-1,
GOAL_EXPLOSE2, +3,+1,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_DELAY, DIRECT_E,
GOAL_GROUP, 16+16,
GOAL_EXPLOSE1, -7,-3,
GOAL_EXPLOSE1, -7,-1,
GOAL_EXPLOSE1, -7,+1,
GOAL_EXPLOSE1, -5,-5,
GOAL_EXPLOSE1, -5,+3,
GOAL_EXPLOSE1, -3,-7,
GOAL_EXPLOSE1, -3,+5,
GOAL_EXPLOSE1, -1,-7,
GOAL_EXPLOSE1, -1,+5,
GOAL_EXPLOSE1, +1,-7,
GOAL_EXPLOSE1, +1,+5,
GOAL_EXPLOSE1, +3,-5,
GOAL_EXPLOSE1, +3,+3,
GOAL_EXPLOSE1, +5,-3,
GOAL_EXPLOSE1, +5,-1,
GOAL_EXPLOSE1, +5,+1,
GOAL_EXPLOSE2, -7,-3,
GOAL_EXPLOSE2, -7,-1,
GOAL_EXPLOSE2, -7,+1,
GOAL_EXPLOSE2, -5,-5,
GOAL_EXPLOSE2, -5,+3,
GOAL_EXPLOSE2, -3,-7,
GOAL_EXPLOSE2, -3,+5,
GOAL_EXPLOSE2, -1,-7,
GOAL_EXPLOSE2, -1,+5,
GOAL_EXPLOSE2, +1,-7,
GOAL_EXPLOSE2, +1,+5,
GOAL_EXPLOSE2, +3,-5,
GOAL_EXPLOSE2, +3,+3,
GOAL_EXPLOSE2, +5,-3,
GOAL_EXPLOSE2, +5,-1,
GOAL_EXPLOSE2, +5,+1,
GOAL_ACTION, ACTION_DYNAMITE, DIRECT_E,
GOAL_GROUP, 3,
GOAL_FINISHMOVE,
GOAL_CACHE, false, false,
GOAL_DELETE, // blupi meurt brutalement
GOAL_TERM,
0
};
// Construit un pont en direction de l'est.
static short table_goal_ponte[] =
{
WM_ACTION_PONTE,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,72, -1,-1, DIMOBJY/10,12,-10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, -1,+1, true,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_GOBLUPI, +1,0, true,
GOAL_OTHERLOOP, WM_ACTION_PONTEL,
GOAL_TERM,
0
};
static short table_goal_pontel[] =
{
WM_ACTION_PONTEL,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_BUILDOBJECT, -10,-10, CHOBJECT,72, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -10,-10, 6, // pont vers l'est
GOAL_ACTION, ACTION_PONT, DIRECT_E,
GOAL_GROUP, 4,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -10,-10, -1,-1,
GOAL_NEXTLOOP,
GOAL_PUTOBJECT, -10,-10, CHOBJECT,72,
GOAL_OTHERLOOP, WM_ACTION_PONTEL,
GOAL_GROUP, 3,
GOAL_PUTOBJECT, -10,-10, -1,-1,
GOAL_PUTFLOOR, -10,-10, CHFLOOR,-2, // vIcon
GOAL_SOUND, SOUND_PLOUF,
//? GOAL_ACTION, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// Construit un pont en direction de l'ouest.
static short table_goal_ponto[] =
{
WM_ACTION_PONTO,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,72, -1,-1, DIMOBJY/10,12,-10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, -1,+1, true,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_OTHERLOOP, WM_ACTION_PONTOL,
GOAL_TERM,
0
};
static short table_goal_pontol[] =
{
WM_ACTION_PONTOL,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_BUILDOBJECT, -10,-10, CHOBJECT,72, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -10,-10, 7, // pont vers l'ouest
GOAL_ACTION, ACTION_PONT, DIRECT_O,
GOAL_GROUP, 4,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -10,-10, -1,-1,
GOAL_NEXTLOOP,
GOAL_PUTOBJECT, -10,-10, CHOBJECT,72,
GOAL_OTHERLOOP, WM_ACTION_PONTOL,
GOAL_GROUP, 3,
GOAL_PUTOBJECT, -10,-10, -1,-1,
GOAL_PUTFLOOR, -10,-10, CHFLOOR,-2, // vIcon
GOAL_SOUND, SOUND_PLOUF,
//? GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_O,
GOAL_TERM,
0
};
// Construit un pont en direction du sud.
static short table_goal_ponts[] =
{
WM_ACTION_PONTS,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,73, -1,-1, DIMOBJY/10,12,-10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_GOBLUPI, 0,+1, true,
GOAL_OTHERLOOP, WM_ACTION_PONTSL,
GOAL_TERM,
0
};
static short table_goal_pontsl[] =
{
WM_ACTION_PONTSL,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_BUILDOBJECT, -10,-10, CHOBJECT,73, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -10,-10, 8, // pont vers le sud
GOAL_ACTION, ACTION_PONT, DIRECT_S,
GOAL_GROUP, 4,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -10,-10, -1,-1,
GOAL_NEXTLOOP,
GOAL_PUTOBJECT, -10,-10, CHOBJECT,73,
GOAL_OTHERLOOP, WM_ACTION_PONTSL,
GOAL_GROUP, 3,
GOAL_PUTOBJECT, -10,-10, -1,-1,
GOAL_PUTFLOOR, -10,-10, CHFLOOR,-2, // vIcon
GOAL_SOUND, SOUND_PLOUF,
//? GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_S,
GOAL_TERM,
0
};
// Construit un pont en direction du nord.
static short table_goal_pontn[] =
{
WM_ACTION_PONTN,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,73, -1,-1, DIMOBJY/10,12,-10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_OTHERLOOP, WM_ACTION_PONTNL,
GOAL_TERM,
0
};
static short table_goal_pontnl[] =
{
WM_ACTION_PONTNL,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_BUILDOBJECT, -10,-10, CHOBJECT,73, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -10,-10, 9, // pont vers le nord
GOAL_ACTION, ACTION_PONT, DIRECT_N,
GOAL_GROUP, 4,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -10,-10, -1,-1,
GOAL_NEXTLOOP,
GOAL_PUTOBJECT, -10,-10, CHOBJECT,73,
GOAL_OTHERLOOP, WM_ACTION_PONTNL,
GOAL_GROUP, 3,
GOAL_PUTOBJECT, -10,-10, -1,-1,
GOAL_PUTFLOOR, -10,-10, CHFLOOR,-2, // vIcon
GOAL_SOUND, SOUND_PLOUF,
//? GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_TERM,
0
};
// Construit un bateau.
static short table_goal_bateaue[] =
{
WM_ACTION_BATEAUE,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,117, -1,-1, DIMOBJY/10,20,-10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, -1,+1, true,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_GOBLUPI, +1,-1, true,
GOAL_FINISHMOVE,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,117, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,0, 6, // bateau vers l'est
GOAL_ACTION, ACTION_PONT, DIRECT_E,
GOAL_GROUP, 4,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -1,0, -1,-1,
GOAL_PUTOBJECT, +1,0, CHOBJECT,117,
GOAL_SOUND, SOUND_PLOUF,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
static short table_goal_bateaus[] =
{
WM_ACTION_BATEAUS,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,117, -1,-1, DIMOBJY/10,20,-10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, -1,+1, true,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,117, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 8, // bateau vers le sud
GOAL_ACTION, ACTION_PONT, DIRECT_S,
GOAL_GROUP, 4,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, -1,-1,
GOAL_PUTOBJECT, 0,+1, CHOBJECT,117,
GOAL_SOUND, SOUND_PLOUF,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
static short table_goal_bateauo[] =
{
WM_ACTION_BATEAUO,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,117, -1,-1, DIMOBJY/10,20,-10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, -1,+1, true,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_GOBLUPI, +1,-1, true,
GOAL_FINISHMOVE,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,117, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,0, 7, // bateau vers l'ouest
GOAL_ACTION, ACTION_PONT, DIRECT_O,
GOAL_GROUP, 4,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -1,0, -1,-1,
GOAL_PUTOBJECT, -3,0, CHOBJECT,117,
GOAL_SOUND, SOUND_PLOUF,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
static short table_goal_bateaun[] =
{
WM_ACTION_BATEAUN,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,0, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GROUP, 3,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_BUILDOBJECT, -1,0, CHOBJECT,117, -1,-1, DIMOBJY/10,20,-10*100,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_ACTION, ACTION_SCIE, DIRECT_S,
GOAL_GOBLUPI, -1,+1, true,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,117, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 9, // bateau vers le nord
GOAL_ACTION, ACTION_PONT, DIRECT_N,
GOAL_GROUP, 4,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, -1,-1,
GOAL_PUTOBJECT, 0,-3, CHOBJECT,117,
GOAL_SOUND, SOUND_PLOUF,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// D<>part en bateau.
static short table_goal_bateaude[] =
{
WM_ACTION_BATEAUDE,
GOAL_ISNOMALADE,
GOAL_GOHILI2, +1,+1, true,
GOAL_ISNOMALADE,
GOAL_GROUP, 3,
GOAL_TESTOBJECT, +1,-1, CHOBJECT,117,
GOAL_INTERRUPT, -1, // passe muraille
GOAL_WORK, +1,-1,
GOAL_GOBLUPI, +2,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, -1,-1, // enl<6E>ve le bateau
GOAL_VEHICULE, 1, // en bateau
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_TERM,
0
};
static short table_goal_bateauds[] =
{
WM_ACTION_BATEAUDS,
GOAL_ISNOMALADE,
GOAL_GOHILI2, +1,+1, false,
GOAL_ISNOMALADE,
GOAL_GROUP, 3,
GOAL_TESTOBJECT, -1,+1, CHOBJECT,117,
GOAL_INTERRUPT, -1, // passe muraille
GOAL_WORK, -1,+1,
GOAL_GOBLUPI, 0,+2, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, -1,-1, // enl<6E>ve le bateau
GOAL_VEHICULE, 1, // en bateau
GOAL_GOBLUPI, 0,+1, true,
GOAL_TERM,
0
};
static short table_goal_bateaudo[] =
{
WM_ACTION_BATEAUDO,
GOAL_ISNOMALADE,
GOAL_GOHILI2, 0,+1, false,
GOAL_ISNOMALADE,
GOAL_GROUP, 3,
GOAL_TESTOBJECT, -2,-1, CHOBJECT,117,
GOAL_INTERRUPT, -1, // passe muraille
GOAL_WORK, -2,-1,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, -1,-1, // enl<6E>ve le bateau
GOAL_VEHICULE, 1, // en bateau
GOAL_GOBLUPI, -1,0, true,
GOAL_TERM,
0
};
static short table_goal_bateaudn[] =
{
WM_ACTION_BATEAUDN,
GOAL_ISNOMALADE,
GOAL_GOHILI2, +1,0, false,
GOAL_ISNOMALADE,
GOAL_GROUP, 3,
GOAL_TESTOBJECT, -1,-2, CHOBJECT,117,
GOAL_INTERRUPT, -1, // passe muraille
GOAL_WORK, -1,-2,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, -1,-1, // enl<6E>ve le bateau
GOAL_VEHICULE, 1, // en bateau
GOAL_GOBLUPI, 0,-1, true,
GOAL_TERM,
0
};
// Arriv<69>e en bateau.
static short table_goal_bateauae[] =
{
WM_ACTION_BATEAUAE,
GOAL_GOHILI2, 0,+1, false,
GOAL_GROUP, 4,
GOAL_IFDEBARQUE, -3,0,
GOAL_INTERRUPT, -1, // passe muraille
GOAL_WORK, -2,-1,
GOAL_WORK, -4,-1,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,117, // remet le bateau
GOAL_VEHICULE, 0, // <20> pied
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GOBLUPI, -2,0, true,
GOAL_TERM,
0
};
static short table_goal_bateauas[] =
{
WM_ACTION_BATEAUAS,
GOAL_GOHILI2, +1,0, false,
GOAL_GROUP, 4,
GOAL_IFDEBARQUE, 0,-3,
GOAL_INTERRUPT, -1, // passe muraille
GOAL_WORK, -1,-2,
GOAL_WORK, -1,-4,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,117, // remet le bateau
GOAL_VEHICULE, 0, // <20> pied
GOAL_GOBLUPI, 0,-2, true,
GOAL_TERM,
0
};
static short table_goal_bateauao[] =
{
WM_ACTION_BATEAUAO,
GOAL_GOHILI2, 0,+1, false,
GOAL_GROUP, 4,
GOAL_IFDEBARQUE, +2,0,
GOAL_INTERRUPT, -1, // passe muraille
GOAL_WORK, 0,-1,
GOAL_WORK, +2,-1,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,117, // remet le bateau
GOAL_VEHICULE, 0, // <20> pied
GOAL_GOBLUPI, +1,0, true,
GOAL_TERM,
0
};
static short table_goal_bateauan[] =
{
WM_ACTION_BATEAUAN,
GOAL_GOHILI2, +1,0, false,
GOAL_GROUP, 4,
GOAL_IFDEBARQUE, 0,+2,
GOAL_INTERRUPT, -1, // passe muraille
GOAL_WORK, -1,0,
GOAL_WORK, -1,+2,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,117, // remet le bateau
GOAL_VEHICULE, 0, // <20> pied
GOAL_GOBLUPI, 0,+1, true,
GOAL_TERM,
0
};
// Le robot construit une station de recharge.
static short table_goal_r_build1[] =
{
WM_ACTION_R_BUILD1,
GOAL_GOHILI2, +1,+1, false,
GOAL_GROUP, 3,
GOAL_USINEBUILD, -1,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,67, CHMASK1,0, 16,14,1*100,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,99, -1,-1, DIMOBJY/4,20,4*100,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_N,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Le robot construit une usine <20> araign<67>es.
static short table_goal_r_build2[] =
{
WM_ACTION_R_BUILD2,
GOAL_GOHILI2, +1,+1, false,
GOAL_GROUP, 3,
GOAL_USINEBUILD, -1,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,67, CHMASK1,0, 16,14,1*100,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,100, -1,-1, DIMOBJY/4,20,4*100,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_N,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Le robot construit une usine <20> virus.
static short table_goal_r_build3[] =
{
WM_ACTION_R_BUILD3,
GOAL_GOHILI2, +1,+1, false,
GOAL_GROUP, 3,
GOAL_USINEBUILD, -1,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,67, CHMASK1,0, 16,14,1*100,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,102, -1,-1, DIMOBJY/4,20,4*100,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_O,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_N,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Le robot construit une usine <20> tracks.
static short table_goal_r_build4[] =
{
WM_ACTION_R_BUILD4,
GOAL_GOHILI2, +1,+1, false,
GOAL_GROUP, 3,
GOAL_USINEBUILD, -1,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,67, CHMASK1,0, 16,14,1*100,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,104, -1,-1, DIMOBJY/4,20,4*100,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_N,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Le robot construit une usine <20> bombe.
static short table_goal_r_build5[] =
{
WM_ACTION_R_BUILD5,
GOAL_GOHILI2, +1,+1, false,
GOAL_GROUP, 3,
GOAL_USINEBUILD, -1,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,67, CHMASK1,0, 16,14,1*100,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,115, -1,-1, DIMOBJY/4,20,4*100,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_N,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Le robot construit une usine <20> <20>lectro.
static short table_goal_r_build6[] =
{
WM_ACTION_R_BUILD6,
GOAL_GOHILI2, +1,+1, false,
GOAL_GROUP, 3,
GOAL_USINEBUILD, -1,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,67, CHMASK1,0, 16,14,1*100,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, -1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_E,
GOAL_GOBLUPI, 0,+1, true,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,17, -1,-1, DIMOBJY/4,20,4*100,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_O,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_S,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_APLAT, DIRECT_N,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_E,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_S,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Le robot se recharge.
static short table_goal_r_make1[] =
{
WM_ACTION_R_MAKE1,
GOAL_GOHILI2, +1,+1, false,
GOAL_GROUP, 2,
GOAL_USINEFREE, -1,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_ACTION, ACTION_R_CHARGE, DIRECT_O,
GOAL_ACTION, ACTION_R_CHARGE, DIRECT_O,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_O,
GOAL_ACTION, ACTION_R_CHARGE, DIRECT_O,
GOAL_ACTION, ACTION_R_CHARGE, DIRECT_O,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_O,
GOAL_ACTION, ACTION_R_CHARGE, DIRECT_O,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_O,
GOAL_ACTION, ACTION_R_CHARGE, DIRECT_O,
GOAL_ACTION, ACTION_R_CHARGE, DIRECT_O,
GOAL_ACTION, ACTION_R_BUILD, DIRECT_O,
GOAL_TERM,
0
};
// Le robot construit une araign<67>e.
static short table_goal_r_make2[] =
{
WM_ACTION_R_MAKE2,
GOAL_GOHILI2, +2,+1, false,
GOAL_GROUP, 2,
GOAL_USINEFREE, -2,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,101, // ouvre la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_GOBLUPI, -1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,100, // ferme la porte
GOAL_CACHE, true, false,
GOAL_GOBLUPI, -1,0, true,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,100, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,100, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 2,0,
GOAL_WAITFREE, 3,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,101, // ouvre la porte
GOAL_NEWPERSO, +1,0, 1, // araign<67>e (qui sortira)
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,100, // ferme la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 1,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_CACHE, false, false,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,101, // ouvre la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,100, // ferme la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_TERM,
0
};
// Le robot construit un virus.
static short table_goal_r_make3[] =
{
WM_ACTION_R_MAKE3,
GOAL_GOHILI2, +2,+1, false,
GOAL_GROUP, 2,
GOAL_USINEFREE, -2,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,103, // ouvre la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_GOBLUPI, -1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,102, // ferme la porte
GOAL_CACHE, true, false,
GOAL_GOBLUPI, -1,0, true,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,102, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,102, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 2,0,
GOAL_WAITFREE, 3,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,103, // ouvre la porte
GOAL_NEWPERSO, +1,0, 2, // virus (qui sortira)
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,102, // ferme la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 1,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_CACHE, false, false,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,103, // ouvre la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,102, // ferme la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_TERM,
0
};
// Le robot construit un tracks.
static short table_goal_r_make4[] =
{
WM_ACTION_R_MAKE4,
GOAL_GOHILI2, +2,+1, false,
GOAL_GROUP, 2,
GOAL_USINEFREE, -2,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,105, // ouvre la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_GOBLUPI, -1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,104, // ferme la porte
GOAL_CACHE, true, false,
GOAL_GOBLUPI, -1,0, true,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,104, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,104, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 2,0,
GOAL_WAITFREE, 3,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,105, // ouvre la porte
GOAL_NEWPERSO, +1,0, 3, // tracks (qui sortira)
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,104, // ferme la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 1,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_CACHE, false, false,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,105, // ouvre la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,104, // ferme la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_TERM,
0
};
// Le robot construit une bombe.
static short table_goal_r_make5[] =
{
WM_ACTION_R_MAKE5,
GOAL_GOHILI2, +2,+1, false,
GOAL_GROUP, 2,
GOAL_USINEFREE, -2,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,116, // ouvre la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_GOBLUPI, -1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,115, // ferme la porte
GOAL_CACHE, true, false,
GOAL_GOBLUPI, -1,0, true,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,115, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,115, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 2,0,
GOAL_WAITFREE, 3,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,116, // ouvre la porte
GOAL_NEWPERSO, +1,0, 5, // bombe (qui sortira)
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,115, // ferme la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 1,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_CACHE, false, false,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,116, // ouvre la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,115, // ferme la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_TERM,
0
};
// Le robot construit un <20>lectro.
static short table_goal_r_make6[] =
{
WM_ACTION_R_MAKE6,
GOAL_GOHILI2, +2,+1, false,
GOAL_GROUP, 2,
GOAL_USINEFREE, -2,-1,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,18, // ouvre la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_ACTION, ACTION_R_STOP, DIRECT_O,
GOAL_GOBLUPI, -1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,17, // ferme la porte
GOAL_CACHE, true, false,
GOAL_GOBLUPI, -1,0, true,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,17, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,17, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 10, // secoue
GOAL_SOUND, SOUND_LABO,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 2,0,
GOAL_WAITFREE, 3,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,18, // ouvre la porte
GOAL_NEWPERSO, +1,0, 7, // <20>lectro (qui sortira)
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,17, // ferme la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_WAITFREE, 1,0,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_CACHE, false, false,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,18, // ouvre la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, -2,-1, CHOBJECT,17, // ferme la porte
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_ACTION, ACTION_R_STOP, DIRECT_N,
GOAL_TERM,
0
};
// Blupi monte dans une jeep.
static short table_goal_mjeep[] =
{
WM_ACTION_MJEEP,
GOAL_ISNOMALADE,
GOAL_GOHILI2, +1,0, false,
GOAL_ISNOMALADE,
GOAL_GROUP, 3,
GOAL_TESTOBJECT, -1,0, CHOBJECT,118,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_ACTION, ACTION_SAUTE1, DIRECT_S,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, -1,-1, // enl<6E>ve la jeep
GOAL_VEHICULE, 2, // en jeep
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// Blupi descend de la jeep.
static short table_goal_djeep[] =
{
WM_ACTION_DJEEP,
GOAL_GOHILI2, +1,+1, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 5,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,118, // remet la jeep
GOAL_VEHICULE, 0, // <20> pied
GOAL_ACTUALISE,
GOAL_ACTION, ACTION_SAUTE1, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_TERM,
0
};
// Blupi monte dans une armure.
static short table_goal_marmure[] =
{
WM_ACTION_MARMURE,
GOAL_ISNOMALADE,
GOAL_GOHILI2, +1,0, false,
GOAL_ISNOMALADE,
GOAL_GROUP, 3,
GOAL_TESTOBJECT, -1,0, CHOBJECT,16,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,0,
GOAL_GOBLUPI, 0,+1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_PUTOBJECT, -1,-1, -1,-1, // enl<6E>ve l'armure
GOAL_ACTION, ACTION_ARMURECLOSE, DIRECT_E,
GOAL_VEHICULE, 3, // en armure
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// Blupi descend de l'armure.
static short table_goal_darmure[] =
{
WM_ACTION_DARMURE,
GOAL_GOHILI2, +1,+1, false,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_ARMUREOPEN, DIRECT_E,
GOAL_GROUP, 3,
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,16, // remet l'armure
GOAL_VEHICULE, 0, // <20> pied
GOAL_GOBLUPI, 0,-1, true,
GOAL_TERM,
0
};
// Blupi cherche o<> planter des drapeaux.
static short table_goal_drapeau[] =
{
WM_ACTION_DRAPEAU,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_FIX, 0,-1,
GOAL_REPEAT, true,
GOAL_OTHERFIX, CHFLOOR,33,48,71,71, WM_ACTION_DRAPEAU2,
GOAL_TERM,
0
};
static short table_goal_drapeau2[] =
{
WM_ACTION_DRAPEAU2,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_BUILD, DIRECT_S,
GOAL_FLOORJUMP, CHFLOOR,71, WM_ACTION_DRAPEAU3,
GOAL_ADDDRAPEAU, -1,0,
GOAL_OTHERFIX, CHFLOOR,33,48,71,71, WM_ACTION_DRAPEAU2,
GOAL_TERM,
0
};
// Plante un drapeau.
static short table_goal_drapeau3[] =
{
WM_ACTION_DRAPEAU3,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, 0,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GROUP, 2,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, 0,-1,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,124, -1,-1, DIMOBJY/10,8,10*100,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_O,
GOAL_GOBLUPI, +1,-1, true,
GOAL_ACTION, ACTION_PIOCHESOURD, DIRECT_E,
GOAL_ADDDRAPEAU, -1,0,
GOAL_FINISHMOVE,
//? GOAL_OTHERFIX, CHFLOOR,33,48,71,71, WM_ACTION_DRAPEAU2,
GOAL_TERM,
0
};
// Blupi extrait du fer.
static short table_goal_extrait[] =
{
WM_ACTION_EXTRAIT,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 6,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,121, // ferme la porte
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,121, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 11, // secoue
GOAL_CACHE, true, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_O,
GOAL_SOUND, SOUND_MINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,121, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 11, // secoue
GOAL_SOUND, SOUND_MINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 4,
GOAL_TAKEOBJECT, -1,-1, CHOBJECT,123, // porte du fer
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,122, // ouvre la porte
GOAL_CACHE, false, false,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_IFTERM, 0,-1,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// Blupi fabrique une jeep.
static short table_goal_fabjeep[] =
{
WM_ACTION_FABJEEP,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 6,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,119, // ferme la porte
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,119, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 12, // secoue
GOAL_CACHE, true, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_O,
GOAL_SOUND, SOUND_USINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,119, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 12, // secoue
GOAL_SOUND, SOUND_USINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 5,
GOAL_TAKEOBJECT, -1,-1, -1,-1, // ne porte plus rien
GOAL_VEHICULE, 2, // en jeep
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,120, // ouvre la porte
GOAL_CACHE, false, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_IFTERM, +1,0,
GOAL_GOBLUPI, +1,0, true,
GOAL_TERM,
0
};
// Blupi fabrique une armure.
static short table_goal_fabarmure[] =
{
WM_ACTION_FABARMURE,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 6,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,119, // ferme la porte
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,119, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 12, // secoue
GOAL_CACHE, true, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_O,
GOAL_SOUND, SOUND_USINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,119, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 12, // secoue
GOAL_SOUND, SOUND_USINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 5,
GOAL_TAKEOBJECT, -1,-1, -1,-1, // ne porte plus rien
GOAL_VEHICULE, 3, // en armure
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,120, // ouvre la porte
GOAL_CACHE, false, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_IFTERM, +1,0,
GOAL_GOBLUPI, +1,0, true,
GOAL_TERM,
0
};
// Blupi fabrique une mine.
static short table_goal_fabmine[] =
{
WM_ACTION_FABMINE,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 6,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,119, // ferme la porte
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,119, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 12, // secoue
GOAL_CACHE, true, false,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_O,
GOAL_SOUND, SOUND_USINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, -1,-1, CHOBJECT,119, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, -1,-1, 12, // secoue
GOAL_SOUND, SOUND_USINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 4,
GOAL_TAKEOBJECT, -1,-1, CHOBJECT,125, // porte une mine
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,120, // ouvre la porte
GOAL_CACHE, false, false,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_GOBLUPI, +1,0, true,
GOAL_IFTERM, 0,-1,
GOAL_GOBLUPI, 0,-1, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// Blupi fabrique un disciple.
static short table_goal_fabdisc[] =
{
WM_ACTION_FABDISC,
GOAL_ENERGY, MAXENERGY/4,
GOAL_GOHILI2, +1,+1, false,
GOAL_ENERGY, MAXENERGY/4,
GOAL_ACTION, ACTION_STOP, DIRECT_N,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 4,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_WORK, -1,-1,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,119, // ferme la porte
GOAL_CACHE, true, false,
GOAL_GOBLUPI, -1,0, true,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,119, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 12, // secoue
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_O,
GOAL_SOUND, SOUND_USINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_GROUP, 2,
GOAL_BUILDOBJECT, 0,-1, CHOBJECT,119, -1,-1, DIMOBJY,1,-1*100,
GOAL_ADDMOVES, 0,-1, 12, // secoue
GOAL_SOUND, SOUND_USINE,
GOAL_ACTION, ACTION_LABO, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 2,
GOAL_FINISHMOVE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,120, // ouvre la porte
GOAL_NEWPERSO, +1,0, 8, // disciple (qui sortira)
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_PUTOBJECT, 0,-1, CHOBJECT,119, // ferme la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_ACTION, ACTION_R_DELAY, DIRECT_E,
GOAL_SOUND, SOUND_PORTE,
GOAL_GROUP, 3,
GOAL_TAKEOBJECT, -1,-1, -1,-1, // ne porte plus rien
GOAL_CACHE, false, false,
GOAL_PUTOBJECT, -1,-1, CHOBJECT,120, // ouvre la porte
GOAL_GOBLUPI, +1,0, true,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_TERM,
0
};
// L'<27>lectro va sur un blupi puis lance ses rayons.
static short table_goal_e_rayon[] =
{
WM_ACTION_E_RAYON,
GOAL_GOHILI2, 0,0, false,
GOAL_SOUND, SOUND_E_TOURNE,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_SKIPSKILL, 1, 7,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_DEBUT, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_SOUND, SOUND_E_RAYON,
GOAL_ELECTRO, 0, 0, 8,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ELECTRO, -2, 0, 8,
GOAL_ELECTRO, 0,-2, 8,
GOAL_ELECTRO, 0,+2, 8,
GOAL_ELECTRO, +2, 0, 8,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ELECTRO, -2,-2, 8,
GOAL_ELECTRO, +2,-2, 8,
GOAL_ELECTRO, -2,+2, 8,
GOAL_ELECTRO, +2,+2, 8,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ELECTRO, -4,-2, 8,
GOAL_ELECTRO, -4, 0, 8,
GOAL_ELECTRO, -4,+2, 8,
GOAL_ELECTRO, -2,-4, 8,
GOAL_ELECTRO, -2,+4, 8,
GOAL_ELECTRO, 0,-4, 8,
GOAL_ELECTRO, 0,+4, 8,
GOAL_ELECTRO, +2,-4, 8,
GOAL_ELECTRO, +2,+4, 8,
GOAL_ELECTRO, +4,-2, 8,
GOAL_ELECTRO, +4, 0, 8,
GOAL_ELECTRO, +4,+2, 8,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ELECTRO, -6,-2, 8,
GOAL_ELECTRO, -6, 0, 8,
GOAL_ELECTRO, -6,+2, 8,
GOAL_ELECTRO, -4,-4, 8,
GOAL_ELECTRO, -4,+4, 8,
GOAL_ELECTRO, -2,-6, 8,
GOAL_ELECTRO, -2,+6, 8,
GOAL_ELECTRO, 0,-6, 8,
GOAL_ELECTRO, 0,+6, 8,
GOAL_ELECTRO, +2,-6, 8,
GOAL_ELECTRO, +2,+6, 8,
GOAL_ELECTRO, +4,-4, 8,
GOAL_ELECTRO, +4,+4, 8,
GOAL_ELECTRO, +6,-2, 8,
GOAL_ELECTRO, +6, 0, 8,
GOAL_ELECTRO, +6,+2, 8,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_ACTION, ACTION_E_RAYON, DIRECT_E,
GOAL_FINISHMOVE,
GOAL_TERM,
0
};
// Blupi s'<27>lectrocute.
static short table_goal_electro[] =
{
WM_ACTION_ELECTRO,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_ACTION, ACTION_STOP, DIRECT_SE,
GOAL_MALADE, false,
GOAL_ACTION, ACTION_ELECTRO, DIRECT_SE,
GOAL_TAKEOBJECT, -1,-1, -1,-1, // ne porte plus rien
GOAL_SOUND, SOUND_TCHAO,
GOAL_ACTION, ACTION_GRILLE1, DIRECT_SE,
GOAL_ACTION, ACTION_GRILLE2, DIRECT_SE,
GOAL_ACTION, ACTION_GRILLE3, DIRECT_SE,
GOAL_DELETE, // blupi meurt brutalement
GOAL_TERM,
0
};
static short table_goal_electrom[] =
{
WM_ACTION_ELECTROm,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_ACTION, ACTION_STOP, DIRECT_SE,
GOAL_GROUP, 3,
GOAL_MALADE, false,
GOAL_TAKEOBJECT, -1,-1, -1,-1, // ne porte plus rien
GOAL_SOUND, SOUND_TCHAO,
GOAL_ACTION, ACTION_GRILLE1, DIRECT_SE,
GOAL_ACTION, ACTION_GRILLE2, DIRECT_SE,
GOAL_ACTION, ACTION_GRILLE3, DIRECT_SE,
GOAL_DELETE, // blupi meurt brutalement
GOAL_TERM,
0
};
// Blupi grille.
static short table_goal_grille[] =
{
WM_ACTION_GRILLE,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_ACTION, ACTION_STOP, DIRECT_SE,
GOAL_GROUP, 3,
GOAL_MALADE, false,
GOAL_TAKEOBJECT, -1,-1, -1,-1, // ne porte plus rien
GOAL_SOUND, SOUND_BRULE,
GOAL_ACTION, ACTION_GRILLE1, DIRECT_SE,
GOAL_ACTION, ACTION_GRILLE2, DIRECT_SE,
GOAL_ACTION, ACTION_GRILLE3, DIRECT_SE,
GOAL_DELETE, // blupi meurt brutalement
GOAL_TERM,
0
};
// L'araign<67>e meurt.
static short table_goal_a_mort[] =
{
WM_ACTION_A_MORT,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_ACTION, ACTION_STOP, DIRECT_E,
GOAL_SOUND, SOUND_A_POISON,
GOAL_ACTION, ACTION_A_POISON, DIRECT_E,
GOAL_ACTION, ACTION_A_MORT1, DIRECT_E,
GOAL_ACTION, ACTION_A_MORT2, DIRECT_E,
GOAL_ACTION, ACTION_A_MORT3, DIRECT_E,
GOAL_DELETE, // l'araign<67>e meurt brutalement
GOAL_TERM,
0
};
// Blupi se pr<70>pare <20> r<>p<EFBFBD>ter une liste.
static short table_goal_repeat[] =
{
WM_ACTION_REPEAT,
GOAL_TERM,
0
};
// Blupi se t<>l<EFBFBD>porte d'un endroit <20> un autre.
static short table_goal_teleporte00[] =
{
WM_ACTION_TELEPORTE00,
GOAL_GOHILI2, 0,0, false,
GOAL_GROUP, 4,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_BUILDFLOOR, 0,0, CHFLOOR,-1, -1,-1, 100,1,1*100,
GOAL_ADDICONS, 0,0, 11,
GOAL_SOUND, SOUND_TELEPORTE,
GOAL_ACTION, ACTION_TELEPORTE1, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE2, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE3, DIRECT_E,
GOAL_TELEPORTE, 0,0,
GOAL_GROUP, 3,
GOAL_BUILDFLOOR, 0,0, CHFLOOR,-1, -1,-1, 60,1,1*60,
GOAL_ADDICONS, 0,0, 11,
GOAL_SOUND, SOUND_TELEPORTE,
GOAL_ACTION, ACTION_TELEPORTE2, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE1, DIRECT_E,
GOAL_TERM,
0
};
static short table_goal_teleporte10[] =
{
WM_ACTION_TELEPORTE10,
GOAL_GOHILI2, +1,0, false,
GOAL_GROUP, 4,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_BUILDFLOOR, -1,0, CHFLOOR,-1, -1,-1, 100,1,1*100,
GOAL_ADDICONS, -1,0, 11,
GOAL_SOUND, SOUND_TELEPORTE,
GOAL_ACTION, ACTION_TELEPORTE1, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE2, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE3, DIRECT_E,
GOAL_TELEPORTE, +1,0,
GOAL_GROUP, 3,
GOAL_BUILDFLOOR, -1,0, CHFLOOR,-1, -1,-1, 60,1,1*60,
GOAL_ADDICONS, -1,0, 11,
GOAL_SOUND, SOUND_TELEPORTE,
GOAL_ACTION, ACTION_TELEPORTE2, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE1, DIRECT_E,
GOAL_TERM,
0
};
static short table_goal_teleporte01[] =
{
WM_ACTION_TELEPORTE01,
GOAL_GOHILI2, 0,+1, false,
GOAL_GROUP, 4,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_BUILDFLOOR, 0,-1, CHFLOOR,-1, -1,-1, 100,1,1*100,
GOAL_ADDICONS, 0,-1, 11,
GOAL_SOUND, SOUND_TELEPORTE,
GOAL_ACTION, ACTION_TELEPORTE1, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE2, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE3, DIRECT_E,
GOAL_TELEPORTE, 0,+1,
GOAL_GROUP, 3,
GOAL_BUILDFLOOR, 0,-1, CHFLOOR,-1, -1,-1, 60,1,1*60,
GOAL_ADDICONS, 0,-1, 11,
GOAL_SOUND, SOUND_TELEPORTE,
GOAL_ACTION, ACTION_TELEPORTE2, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE1, DIRECT_E,
GOAL_TERM,
0
};
static short table_goal_teleporte11[] =
{
WM_ACTION_TELEPORTE11,
GOAL_GOHILI2, +1,+1, false,
GOAL_GROUP, 4,
GOAL_INTERRUPT, 0, // prioritaire
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,-1, -1,-1, 100,1,1*100,
GOAL_ADDICONS, -1,-1, 11,
GOAL_SOUND, SOUND_TELEPORTE,
GOAL_ACTION, ACTION_TELEPORTE1, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE2, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE3, DIRECT_E,
GOAL_TELEPORTE, +1,+1,
GOAL_GROUP, 3,
GOAL_BUILDFLOOR, -1,-1, CHFLOOR,-1, -1,-1, 60,1,1*60,
GOAL_ADDICONS, -1,-1, 11,
GOAL_SOUND, SOUND_TELEPORTE,
GOAL_ACTION, ACTION_TELEPORTE2, DIRECT_E,
GOAL_ACTION, ACTION_TELEPORTE1, DIRECT_E,
GOAL_TERM,
0
};
static short* table_pGoal[] =
{
table_goal_go,
table_goal_maison,
table_goal_abat1,
table_goal_abat2,
table_goal_abat3,
table_goal_abat4,
table_goal_abat5,
table_goal_abat6,
table_goal_roc1,
table_goal_roc2,
table_goal_roc3,
table_goal_roc4,
table_goal_roc5,
table_goal_roc6,
table_goal_roc7,
table_goal_build1,
table_goal_build2,
table_goal_build3,
table_goal_build4,
table_goal_build5,
table_goal_build6,
table_goal_mur,
table_goal_tour,
table_goal_palis,
table_goal_carry,
table_goal_carry2,
table_goal_depose,
table_goal_depose2,
table_goal_newblupi,
table_goal_cultive,
table_goal_cultive2,
table_goal_mange,
table_goal_mange2,
table_goal_boit,
table_goal_boit2,
table_goal_fleur1,
table_goal_fleur2,
table_goal_fleur3,
table_goal_labo,
table_goal_dynamite,
table_goal_dynamite2,
table_goal_t_dynamite,
table_goal_mine,
table_goal_mine2,
table_goal_ponte,
table_goal_pontel,
table_goal_ponto,
table_goal_pontol,
table_goal_ponts,
table_goal_pontsl,
table_goal_pontn,
table_goal_pontnl,
table_goal_bateaue,
table_goal_bateaus,
table_goal_bateauo,
table_goal_bateaun,
table_goal_bateaude,
table_goal_bateauds,
table_goal_bateaudo,
table_goal_bateaudn,
table_goal_bateauae,
table_goal_bateauas,
table_goal_bateauao,
table_goal_bateauan,
table_goal_r_build1,
table_goal_r_build2,
table_goal_r_build3,
table_goal_r_build4,
table_goal_r_build5,
table_goal_r_build6,
table_goal_r_make1,
table_goal_r_make2,
table_goal_r_make3,
table_goal_r_make4,
table_goal_r_make5,
table_goal_r_make6,
table_goal_mjeep,
table_goal_djeep,
table_goal_marmure,
table_goal_darmure,
table_goal_drapeau,
table_goal_drapeau2,
table_goal_drapeau3,
table_goal_extrait,
table_goal_fabjeep,
table_goal_fabarmure,
table_goal_fabmine,
table_goal_fabdisc,
table_goal_e_rayon,
table_goal_electro,
table_goal_electrom,
table_goal_grille,
table_goal_a_mort,
table_goal_repeat,
table_goal_teleporte00,
table_goal_teleporte10,
table_goal_teleporte01,
table_goal_teleporte11,
NULL
};
// Retourne le pointeur <20> la table table_goal_*.
short* GetTableGoal(int action)
{
short** ppTable = table_pGoal;
while ( *ppTable != NULL )
{
if ( **ppTable == action )
{
return *ppTable+1; // apr<70>s WM_ACTION_*
}
ppTable ++;
}
return NULL;
}