summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrzysztof H <krzys_h@interia.pl>2012-03-20 13:17:00 +0100
committerKrzysztof H <krzys_h@interia.pl>2012-03-20 13:17:00 +0100
commit93537652b31915d647724ec72085f0f36e397e3e (patch)
tree43127673e5c15ee31c531bd412355742f49f21de
parent30927a1d84288f24980aa2436962d9e5275021bd (diff)
downloadcolobot-93537652b31915d647724ec72085f0f36e397e3e.tar.gz
colobot-93537652b31915d647724ec72085f0f36e397e3e.tar.bz2
colobot-93537652b31915d647724ec72085f0f36e397e3e.zip
Deleting unused files
-rw-r--r--src/Copie de taskgoto.cpp2136
-rw-r--r--src/restext-old.cpp2541
-rw-r--r--src/winmain.cpp38
3 files changed, 0 insertions, 4715 deletions
diff --git a/src/Copie de taskgoto.cpp b/src/Copie de taskgoto.cpp
deleted file mode 100644
index ddb9a40..0000000
--- a/src/Copie de taskgoto.cpp
+++ /dev/null
@@ -1,2136 +0,0 @@
-// taskgoto.cpp
-
-#define STRICT
-#define D3D_OVERLOADS
-
-#include <windows.h>
-#include <stdio.h>
-#include <d3d.h>
-
-#include "struct.h"
-#include "D3DEngine.h"
-#include "math3d.h"
-#include "event.h"
-#include "misc.h"
-#include "iman.h"
-#include "terrain.h"
-#include "water.h"
-#include "object.h"
-#include "physics.h"
-#include "brain.h"
-#include "task.h"
-#include "taskgoto.h"
-
-
-
-#define BM_DIM_STEP 5.0f
-
-
-
-
-// Constructeur de l'objet.
-
-CTaskGoto::CTaskGoto(CInstanceManager* iMan, CObject* object)
- : CTask(iMan, object)
-{
- CTask::CTask(iMan, object);
-
- m_bmArray = 0;
-}
-
-// Destructeur de l'objet.
-
-CTaskGoto::~CTaskGoto()
-{
- BitmapClose();
-}
-
-
-// Gestion d'un événement.
-
-BOOL CTaskGoto::EventProcess(const Event &event)
-{
- D3DVECTOR pos, goal;
- FPOINT rot, repulse;
- float a, g, dist, linSpeed, cirSpeed, h, w, factor, dir, floor;
- Error ret;
-
- if ( m_engine->RetPause() ) return TRUE;
- if ( event.event != EVENT_FRAME ) return TRUE;
-
- // Objet momentanément immobile (fourmi sur le dos) ?
- if ( m_object->RetFixed() )
- {
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- return TRUE;
- }
-
- if ( m_error != ERR_OK ) return FALSE;
-
- if ( m_bWorm )
- {
- WormFrame(event.rTime);
- }
-
- if ( m_phase == TGP_BEAMLEAK ) // fuite ?
- {
- m_leakTime += event.rTime;
-
- pos = m_object->RetPosition(0);
-
- rot.x = m_leakPos.x-pos.x;
- rot.y = m_leakPos.z-pos.z;
- dist = Length(rot.x, rot.y);
- rot.x /= dist;
- rot.y /= dist;
-
- a = m_object->RetAngleY(0);
- g = RotateAngle(rot.x, -rot.y); // CW !
- a = Direction(a, g)*1.0f;
- cirSpeed = a;
- if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
- if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
-
- a = NormAngle(a);
- if ( a > PI*0.5f && a < PI*1.5f )
- {
- linSpeed = 1.0f; // obstacle derričre -> avance
- cirSpeed = -cirSpeed;
- }
- else
- {
- linSpeed = -1.0f; // obstacle devant -> recule
- }
-
- m_physics->SetMotorSpeedZ(cirSpeed); // tourne ŕ gauche/droite
- m_physics->SetMotorSpeedX(linSpeed); // avance
- return TRUE;
- }
-
- if ( m_phase == TGP_BEAMSEARCH ) // recherche chemin ?
- {
-//? OutputDebugString("CTaskGoto::EventProcess TGP_BEAMSEARCH\n");
-
- pos = m_object->RetPosition(0);
-
- if ( m_bmFretObject == 0 )
- {
- goal = m_goal;
- dist = 0.0f;
- }
- else
- {
- goal = m_goalObject;
- dist = TAKE_DIST;
- }
-
- ret = BeamSearch(pos, goal, dist);
- if ( ret == ERR_OK )
- {
-#if 1
- D3DVECTOR min, max;
- min = pos;
- max = m_goal;
- if ( min.x > max.x ) Swap(min.x, max.x);
- if ( min.z > max.z ) Swap(min.z, max.z);
- min.x -= 50.0f;
- min.z -= 50.0f;
- max.x += 50.0f;
- max.z += 50.0f;
- BitmapDebug(min, max, m_object->RetPosition(0), m_goal);
-#endif
- m_phase = TGP_BEAMUP;
- m_bmIndex = 0;
- m_bmWatchDogPos = m_object->RetPosition(0);
- m_bmWatchDogTime = 0.0f;
- }
- if ( ret == ERR_GOTO_IMPOSSIBLE || ret == ERR_GOTO_ITER )
- {
-#if 1
- D3DVECTOR min, max;
- min = pos;
- max = m_goal;
- if ( min.x > max.x ) Swap(min.x, max.x);
- if ( min.z > max.z ) Swap(min.z, max.z);
- min.x -= 50.0f;
- min.z -= 50.0f;
- max.x += 50.0f;
- max.z += 50.0f;
- BitmapDebug(min, max, m_object->RetPosition(0), m_goal);
-#endif
- m_error = ret;
- return FALSE;
- }
- return TRUE;
- }
-
- if ( m_phase == TGP_BEAMUP ) // décolle ?
- {
- m_physics->SetMotorSpeedY(1.0f); // monte
- return TRUE;
- }
-
- if ( m_phase == TGP_BEAMGOTO ) // goto dot list ?
- {
- if ( m_physics->RetCollision() ) // collision ?
- {
- m_physics->SetCollision(FALSE); // y'a plus
- }
-
- pos = m_object->RetPosition(0);
-
- if ( m_physics->RetType() == TYPE_FLYING && m_altitude > 0.0f )
- {
- goal = m_bmPoints[m_bmIndex];
- dist = Length2d(pos, goal);
- if ( dist != 0.0f ) // anticipe ?
- {
- linSpeed = m_physics->RetLinMotionX(MO_REASPEED);
- linSpeed /= m_physics->RetLinMotionX(MO_ADVSPEED);
- goal.x = pos.x + (goal.x-pos.x)*linSpeed*20.0f/dist;
- goal.z = pos.z + (goal.z-pos.z)*linSpeed*20.0f/dist;
- }
- floor = m_terrain->RetFloorLevel(goal, TRUE);
- w = m_water->RetLevel();
- if ( floor < w ) floor = w; // jamais en-dessous de l'eau
- h = pos.y-floor; // h <- hauteur jusqu'au sol
-
- linSpeed = 0.0f;
- if ( h < m_altitude-1.0f )
- {
- linSpeed = 0.2f+((m_altitude-1.0f)-h)*0.1f; // monte
- if ( linSpeed > 1.0f ) linSpeed = 1.0f;
- }
- if ( h > m_altitude+1.0f )
- {
- linSpeed = -0.2f; // descend
- }
- m_physics->SetMotorSpeedY(linSpeed);
- }
-
- dist = Length2d(pos, m_bmWatchDogPos);
- if ( dist < 1.0f )
- {
- m_bmWatchDogTime += event.rTime;
- }
- else
- {
- m_bmWatchDogTime = 0.0f;
- m_bmWatchDogPos = pos;
- }
-
- if ( m_bmWatchDogTime >= 1.0f ) // immobile depuis longtemps ?
- {
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- BeamStart();
- return TRUE;
- }
-
- rot.x = m_bmPoints[m_bmIndex].x-pos.x;
- rot.y = m_bmPoints[m_bmIndex].z-pos.z;
- dist = Length(rot.x, rot.y);
- rot.x /= dist;
- rot.y /= dist;
-
- a = m_object->RetAngleY(0);
- g = RotateAngle(rot.x, -rot.y); // CW !
- cirSpeed = Direction(a, g)*1.0f;
- if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
- if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
-
- if ( m_bmIndex == m_bmTotal ) // dernier point ?
- {
- dist = Length2d(m_bmPoints[m_bmIndex], pos);
- linSpeed = dist/(m_physics->RetLinStopLength()*1.5f);
- if ( linSpeed > 1.0f ) linSpeed = 1.0f;
- }
- else
- {
- linSpeed = 1.0f; // fonce sans s'arręter
- }
-
- linSpeed *= 1.0f-(1.0f-0.3f)*Abs(cirSpeed);
-
- if ( dist < 20.0f && Abs(cirSpeed) >= 0.5f )
- {
- linSpeed = 0.0f; // tourne d'abord, puis avance
- }
-
- m_physics->SetMotorSpeedZ(cirSpeed); // tourne ŕ gauche/droite
- m_physics->SetMotorSpeedX(linSpeed); // avance
- return TRUE;
- }
-
- if ( m_phase == TGP_BEAMDOWN ) // atterri ?
- {
- m_physics->SetMotorSpeedY(-0.5f); // tombe
- return TRUE;
- }
-
- if ( m_phase == TGP_LAND ) // atterri ?
- {
- m_physics->SetMotorSpeedY(-0.5f); // tombe
- return TRUE;
- }
-
- if ( m_goalMode == TGG_EXPRESS )
- {
- if ( m_crashMode == TGC_HALT )
- {
- if ( m_physics->RetCollision() ) // collision ?
- {
- m_physics->SetCollision(FALSE); // y'a plus
- m_error = ERR_STOP;
- return TRUE;
- }
- }
-
- pos = m_object->RetPosition(0);
-
- if ( m_altitude > 0.0f )
- {
- h = m_terrain->RetFloorHeight(pos, TRUE);
- linSpeed = 0.0f;
- if ( h < m_altitude )
- {
- linSpeed = 0.1f; // monte
- }
- if ( h > m_altitude )
- {
- linSpeed = -0.2f; // descend
- }
- m_physics->SetMotorSpeedY(linSpeed);
- }
-
- rot.x = m_goal.x-pos.x;
- rot.y = m_goal.z-pos.z;
- a = m_object->RetAngleY(0);
- g = RotateAngle(rot.x, -rot.y); // CW !
- cirSpeed = Direction(a, g)*1.0f;
- if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
- if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
-
- m_physics->SetMotorSpeedZ(cirSpeed); // tourne ŕ gauche/droite
- m_physics->SetMotorSpeedX(1.0f); // avance
- return TRUE;
- }
-
- if ( m_phase != TGP_TURN &&
- m_physics->RetType() == TYPE_FLYING &&
- m_altitude > 0.0f )
- {
- pos = m_object->RetPosition(0);
- dist = Length2d(m_goal, pos);
- factor = (dist-20.0f)/20.0f;
- if ( factor < 0.0f ) factor = 0.0f;
- if ( factor > 1.0f ) factor = 1.0f;
-
- h = m_terrain->RetFloorHeight(m_object->RetPosition(0), TRUE);
- linSpeed = 0.0f;
- if ( h < (m_altitude-0.5f)*factor && factor == 1.0f )
- {
- linSpeed = 0.1f; // monte
- }
- if ( h > m_altitude*factor )
- {
- linSpeed = -0.2f; // descend
- }
- ComputeFlyingRepulse(dir);
- linSpeed += dir*0.2f;
-
- m_physics->SetMotorSpeedY(linSpeed);
- }
-
- if ( m_phase == TGP_ADVANCE ) // va vers l'objectif ?
- {
- if ( m_physics->RetCollision() ) // collision ?
- {
- m_physics->SetCollision(FALSE); // y'a plus
- m_time = 0.0f;
- m_phase = TGP_CRWAIT;
- return TRUE;
- }
-
-#if 0
- pos = m_object->RetPosition(0);
- a = m_object->RetAngleY(0);
- g = RotateAngle(m_goal.x-pos.x, pos.z-m_goal.z); // CW !
- cirSpeed = Direction(a, g)*1.0f;
- if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
- if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
-
- dist = Length2d(m_goal, pos);
- linSpeed = dist/(m_physics->RetLinStopLength()*1.5f);
- if ( linSpeed > 1.0f ) linSpeed = 1.0f;
-
- if ( dist < 20.0f && Abs(cirSpeed) >= 0.5f )
- {
- linSpeed = 0.0f; // tourne d'abord, puis avance
- }
-#else
- pos = m_object->RetPosition(0);
-
- rot.x = m_goal.x-pos.x;
- rot.y = m_goal.z-pos.z;
- dist = Length(rot.x, rot.y);
- rot.x /= dist;
- rot.y /= dist;
-
- ComputeRepulse(repulse);
- rot.x += repulse.x*2.0f;
- rot.y += repulse.y*2.0f;
-
- a = m_object->RetAngleY(0);
- g = RotateAngle(rot.x, -rot.y); // CW !
- cirSpeed = Direction(a, g)*1.0f;
-//? if ( m_physics->RetType() == TYPE_FLYING &&
-//? m_physics->RetLand() ) // volant au sol ?
-//? {
-//? cirSpeed *= 4.0f; // plus de pčche
-//? }
- if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
- if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
-
- dist = Length2d(m_goal, pos);
- linSpeed = dist/(m_physics->RetLinStopLength()*1.5f);
-//? if ( m_physics->RetType() == TYPE_FLYING &&
-//? m_physics->RetLand() ) // volant au sol ?
-//? {
-//? linSpeed *= 8.0f; // plus de pčche
-//? }
- if ( linSpeed > 1.0f ) linSpeed = 1.0f;
-
- linSpeed *= 1.0f-(1.0f-0.3f)*Abs(cirSpeed);
-
- if ( dist < 20.0f && Abs(cirSpeed) >= 0.5f )
- {
- linSpeed = 0.0f; // tourne d'abord, puis avance
- }
-#endif
-
- m_physics->SetMotorSpeedZ(cirSpeed); // tourne ŕ gauche/droite
- m_physics->SetMotorSpeedX(linSpeed); // avance
- }
-
- if ( m_phase == TGP_TURN || // tourne vers l'objet ?
- m_phase == TGP_CRTURN || // tourne aprčs collision ?
- m_phase == TGP_CLTURN ) // tourne aprčs collision ?
- {
- a = m_object->RetAngleY(0);
- g = m_angle;
- cirSpeed = Direction(a, g)*1.0f;
- if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
- if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
-
- m_physics->SetMotorSpeedZ(cirSpeed); // tourne ŕ gauche/droite
- }
-
- if ( m_phase == TGP_CRWAIT || // attend aprčs collision ?
- m_phase == TGP_CLWAIT ) // attend aprčs collision ?
- {
- m_time += event.rTime;
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- }
-
- if ( m_phase == TGP_CRADVANCE ) // avance aprčs collision ?
- {
- if ( m_physics->RetCollision() ) // collision ?
- {
- m_physics->SetCollision(FALSE); // y'a plus
- m_time = 0.0f;
- m_phase = TGP_CLWAIT;
- return TRUE;
- }
- m_physics->SetMotorSpeedX(0.5f); // avance mollo
- }
-
- if ( m_phase == TGP_CLADVANCE ) // avance aprčs collision ?
- {
- if ( m_physics->RetCollision() ) // collision ?
- {
- m_physics->SetCollision(FALSE); // y'a plus
- m_time = 0.0f;
- m_phase = TGP_CRWAIT;
- return TRUE;
- }
- m_physics->SetMotorSpeedX(0.5f); // avance mollo
- }
-
- if ( m_phase == TGP_MOVE ) // avance finale ?
- {
- m_bmTimeLimit -= event.rTime;
- m_physics->SetMotorSpeedX(1.0f);
- }
-
- return TRUE;
-}
-
-
-// Cherche une cible pour le ver.
-
-CObject* CTaskGoto::WormSearch(D3DVECTOR &impact)
-{
- CObject* pObj;
- CObject* pBest = 0;
- D3DVECTOR iPos, oPos;
- ObjectType oType;
- float distance, min, radius;
- int i;
-
- iPos = m_object->RetPosition(0);
- min = 1000000.0f;
-
- for ( i=0 ; i<1000000 ; i++ )
- {
- pObj = (CObject*)m_iMan->SearchInstance(CLASS_OBJECT, i);
- if ( pObj == 0 ) break;
-
- oType = pObj->RetType();
- if ( oType != OBJECT_MOBILEfa &&
- oType != OBJECT_MOBILEta &&
- oType != OBJECT_MOBILEwa &&
- oType != OBJECT_MOBILEia &&
- oType != OBJECT_MOBILEfc &&
- oType != OBJECT_MOBILEtc &&
- oType != OBJECT_MOBILEwc &&
- oType != OBJECT_MOBILEic &&
- oType != OBJECT_MOBILEfi &&
- oType != OBJECT_MOBILEti &&
- oType != OBJECT_MOBILEwi &&
- oType != OBJECT_MOBILEii &&
- oType != OBJECT_MOBILEfs &&
- oType != OBJECT_MOBILEts &&
- oType != OBJECT_MOBILEws &&
- oType != OBJECT_MOBILEis &&
- oType != OBJECT_MOBILErt &&
- oType != OBJECT_MOBILErc &&
- oType != OBJECT_MOBILErr &&
- oType != OBJECT_MOBILErs &&
- oType != OBJECT_MOBILEsa &&
- oType != OBJECT_MOBILEtg &&
- oType != OBJECT_MOBILEft &&
- oType != OBJECT_MOBILEtt &&
- oType != OBJECT_MOBILEwt &&
- oType != OBJECT_MOBILEit &&
- oType != OBJECT_DERRICK &&
- oType != OBJECT_STATION &&
- oType != OBJECT_FACTORY &&
- oType != OBJECT_REPAIR &&
- oType != OBJECT_CONVERT &&
- oType != OBJECT_TOWER &&
- oType != OBJECT_RESEARCH &&
- oType != OBJECT_RADAR &&
- oType != OBJECT_INFO &&
- oType != OBJECT_ENERGY &&
- oType != OBJECT_LABO &&
- oType != OBJECT_NUCLEAR &&
- oType != OBJECT_PARA &&
- oType != OBJECT_SAFE &&
- oType != OBJECT_HUSTON ) continue;
-
- if ( pObj->RetVirusMode() ) continue; // objet infecté ?
-
- if ( !pObj->GetCrashSphere(0, oPos, radius) ) continue;
- distance = Length2d(oPos, iPos);
- if ( distance < min )
- {
- min = distance;
- pBest = pObj;
- }
- }
- if ( pBest == 0 ) return 0;
-
- impact = pBest->RetPosition(0);
- return pBest;
-}
-
-// Contamine les objets proches du ver.
-
-void CTaskGoto::WormFrame(float rTime)
-{
- CObject* pObj;
- D3DVECTOR impact, pos;
- float dist;
-
- m_wormLastTime += rTime;
-
- if ( m_wormLastTime >= 0.5f )
- {
- m_wormLastTime = 0.0f;
-
- pObj = WormSearch(impact);
- if ( pObj != 0 )
- {
- pos = m_object->RetPosition(0);
- dist = Length(pos, impact);
- if ( dist <= 15.0f )
- {
- pObj->SetVirusMode(TRUE); // paf, infecté !
- }
- }
- }
-}
-
-
-
-// Assigne le but ŕ atteindre.
-// "dist" est la distance de laquelle il faut s'éloigner pour
-// prendre ou déposer un objet.
-
-Error CTaskGoto::Start(D3DVECTOR goal, float altitude,
- TaskGotoGoal goalMode, TaskGotoCrash crashMode)
-{
- D3DVECTOR pos;
- CObject* target;
- ObjectType type;
- float dist;
- int x, y;
-
- type = m_object->RetType();
-
- if ( goalMode == TGG_DEFAULT )
- {
- goalMode = TGG_STOP;
- if ( type == OBJECT_MOTHER ||
- type == OBJECT_ANT ||
- type == OBJECT_SPIDER ||
- type == OBJECT_WORM )
- {
- goalMode = TGG_EXPRESS;
- }
- }
-
- if ( crashMode == TGC_DEFAULT )
- {
-//? crashMode = TGC_RIGHTLEFT;
- crashMode = TGC_BEAM;
- if ( type == OBJECT_ANT ||
- type == OBJECT_SPIDER ||
- type == OBJECT_WORM ||
- type == OBJECT_BEE )
- {
- crashMode = TGC_HALT;
- }
- }
-
- m_altitude = altitude;
- m_goalMode = goalMode;
- m_crashMode = crashMode;
- m_goalObject = goal;
- m_goal = goal;
-
- m_bTake = FALSE;
- m_phase = TGP_ADVANCE;
- m_error = ERR_OK;
- m_try = 0;
- m_bmFretObject = 0;
- m_bmFinalMove = 0.0f;
-
- pos = m_object->RetPosition(0);
- dist = Length2d(pos, m_goal);
- if ( dist < 10.0f && m_crashMode == TGC_BEAM )
- {
- m_crashMode = TGC_RIGHTLEFT;
- }
-
- m_bWorm = FALSE;
- if ( type == OBJECT_WORM )
- {
- m_bWorm = TRUE;
- m_wormLastTime = 0.0f;
- }
-
- m_bApprox = FALSE;
- if ( type == OBJECT_HUMAN ||
- type == OBJECT_TECH ||
- type == OBJECT_MOTHER ||
- type == OBJECT_ANT ||
- type == OBJECT_SPIDER ||
- type == OBJECT_BEE ||
- type == OBJECT_WORM ||
- type == OBJECT_MOBILErt ||
- type == OBJECT_MOBILErc ||
- type == OBJECT_MOBILErr ||
- type == OBJECT_MOBILErs )
- {
- m_bApprox = TRUE;
- }
-
- if ( !m_bApprox && m_crashMode != TGC_BEAM )
- {
- target = SearchTarget(goal, 1.0f);
- if ( target != 0 )
- {
- m_goal = target->RetPosition(0);
- dist = 0.0f;
- if ( !AdjustBuilding(m_goal, 1.0f, dist) )
- {
- dist = 0.0f;
- AdjustTarget(target, m_goal, dist);
- }
- m_bTake = TRUE; // objet ŕ prendre ŕ l'arrivée (rotation finale)
- }
- }
-
- m_lastDistance = 1000.0f;
- m_physics->SetCollision(FALSE);
-
- if ( m_crashMode == TGC_BEAM )
- {
- target = SearchTarget(goal, 1.0f);
- if ( target != 0 )
- {
- m_goal = target->RetPosition(0);
- dist = 4.0f;
- if ( AdjustBuilding(m_goal, 1.0f, dist) )
- {
- m_bmFinalMove = dist;
- }
- else
- {
- dist = 4.0f;
- if ( AdjustTarget(target, m_goal, dist) )
- {
- m_bmFretObject = target; // fret posé au sol
- }
- else
- {
- m_bmFinalMove = dist;
- }
- }
- m_bTake = TRUE; // objet ŕ prendre ŕ l'arrivée (rotation finale)
- }
-
- if ( m_physics->RetType() == TYPE_FLYING && m_altitude == 0.0f )
- {
- pos = m_object->RetPosition(0);
- dist = Length2d(pos, m_goal);
- if ( dist > 40.0f ) // plus de 10 mčtres ?
- {
- m_altitude = 20.0f; // altitude par défaut
- }
- }
-
- BeamStart();
-
- if ( m_bmFretObject == 0 )
- {
- x = (int)((m_goal.x+1600.0f)/BM_DIM_STEP);
- y = (int)((m_goal.z+1600.0f)/BM_DIM_STEP);
- if ( BitmapTestDot(0, x, y) ) // arrivée occupée ?
- {
- m_error = ERR_GOTO_IMPOSSIBLE;
- return m_error;
- }
- }
- }
-
- return ERR_OK;
-}
-
-// Indique si l'action est terminée.
-
-Error CTaskGoto::IsEnded()
-{
- D3DVECTOR pos;
- float limit, angle, dist, h;
-
- if ( m_engine->RetPause() ) return ERR_CONTINUE;
- if ( m_error != ERR_OK ) return m_error;
-
- pos = m_object->RetPosition(0);
-
- if ( m_phase == TGP_BEAMLEAK ) // fuite ?
- {
- if ( m_leakTime >= m_leakDelay )
- {
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- BeamInit();
- m_phase = TGP_BEAMSEARCH; // faudra chercher le chemin
- }
- return ERR_CONTINUE;
- }
-
- if ( m_phase == TGP_BEAMSEARCH ) // recherche du chemin ?
- {
- return ERR_CONTINUE;
- }
-
- if ( m_phase == TGP_BEAMUP ) // décolle ?
- {
- if ( m_physics->RetType() == TYPE_FLYING && m_altitude > 0.0f )
- {
- h = m_terrain->RetFloorHeight(pos, TRUE);
- if ( h < m_altitude-20.0f ) return ERR_CONTINUE;
- m_physics->SetMotorSpeedY(0.0f); // stoppe la montée
- }
- m_phase = TGP_BEAMGOTO;
- }
-
- if ( m_phase == TGP_BEAMGOTO ) // goto dot list ?
- {
- if ( m_physics->RetLand() ) // au sol ?
- {
- limit = 1.0f;
- }
- else // en vol ?
- {
- limit = 2.0f;
- if ( m_bmIndex < m_bmTotal ) limit *= 2.0f; // point intermédiaire
- }
- if ( m_bApprox ) limit = 2.0f;
-
- if ( Abs(pos.x - m_bmPoints[m_bmIndex].x) < limit &&
- Abs(pos.z - m_bmPoints[m_bmIndex].z) < limit )
- {
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
-
- m_bmIndex = BeamShortcut();
-
- if ( m_bmIndex > m_bmTotal )
- {
- m_phase = TGP_BEAMDOWN;
- }
- }
- }
-
- if ( m_phase == TGP_BEAMDOWN ) // atteri ?
- {
- if ( m_physics->RetType() == TYPE_FLYING && m_altitude > 0.0f )
- {
- if ( !m_physics->RetLand() ) return ERR_CONTINUE;
- m_physics->SetMotorSpeedY(0.0f); // stoppe la descente
- }
-
- if ( m_bTake )
- {
- m_angle = RotateAngle(m_goalObject.x-pos.x, pos.z-m_goalObject.z);
- m_phase = TGP_TURN;
- }
- else
- {
- return ERR_STOP;
- }
- }
-
- if ( m_goalMode == TGG_EXPRESS )
- {
- dist = Length2d(m_goal, pos);
- if ( dist < 10.0f && dist > m_lastDistance )
- {
- return ERR_STOP;
- }
- m_lastDistance = dist;
- }
-
- if ( m_phase == TGP_ADVANCE ) // va vers l'objectif ?
- {
- if ( m_physics->RetLand() ) limit = 0.1f; // au sol
- else limit = 1.0f; // en vol
- if ( m_bApprox ) limit = 2.0f;
-
- if ( Abs(pos.x - m_goal.x) < limit &&
- Abs(pos.z - m_goal.z) < limit )
- {
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- m_phase = TGP_LAND;
- }
- }
-
- if ( m_phase == TGP_LAND ) // atterri ?
- {
- if ( m_physics->RetType() == TYPE_FLYING && m_altitude > 0.0f )
- {
- if ( !m_physics->RetLand() ) return ERR_CONTINUE;
- m_physics->SetMotorSpeedY(0.0f);
- }
-
- if ( m_bTake )
- {
- m_angle = RotateAngle(m_goalObject.x-pos.x, pos.z-m_goalObject.z);
- m_phase = TGP_TURN;
- }
- else
- {
- return ERR_STOP;
- }
- }
-
- if ( m_phase == TGP_TURN ) // tourne vers l'objet ?
- {
- angle = NormAngle(m_object->RetAngleY(0));
- limit = 0.02f;
- if ( m_bApprox ) limit = 0.10f;
- if ( Abs(angle-m_angle) < limit )
- {
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- if ( m_bmFinalMove == 0.0f ) return ERR_STOP;
-
- m_bmFinalPos = m_object->RetPosition(0);
- m_bmFinalDist = m_physics->RetLinLength(m_bmFinalMove);
- m_bmTimeLimit = m_physics->RetLinTimeLength(Abs(m_bmFinalMove))*1.5f;
- if ( m_bmTimeLimit < 0.5f ) m_bmTimeLimit = 0.5f;
- m_phase = TGP_MOVE;
- }
- }
-
- if ( m_phase == TGP_CRWAIT ) // attend aprčs collision ?
- {
- if ( m_crashMode == TGC_HALT )
- {
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- m_error = ERR_GENERIC;
- return m_error;
- }
- if ( m_time >= 1.0f )
- {
- if ( m_crashMode == TGC_RIGHTLEFT ||
- m_crashMode == TGC_RIGHT ) angle = PI/2.0f; // 90 ŕ droite
- else angle = -PI/2.0f; // 90 ŕ gauche
- m_angle = NormAngle(m_object->RetAngleY(0)+angle);
- m_phase = TGP_CRTURN;
-//? m_phase = TGP_ADVANCE;
- }
- }
-
- if ( m_phase == TGP_CRTURN ) // tourne aprčs collision ?
- {
- angle = NormAngle(m_object->RetAngleY(0));
- limit = 0.1f;
- if ( Abs(angle-m_angle) < limit )
- {
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- m_pos = pos;
- m_phase = TGP_CRADVANCE;
- }
- }
-
- if ( m_phase == TGP_CRADVANCE ) // avance aprčs collision ?
- {
- if ( Length(pos, m_pos) >= 5.0f )
- {
- m_phase = TGP_ADVANCE;
- }
- }
-
- if ( m_phase == TGP_CLWAIT ) // attend aprčs collision ?
- {
- if ( m_time >= 1.0f )
- {
- if ( m_crashMode == TGC_RIGHTLEFT ) angle = -PI;
- if ( m_crashMode == TGC_LEFTRIGHT ) angle = PI;
- if ( m_crashMode == TGC_RIGHT ) angle = PI/2.0f;
- if ( m_crashMode == TGC_LEFT ) angle = -PI/2.0f;
- m_angle = NormAngle(m_object->RetAngleY(0)+angle);
- m_phase = TGP_CLTURN;
- }
- }
-
- if ( m_phase == TGP_CLTURN ) // tourne aprčs collision ?
- {
- angle = NormAngle(m_object->RetAngleY(0));
- limit = 0.1f;
- if ( Abs(angle-m_angle) < limit )
- {
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- m_pos = pos;
- m_phase = TGP_CLADVANCE;
- }
- }
-
- if ( m_phase == TGP_CLADVANCE ) // avance aprčs collision ?
- {
- if ( Length(pos, m_pos) >= 10.0f )
- {
- m_phase = TGP_ADVANCE;
- m_try ++;
- }
- }
-
- if ( m_phase == TGP_MOVE ) // avance finale ?
- {
- if ( m_bmTimeLimit <= 0.0f )
- {
- m_physics->SetMotorSpeedX(0.0f); // stoppe
- Abort();
- return ERR_STOP;
- }
-
- dist = Length(m_bmFinalPos, m_object->RetPosition(0));
- if ( dist < m_bmFinalDist ) return ERR_CONTINUE;
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- return ERR_STOP;
- }
-
- return ERR_CONTINUE;
-}
-
-
-// Cherche l'objet ŕ la position cible.
-
-CObject* CTaskGoto::SearchTarget(D3DVECTOR pos, float margin)
-{
- CObject* pObj;
- D3DVECTOR oPos;
- float dist;
- int i;
-
- for ( i=0 ; i<1000000 ; i++ )
- {
- pObj = (CObject*)m_iMan->SearchInstance(CLASS_OBJECT, i);
- if ( pObj == 0 ) break;
-
- if ( !pObj->RetActif() ) continue;
- if ( pObj->RetTruck() != 0 ) continue; // objet porté ?
-
- oPos = pObj->RetPosition(0);
- dist = Length2d(pos, oPos);
-
- if ( dist <= margin ) return pObj;
- }
-
- return 0;
-}
-
-// Ajuste la cible en fonction de l'objet.
-// Retourne TRUE s'il s'agit de fret posé au sol.
-
-BOOL CTaskGoto::AdjustTarget(CObject* pObj, D3DVECTOR &pos, float &distance)
-{
- ObjectType type;
- Character* character;
- D3DMATRIX* mat;
- D3DVECTOR goal;
- float dist, suppl;
-
- type = m_object->RetType();
- if ( type == OBJECT_BEE ||
- type == OBJECT_WORM )
- {
- pos = pObj->RetPosition(0);
- return FALSE;
- }
-
- type = pObj->RetType();
-
- if ( type == OBJECT_FRET ||
- type == OBJECT_STONE ||
- type == OBJECT_URANIUM ||
- type == OBJECT_METAL ||
- type == OBJECT_POWER ||
- type == OBJECT_ATOMIC ||
- type == OBJECT_BULLET ||
- type == OBJECT_BBOX ||
- type == OBJECT_KEYa ||
- type == OBJECT_KEYb ||
- type == OBJECT_KEYc ||
- type == OBJECT_KEYd ||
- type == OBJECT_TNT ||
- type == OBJECT_BOMB )
- {
- pos = m_object->RetPosition(0);
- goal = pObj->RetPosition(0);
- dist = Length(goal, pos);
- pos = (pos-goal)*(TAKE_DIST+distance)/dist + goal;
- return TRUE;
- }
-
- if ( type == OBJECT_MOBILEfa ||
- type == OBJECT_MOBILEta ||
- type == OBJECT_MOBILEwa ||
- type == OBJECT_MOBILEia ||
- type == OBJECT_MOBILEfs ||
- type == OBJECT_MOBILEts ||
- type == OBJECT_MOBILEws ||
- type == OBJECT_MOBILEis ||
- type == OBJECT_MOBILEfc ||
- type == OBJECT_MOBILEtc ||
- type == OBJECT_MOBILEwc ||
- type == OBJECT_MOBILEic ||
- type == OBJECT_MOBILEfi ||
- type == OBJECT_MOBILEti ||
- type == OBJECT_MOBILEwi ||
- type == OBJECT_MOBILEii ||
- type == OBJECT_MOBILErt ||
- type == OBJECT_MOBILErc ||
- type == OBJECT_MOBILErr ||
- type == OBJECT_MOBILErs ||
- type == OBJECT_MOBILEsa ||
- type == OBJECT_MOBILEtg ||
- type == OBJECT_MOBILEft ||
- type == OBJECT_MOBILEtt ||
- type == OBJECT_MOBILEwt ||
- type == OBJECT_MOBILEit )
- {
- character = pObj->RetCharacter();
- pos = character->posPower;
- pos.x -= TAKE_DIST+TAKE_DIST_OTHER+distance;
- mat = pObj->RetWorldMatrix(0);
- pos = Transform(*mat, pos);
- return FALSE;
- }
-
- if ( GetHotPoint(pObj, goal, TRUE, distance, suppl) )
- {
- pos = goal;
- distance += suppl;
- return FALSE;
- }
-
- pos = pObj->RetPosition(0);
- return FALSE;
-}
-
-// S'il on est sur un objet produit par un bâtiment (minerai produit
-// par derrick), modifie la position par-rapport au bâtiment.
-
-BOOL CTaskGoto::AdjustBuilding(D3DVECTOR &pos, float margin, float &distance)
-{
- CObject* pObj;
- D3DVECTOR oPos;
- float dist, suppl;
- int i;
-
- for ( i=0 ; i<1000000 ; i++ )
- {
- pObj = (CObject*)m_iMan->SearchInstance(CLASS_OBJECT, i);
- if ( pObj == 0 ) break;
-
- if ( !pObj->RetActif() ) continue;
- if ( pObj->RetTruck() != 0 ) continue; // objet porté ?
-
- if ( !GetHotPoint(pObj, oPos, FALSE, 0.0f, suppl) ) continue;
- dist = Length2d(pos, oPos);
- if ( dist <= margin )
- {
- GetHotPoint(pObj, pos, TRUE, distance, suppl);
- distance += suppl;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-// Retourne le point oů est produit ou posé qq chose sur un bâtiment.
-
-BOOL CTaskGoto::GetHotPoint(CObject *pObj, D3DVECTOR &pos,
- BOOL bTake, float distance, float &suppl)
-{
- ObjectType type;
- D3DMATRIX* mat;
-
- pos = D3DVECTOR(0.0f, 0.0f, 0.0f);
- suppl = 0.0f;
- type = pObj->RetType();
-
- if ( type == OBJECT_DERRICK )
- {
- mat = pObj->RetWorldMatrix(0);
- pos.x += 7.0f;
- if ( bTake && distance != 0.0f ) suppl = 4.0f;
- if ( bTake ) pos.x += TAKE_DIST+distance+suppl;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- if ( type == OBJECT_CONVERT )
- {
- mat = pObj->RetWorldMatrix(0);
- pos.x += 0.0f;
- if ( bTake && distance != 0.0f ) suppl = 4.0f;
- if ( bTake ) pos.x += TAKE_DIST+distance+suppl;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- if ( type == OBJECT_RESEARCH )
- {
- mat = pObj->RetWorldMatrix(0);
- pos.x += 7.5f;
- if ( bTake ) pos.x += TAKE_DIST+TAKE_DIST_OTHER+distance;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- if ( type == OBJECT_ENERGY )
- {
- mat = pObj->RetWorldMatrix(0);
- pos.x += 0.0f;
- if ( bTake ) pos.x += TAKE_DIST+TAKE_DIST_OTHER+distance;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- if ( type == OBJECT_TOWER )
- {
- mat = pObj->RetWorldMatrix(0);
- pos.x += 5.0f;
- if ( bTake && distance != 0.0f ) suppl = 4.0f;
- if ( bTake ) pos.x += TAKE_DIST+TAKE_DIST_OTHER+distance+suppl;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- if ( type == OBJECT_LABO )
- {
- mat = pObj->RetWorldMatrix(0);
- pos.x += 0.0f;
- if ( bTake ) pos.x += TAKE_DIST+TAKE_DIST_OTHER+distance;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- if ( type == OBJECT_NUCLEAR )
- {
- mat = pObj->RetWorldMatrix(0);
- pos.x += 22.0f;
- if ( bTake && distance != 0.0f ) suppl = 4.0f;
- if ( bTake ) pos.x += TAKE_DIST+TAKE_DIST_OTHER+distance+suppl;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- if ( type == OBJECT_FACTORY )
- {
- mat = pObj->RetWorldMatrix(0);
- pos.x += 4.0f;
- if ( bTake && distance != 0.0f ) suppl = 3.0f;
- if ( bTake ) pos.x += TAKE_DIST+distance+suppl;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- if ( type == OBJECT_STATION )
- {
- mat = pObj->RetWorldMatrix(0);
- if ( bTake ) pos.x += distance;
- pos = Transform(*mat, pos);
- return TRUE;
- }
-
- suppl = 0.0f;
- return FALSE;
-}
-
-
-// Cherche un objet trop proche qu'il faut fuire.
-
-BOOL CTaskGoto::LeakSearch(D3DVECTOR &pos, float &delay)
-{
- CObject* pObj;
- D3DVECTOR iPos, oPos, bPos;
- float iRadius, oRadius, bRadius, dist, min;
- int i, j;
-
- m_object->GetCrashSphere(0, iPos, iRadius);
-
- min = 100000.0f;
- bRadius = 0.0f;
- for ( i=0 ; i<1000000 ; i++ )
- {
- pObj = (CObject*)m_iMan->SearchInstance(CLASS_OBJECT, i);
- if ( pObj == 0 ) break;
-
- if ( pObj == m_object ) continue;
- if ( !pObj->RetActif() ) continue;
- if ( pObj->RetTruck() != 0 ) continue; // objet porté ?
-
- j = 0;
- while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
- {
- dist = Length2d(oPos, iPos);
- if ( dist < min )
- {
- min = dist;
- bPos = oPos;
- bRadius = oRadius;
- }
- }
- }
- if ( min > iRadius+bRadius+4.0f ) return FALSE;
-
- pos = bPos;
- delay = m_physics->RetLinTimeLength(4.0f);
- return TRUE;
-}
-
-
-// Calcule la force de répulsion en fonction des obstacles.
-// La longueur du vecteur rendu est comprise entre 0 et 1.
-
-void CTaskGoto::ComputeRepulse(FPOINT &dir)
-{
-#if 0
- D3DVECTOR iPos, oPos;
- FPOINT repulse;
- CObject *pObj;
- float dist, iRadius, oRadius;
- int i;
-
- dir.x = 0.0f;
- dir.y = 0.0f;
-
- m_object->GetCrashSphere(0, iPos, iRadius);
-
- for ( i=0 ; i<1000000 ; i++ )
- {
- pObj = (CObject*)m_iMan->SearchInstance(CLASS_OBJECT, i);
- if ( pObj == 0 ) break;
-
- if ( pObj == m_object ) continue;
- if ( pObj->RetTruck() != 0 ) continue;
-
- oPos = pObj->RetPosition(0);
- dist = Length(oPos, m_goalObject);
- if ( dist <= 1.0f ) continue;
-
- pObj->GetGlobalSphere(oPos, oRadius);
- oRadius += iRadius+m_physics->RetLinStopLength()*1.1f;
- dist = Length2d(oPos, iPos);
- if ( dist <= oRadius )
- {
- repulse.x = iPos.x-oPos.x;
- repulse.y = iPos.z-oPos.z;
-
-//? dist = 0.2f-(0.2f*dist/oRadius);
- dist = powf(dist/oRadius, 2.0f);
- dist = 0.2f-0.2f*dist;
- repulse.x *= dist;
- repulse.y *= dist;
-//? repulse.x /= dist;
-//? repulse.y /= dist;
-
- dir.x += repulse.x;
- dir.y += repulse.y;
- }
- }
-#else
- ObjectType iType, oType;
- D3DVECTOR iPos, oPos;
- FPOINT repulse;
- CObject *pObj;
- float gDist, add, addi, fac, dist, iRadius, oRadius;
- int i, j;
- BOOL bAlien;
-
- dir.x = 0.0f;
- dir.y = 0.0f;
-
- // Le ver passe partout et ŕ travers tout !
- iType = m_object->RetType();
- if ( iType == OBJECT_WORM ) return;
-
- m_object->GetCrashSphere(0, iPos, iRadius);
- gDist = Length(iPos, m_goal);
-
- add = m_physics->RetLinStopLength()*1.1f; // distance de freinage
- fac = 2.0f;
-
- if ( iType == OBJECT_MOBILEwa ||
- iType == OBJECT_MOBILEwc ||
- iType == OBJECT_MOBILEwi ||
- iType == OBJECT_MOBILEws ||
- iType == OBJECT_MOBILEwt ) // roues ?
- {
- add = 5.0f;
- fac = 1.5f;
- }
- if ( iType == OBJECT_MOBILEta ||
- iType == OBJECT_MOBILEtc ||
- iType == OBJECT_MOBILEti ||
- iType == OBJECT_MOBILEts ||
- iType == OBJECT_MOBILEtt ) // chenilles ?
- {
- add = 4.0f;
- fac = 1.5f;
- }
- if ( iType == OBJECT_MOBILEfa ||
- iType == OBJECT_MOBILEfc ||
- iType == OBJECT_MOBILEfi ||
- iType == OBJECT_MOBILEfs ||
- iType == OBJECT_MOBILEft ) // volant ?
- {
- if ( m_physics->RetLand() )
- {
- add = 5.0f;
- fac = 1.5f;
- }
- else
- {
- add = 10.0f;
- fac = 1.5f;
- }
- }
- if ( iType == OBJECT_MOBILEia ||
- iType == OBJECT_MOBILEic ||
- iType == OBJECT_MOBILEii ||
- iType == OBJECT_MOBILEis ||
- iType == OBJECT_MOBILEit ) // pattes ?
- {
- add = 4.0f;
- fac = 1.5f;
- }
- if ( iType == OBJECT_BEE ) // guępe ?
- {
- if ( m_physics->RetLand() )
- {
- add = 3.0f;
- fac = 1.5f;
- }
- else
- {
- add = 5.0f;
- fac = 1.5f;
- }
- }
-
- bAlien = FALSE;
- if ( iType == OBJECT_MOTHER ||
- iType == OBJECT_ANT ||
- iType == OBJECT_SPIDER ||
- iType == OBJECT_BEE ||
- iType == OBJECT_WORM )
- {
- bAlien = TRUE;
- }
-
- for ( i=0 ; i<1000000 ; i++ )
- {
- pObj = (CObject*)m_iMan->SearchInstance(CLASS_OBJECT, i);
- if ( pObj == 0 ) break;
-
- if ( pObj == m_object ) continue;
- if ( pObj->RetTruck() != 0 ) continue;
-
- oType = pObj->RetType();
-
- if ( oType == OBJECT_WORM ) continue;
-
- if ( bAlien )
- {
- if ( oType == OBJECT_STONE ||
- oType == OBJECT_URANIUM ||
- oType == OBJECT_METAL ||
- oType == OBJECT_POWER ||
- oType == OBJECT_ATOMIC ||
- oType == OBJECT_BULLET ||
- oType == OBJECT_BBOX ||
- oType == OBJECT_KEYa ||
- oType == OBJECT_KEYb ||
- oType == OBJECT_KEYc ||
- oType == OBJECT_KEYd ||
- oType == OBJECT_TNT ||
- oType == OBJECT_BOMB ||
- (oType >= OBJECT_PLANT0 &&
- oType <= OBJECT_PLANT19 ) ||
- (oType >= OBJECT_MUSHROOM0 &&
- oType <= OBJECT_MUSHROOM9 ) ) continue;
- }
-
- addi = add;
- if ( iType == OBJECT_BEE &&
- oType == OBJECT_BEE )
- {
- addi = 2.0f; // entre gučpes, faut pas trop s'embęter
- }
-
- j = 0;
- while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
- {
- if ( oPos.y-oRadius > iPos.y+iRadius ) continue;
- if ( oPos.y+oRadius < iPos.y-iRadius ) continue;
-
- dist = Length(oPos, m_goal);
- if ( dist <= 1.0f ) continue; // sur le but ?
-
- oRadius += iRadius+addi;
- dist = Length2d(oPos, iPos);
- if ( dist > gDist ) continue; // plus loin que le but ?
- if ( dist <= oRadius )
- {
- repulse.x = iPos.x-oPos.x;
- repulse.y = iPos.z-oPos.z;
-
- dist = powf(dist/oRadius, fac);
- dist = 0.2f-0.2f*dist;
- repulse.x *= dist;
- repulse.y *= dist;
-
- dir.x += repulse.x;
- dir.y += repulse.y;
- }
- }
- }
-#endif
-}
-
-// Calcule la force de répulsion verticale en fonction des obstacles.
-// La longueur du vecteur rendu est comprise entre -1 et 1.
-
-void CTaskGoto::ComputeFlyingRepulse(float &dir)
-{
- ObjectType oType;
- D3DVECTOR iPos, oPos;
- CObject *pObj;
- float add, fac, dist, iRadius, oRadius, repulse;
- int i, j;
-
- m_object->GetCrashSphere(0, iPos, iRadius);
-
- add = 0.0f;
- fac = 1.5f;
- dir = 0.0f;
-
- for ( i=0 ; i<1000000 ; i++ )
- {
- pObj = (CObject*)m_iMan->SearchInstance(CLASS_OBJECT, i);
- if ( pObj == 0 ) break;
-
- if ( pObj == m_object ) continue;
- if ( pObj->RetTruck() != 0 ) continue;
-
- oType = pObj->RetType();
-
- if ( oType == OBJECT_WORM ) continue;
-
- j = 0;
- while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
- {
- oRadius += iRadius+add;
- dist = Length2d(oPos, iPos);
- if ( dist <= oRadius )
- {
- repulse = iPos.y-oPos.y;
-
- dist = powf(dist/oRadius, fac);
- dist = 0.2f-0.2f*dist;
- repulse *= dist;
-
- dir += repulse;
- }
- }
- }
-
- if ( dir < -1.0f ) dir = -1.0f;
- if ( dir > 1.0f ) dir = 1.0f;
-}
-
-
-
-// Parmi tous les points suivants, cherche s'il en existe un qui
-// permet d'y aller directement ŕ vol d'oiseau. Si oui, saute tous
-// les points intermédiaires inutiles.
-
-int CTaskGoto::BeamShortcut()
-{
- int i;
-
- for ( i=m_bmTotal ; i>=m_bmIndex+2 ; i-- ) // cherche depuis le dernier
- {
- if ( BitmapTestLine(m_bmPoints[m_bmIndex], m_bmPoints[i], 0.0f, FALSE) )
- {
- return i; // bingo, trouvé
- }
- }
-
- return m_bmIndex+1; // va simplement au point suivant
-}
-
-// C'est le grand départ.
-
-void CTaskGoto::BeamStart()
-{
- D3DVECTOR min, max;
-
-//? OutputDebugString("CTaskGoto::Start TGC_BEAM\n");
- BitmapOpen();
- BitmapObject();
-
- min = m_object->RetPosition(0);
- max = m_goal;
- if ( min.x > max.x ) Swap(min.x, max.x);
- if ( min.z > max.z ) Swap(min.z, max.z);
- min.x -= 10.0f*BM_DIM_STEP;
- min.z -= 10.0f*BM_DIM_STEP;
- max.x += 10.0f*BM_DIM_STEP;
- max.z += 10.0f*BM_DIM_STEP;
- BitmapTerrain(min, max);
-
- if ( LeakSearch(m_leakPos, m_leakDelay) )
- {
- m_phase = TGP_BEAMLEAK; // il faut d'abord fuire
- m_leakTime = 0.0f;
- }
- else
- {
- m_physics->SetMotorSpeedX(0.0f); // stoppe l'avance
- m_physics->SetMotorSpeedZ(0.0f); // stoppe la rotation
- BeamInit();
- m_phase = TGP_BEAMSEARCH; // faudra chercher le chemin
- }
-}
-
-// Initialisation avant le premier BeamSearch.
-
-void CTaskGoto::BeamInit()
-{
- int i;
-
- for ( i=0 ; i<MAXPOINTS ; i++ )
- {
- m_bmIter[i] = -1;
- }
-}
-
-// Calcule les points par oů passer pour aller de start ŕ goal.
-// Retourne :
-// ERR_OK si c'est bon
-// ERR_GOTO_IMPOSSIBLE si impossible
-// ERR_GOTO_ITER si avorté car trop de récursions
-// ERR_CONTINUE si pas encore fini
-// goalRadius: distance ŕ laquelle il faut s'approcher du but
-
-Error CTaskGoto::BeamSearch(const D3DVECTOR &start, const D3DVECTOR &goal,
- float goalRadius)
-{
- float step, len;
- int nbIter;
-
- len = Length2d(start, goal);
- step = len/5.0f;
- if ( step < BM_DIM_STEP*2.0f ) step = BM_DIM_STEP*2.0f;
- if ( step > 20.0f ) step = 20.0f;
- nbIter = 200; // pour ne pas trop baisser le framerate
- m_bmIterCounter = 0;
- return BeamExplore(start, start, goal, goalRadius, 165.0f*PI/180.0f, 22, step, 0, nbIter);
-}
-
-// prevPos: position précédente
-// curPos: position courante
-// goalPos: position qu'on cherche ŕ atteindre
-// angle: angle par rapport au but qu'on explore
-// nbDiv: nombre du sous-divisions qu'on fait avec angle
-// step longuer d'un pas
-// i nombre de récursions effectuées
-// nbIter nombre max. d'iterations qu'on a le droit de faire avant d'interrompre provisoirement
-
-Error CTaskGoto::BeamExplore(const D3DVECTOR &prevPos, const D3DVECTOR &curPos,
- const D3DVECTOR &goalPos, float goalRadius,
- float angle, int nbDiv, float step,
- int i, int nbIter)
-{
- D3DVECTOR newPos;
- Error ret;
- int iDiv, iClear, iLar;
-
- iLar = 0;
- if ( i >= MAXPOINTS ) return ERR_GOTO_ITER; // trop de récursion
-
- if ( m_bmIter[i] == -1 )
- {
- m_bmIter[i] = 0;
-
- if ( i == 0 )
- {
- m_bmPoints[i] = curPos;
- }
- else
- {
- if ( !BitmapTestLine(prevPos, curPos, angle/nbDiv, TRUE) ) return ERR_GOTO_IMPOSSIBLE;
-
- m_bmPoints[i] = curPos;
-
- if ( Length2d(curPos, goalPos)-goalRadius <= step )
- {
- if ( goalRadius == 0.0f )
- {
- newPos = goalPos;
- }
- else
- {
- newPos = BeamPoint(curPos, goalPos, 0, Length2d(curPos, curPos)-goalRadius);
- }
- if ( BitmapTestLine(curPos, newPos, angle/nbDiv, FALSE) )
- {
- m_bmPoints[i+1] = newPos;
- m_bmTotal = i+1;
- return ERR_OK;
- }
- }
- }
- }
-
- if ( iLar >= m_bmIter[i] )
- {
- newPos = BeamPoint(curPos, goalPos, 0, step);
- ret = BeamExplore(curPos, newPos, goalPos, goalRadius, angle, nbDiv, step, i+1, nbIter);
- if ( ret != ERR_GOTO_IMPOSSIBLE ) return ret;
- m_bmIter[i] = iLar+1;
- for ( iClear=i+1 ; iClear<=MAXPOINTS ; iClear++ ) m_bmIter[iClear] = -1;
- m_bmIterCounter ++;
- if ( m_bmIterCounter >= nbIter ) return ERR_CONTINUE;
- }
- iLar ++;
-
- for ( iDiv=1 ; iDiv<=nbDiv ; iDiv++ )
- {
- if ( iLar >= m_bmIter[i] )
- {
- newPos = BeamPoint(curPos, goalPos, angle*iDiv/nbDiv, step);
- ret = BeamExplore(curPos, newPos, goalPos, goalRadius, angle, nbDiv, step, i+1, nbIter);
- if ( ret != ERR_GOTO_IMPOSSIBLE ) return ret;
- m_bmIter[i] = iLar+1;
- for ( iClear=i+1 ; iClear<=MAXPOINTS ; iClear++ ) m_bmIter[iClear] = -1;
- m_bmIterCounter ++;
- if ( m_bmIterCounter >= nbIter ) return ERR_CONTINUE;
- }
- iLar ++;
-
- if ( iLar >= m_bmIter[i] )
- {
- newPos = BeamPoint(curPos, goalPos, -angle*iDiv/nbDiv, step);
- ret = BeamExplore(curPos, newPos, goalPos, goalRadius, angle, nbDiv, step, i+1, nbIter);
- if ( ret != ERR_GOTO_IMPOSSIBLE ) return ret;
- m_bmIter[i] = iLar+1;
- for ( iClear=i+1 ; iClear<=MAXPOINTS ; iClear++ ) m_bmIter[iClear] = -1;
- m_bmIterCounter ++;
- if ( m_bmIterCounter >= nbIter ) return ERR_CONTINUE;
- }
- iLar ++;
- }
-
- return ERR_GOTO_IMPOSSIBLE;
-}
-
-// Soit une droite "start-goal". Calcule le point situé ŕ la distance
-// "step" du point "start" et faisant un angle "angle" avec la droite.
-
-D3DVECTOR CTaskGoto::BeamPoint(const D3DVECTOR &startPoint,
- const D3DVECTOR &goalPoint,
- float angle, float step)
-{
- D3DVECTOR resPoint;
- float goalAngle;
-
- goalAngle = RotateAngle(goalPoint.x-startPoint.x, goalPoint.z-startPoint.z);
-
- resPoint.x = startPoint.x + cosf(goalAngle+angle)*step;
- resPoint.z = startPoint.z + sinf(goalAngle+angle)*step;
- resPoint.y = 0.0f;
-
- return resPoint;
-}
-
-// Affiche une partion de bitmap.
-
-void CTaskGoto::BitmapDebug(const D3DVECTOR &min, const D3DVECTOR &max,
- const D3DVECTOR &start, const D3DVECTOR &goal)
-{
- int minx, miny, maxx, maxy, x, y, i ,n;
- char s[2000];
-
- minx = (int)((min.x+1600.0f)/BM_DIM_STEP);
- miny = (int)((min.z+1600.0f)/BM_DIM_STEP);
- maxx = (int)((max.x+1600.0f)/BM_DIM_STEP);
- maxy = (int)((max.z+1600.0f)/BM_DIM_STEP);
-
- if ( minx > maxx ) Swap(minx, maxx);
- if ( miny > maxy ) Swap(miny, maxy);
-
- OutputDebugString("Bitmap :\n");
- for ( y=miny ; y<=maxy ; y++ )
- {
- s[0] = 0;
- for ( x=minx ; x<=maxx ; x++ )
- {
- n = -1;
- for ( i=0 ; i<=m_bmTotal ; i++ )
- {
- if ( x == (int)((m_bmPoints[i].x+1600.0f)/BM_DIM_STEP) &&
- y == (int)((m_bmPoints[i].z+1600.0f)/BM_DIM_STEP) )
- {
- n = i;
- break;
- }
- }
-
- if ( BitmapTestDot(0, x,y) )
- {
- strcat(s, "o");
- }
- else
- {
- if ( BitmapTestDot(1, x,y) )
- {
- strcat(s, "-");
- }
- else
- {
- strcat(s, ".");
- }
- }
-
- if ( x == (int)((start.x+1600.0f)/BM_DIM_STEP) &&
- y == (int)((start.z+1600.0f)/BM_DIM_STEP) )
- {
- strcat(s, "s");
- }
- else
- if ( x == (int)((goal.x+1600.0f)/BM_DIM_STEP) &&
- y == (int)((goal.z+1600.0f)/BM_DIM_STEP) )
- {
- strcat(s, "g");
- }
- else
- if ( n != -1 )
- {
- char ss[2];
- ss[0] = 'A'+n;
- ss[1] = 0;
- strcat(s, ss);
- }
- else
- {
- strcat(s, " ");
- }
- }
- strcat(s, "\n");
- OutputDebugString(s);
- }
-}
-
-// Teste si un chemin le long d'une droite est possible.
-
-BOOL CTaskGoto::BitmapTestLine(const D3DVECTOR &start, const D3DVECTOR &goal,
- float stepAngle, BOOL bSecond)
-{
- D3DVECTOR pos, inc;
- float dist, step;
- float distNoB2;
- int i, max, x, y;
-
- if ( m_bmArray == 0 ) return TRUE;
-
- dist = Length2d(start, goal);
- if ( dist == 0.0f ) return TRUE;
- step = BM_DIM_STEP*0.5f;
-
- inc.x = (goal.x-start.x)*step/dist;
- inc.z = (goal.z-start.z)*step/dist;
-
- pos = start;
-
- if ( bSecond )
- {
- x = (int)((pos.x+1600.0f)/BM_DIM_STEP);
- y = (int)((pos.z+1600.0f)/BM_DIM_STEP);
- BitmapSetDot(1, x, y); // met le flag du point de départ
- }
-
- max = (int)(dist/step);
- if ( max == 0 ) max = 1;
- distNoB2 = BM_DIM_STEP*sqrtf(2.0f)/sinf(stepAngle);
- for ( i=0 ; i<max ; i++ )
- {
- if ( i == max-1 )
- {
- pos = goal; // teste le point d'arrivée
- }
- else
- {
- pos.x += inc.x;
- pos.z += inc.z;
- }
-
- x = (int)((pos.x+1600.0f)/BM_DIM_STEP);
- y = (int)((pos.z+1600.0f)/BM_DIM_STEP);
-
- if ( bSecond )
- {
- if ( i > 2 && BitmapTestDot(1, x, y) ) return FALSE;
-
- if ( step*(i+1) > distNoB2 && i < max-2 )
- {
- BitmapSetDot(1, x, y);
- }
- }
-
- if ( BitmapTestDot(0, x, y) ) return FALSE;
- }
- return TRUE;
-}
-
-// Ajoute les objets dans le bitmap.
-
-void CTaskGoto::BitmapObject()
-{
- CObject *pObj;
- D3DVECTOR iPos, oPos;
- float iRadius, oRadius, h;
- int i, j;
-
- m_object->GetCrashSphere(0, iPos, iRadius);
-
- for ( i=0 ; i<1000000 ; i++ )
- {
- pObj = (CObject*)m_iMan->SearchInstance(CLASS_OBJECT, i);
- if ( pObj == 0 ) break;
-
- if ( pObj == m_object ) continue;
- if ( pObj == m_bmFretObject ) continue;
- if ( pObj->RetTruck() != 0 ) continue;
-
- h = m_terrain->RetFloorLevel(pObj->RetPosition(0), TRUE);
- if ( m_physics->RetType() == TYPE_FLYING && m_altitude > 0.0f )
- {
- h += m_altitude;
- }
-
- j = 0;
- while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
- {
- if ( m_physics->RetType() == TYPE_FLYING && m_altitude > 0.0f ) // volant ?
- {
- if ( oPos.y-oRadius > h+8.0f ||
- oPos.y+oRadius < h-8.0f ) continue;
- }
- else // rampant ?
- {
- if ( oPos.y-oRadius > h+8.0f ) continue;
- }
-
- BitmapSetCircle(oPos, oRadius+iRadius+4.0f);
- }
- }
-}
-
-// Ajoute une portion de terrain dans le bitmap.
-
-void CTaskGoto::BitmapTerrain(const D3DVECTOR &min, const D3DVECTOR &max)
-{
- int minx, miny, maxx, maxy;
-
- minx = (int)((min.x+1600.0f)/BM_DIM_STEP);
- miny = (int)((min.z+1600.0f)/BM_DIM_STEP);
- maxx = (int)((max.x+1600.0f)/BM_DIM_STEP);
- maxy = (int)((max.z+1600.0f)/BM_DIM_STEP);
-
- BitmapTerrain(minx, miny, maxx, maxy);
-}
-
-// Ajoute une portion de terrain dans le bitmap.
-
-void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
-{
- ObjectType type;
- D3DVECTOR p;
- float aLimit, angle, h;
- int x, y;
- BOOL bAcceptWater, bFly;
-
- if ( minx > maxx ) Swap(minx, maxx);
- if ( miny > maxy ) Swap(miny, maxy);
-
- if ( minx < 0 ) minx = 0;
- if ( miny < 0 ) miny = 0;
- if ( maxx > m_bmSize-1 ) maxx = m_bmSize-1;
- if ( maxy > m_bmSize-1 ) maxy = m_bmSize-1;
-
- if ( minx > m_bmMinX ) minx = m_bmMinX;
- if ( miny > m_bmMinY ) miny = m_bmMinY;
- if ( maxx < m_bmMaxX ) maxx = m_bmMaxX;
- if ( maxy < m_bmMaxY ) maxy = m_bmMaxY;
-
- if ( minx >= m_bmMinX && maxx <= m_bmMaxX &&
- miny >= m_bmMinY && maxy <= m_bmMaxY ) return;
-
- aLimit = 20.0f*PI/180.0f;
- bAcceptWater = FALSE;
- bFly = FALSE;
-
- type = m_object->RetType();
-
- if ( type == OBJECT_MOBILEwa ||
- type == OBJECT_MOBILEwc ||
- type == OBJECT_MOBILEws ||
- type == OBJECT_MOBILEwi ||
- type == OBJECT_MOBILEwt ||
- type == OBJECT_MOBILEtg ) // roues ?
- {
- aLimit = 20.0f*PI/180.0f;
- }
-
- if ( type == OBJECT_MOBILEta ||
- type == OBJECT_MOBILEtc ||
- type == OBJECT_MOBILEti ||
- type == OBJECT_MOBILEts ) // chenilles ?
- {
- aLimit = 35.0f*PI/180.0f;
- }
-
- if ( type == OBJECT_MOBILErt ||
- type == OBJECT_MOBILErc ||
- type == OBJECT_MOBILErr ||
- type == OBJECT_MOBILErs ) // grosses chenilles ?
- {
- aLimit = 35.0f*PI/180.0f;
- }
-
- if ( type == OBJECT_MOBILEsa ) // chenilles sous-marin ?
- {
- aLimit = 35.0f*PI/180.0f;
- bAcceptWater = TRUE;
- }
-
- if ( type == OBJECT_MOBILEfa ||
- type == OBJECT_MOBILEfc ||
- type == OBJECT_MOBILEfs ||
- type == OBJECT_MOBILEfi ||
- type == OBJECT_MOBILEft ) // volant ?
- {
- aLimit = 15.0f*PI/180.0f;
- bFly = TRUE;
- }
-
- if ( type == OBJECT_MOBILEia ||
- type == OBJECT_MOBILEic ||
- type == OBJECT_MOBILEis ||
- type == OBJECT_MOBILEii ) // pattes d'insecte ?
- {
- aLimit = 60.0f*PI/180.0f;
- }
-
- for ( y=miny ; y<=maxy ; y++ )
- {
- for ( x=minx ; x<=maxx ; x++ )
- {
- if ( x >= m_bmMinX && x <= m_bmMaxX &&
- y >= m_bmMinY && y <= m_bmMaxY ) continue;
-
- p.x = x*BM_DIM_STEP-1600.0f;
- p.z = y*BM_DIM_STEP-1600.0f;
-
- if ( bFly ) // robot volant ?
- {
- h = m_terrain->RetFloorLevel(p, TRUE);
- if ( h >= m_terrain->RetFlyingMaxHeight()-5.0f )
- {
- BitmapSetDot(0, x, y);
- }
- continue;
- }
-
- if ( !bAcceptWater ) // ne va pas sous l'eau ?
- {
- h = m_terrain->RetFloorLevel(p, TRUE);
-//? if ( h <= m_water->RetLevel()+1.0f ) // sous l'eau ?
- if ( h < m_water->RetLevel()-2.0f ) // sous l'eau ?
- {
-//? BitmapSetDot(0, x, y);
- BitmapSetCircle(p, BM_DIM_STEP*1.0f);
- continue;
- }
- }
-
- angle = m_terrain->RetFineSlope(p);
- if ( angle > aLimit )
- {
- BitmapSetDot(0, x, y);
- }
- }
- }
-
- m_bmMinX = minx;
- m_bmMinY = miny;
- m_bmMaxX = maxx;
- m_bmMaxY = maxy;
-}
-
-// Ouvre un bitmap vide.
-
-BOOL CTaskGoto::BitmapOpen()
-{
- BitmapClose();
-
- m_bmSize = (int)(3200.0f/BM_DIM_STEP);
- m_bmArray = (unsigned char*)malloc(m_bmSize*m_bmSize/8*2);
- ZeroMemory(m_bmArray, m_bmSize*m_bmSize/8*2);
-
- m_bmOffset = m_bmSize/2;
- m_bmLine = m_bmSize/8;
-
- m_bmMinX = m_bmSize;
- m_bmMinY = m_bmSize;
- m_bmMaxX = 0;
- m_bmMaxY = 0;
-
- return TRUE;
-}
-
-// Ferme le bitmap.
-
-BOOL CTaskGoto::BitmapClose()
-{
- free(m_bmArray);
- m_bmArray = 0;
- return TRUE;
-}
-
-// Met un cercle dans le bitmap.
-
-void CTaskGoto::BitmapSetCircle(const D3DVECTOR &pos, float radius)
-{
- float d, r;
- int cx, cy, ix, iy;
-
- cx = (int)((pos.x+1600.0f)/BM_DIM_STEP);
- cy = (int)((pos.z+1600.0f)/BM_DIM_STEP);
- r = radius/BM_DIM_STEP;
-
- for ( iy=cy-(int)r ; iy<=cy+(int)r ; iy++ )
- {
- for ( ix=cx-(int)r ; ix<=cx+(int)r ; ix++ )
- {
- d = Length((float)(ix-cx), (float)(iy-cy));
- if ( d > r ) continue;
- BitmapSetDot(0, ix, iy);
- }
- }
-}
-
-// Met un point dans le bitmap.
-// x:y: 0..m_bmSize-1
-
-void CTaskGoto::BitmapSetDot(int rank, int x, int y)
-{
- if ( x < 0 || x >= m_bmSize ||
- y < 0 || y >= m_bmSize ) return;
-
- m_bmArray[rank*m_bmLine*m_bmSize + m_bmLine*y + x/8] |= (1<<x%8);
-}
-
-// Teste un point dans le bitmap.
-// x:y: 0..m_bmSize-1
-
-BOOL CTaskGoto::BitmapTestDot(int rank, int x, int y)
-{
- if ( x < 0 || x >= m_bmSize ||
- y < 0 || y >= m_bmSize ) return FALSE;
-
- if ( x < m_bmMinX || x > m_bmMaxX ||
- y < m_bmMinY || y > m_bmMaxY )
- {
- BitmapTerrain(x-10,y-10, x+10,y+10); // refait une couche
- }
-
- return m_bmArray[rank*m_bmLine*m_bmSize + m_bmLine*y + x/8] & (1<<x%8);
-}
-
-
diff --git a/src/restext-old.cpp b/src/restext-old.cpp
deleted file mode 100644
index f06cd2b..0000000
--- a/src/restext-old.cpp
+++ /dev/null
@@ -1,2541 +0,0 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.// restext.cpp
-
-#define STRICT
-#define D3D_OVERLOADS
-
-#include <stdio.h>
-#include "struct.h"
-#include "D3DEngine.h"
-#include "language.h"
-#include "misc.h"
-#include "event.h"
-#include "object.h"
-#include "cbot\resource.h"
-#include "restext.h"
-
-
-
-
-// Donne le pointeur au moteur.
-
-void SetEngine(CD3DEngine *engine)
-{
- g_engine = engine;
-}
-
-// Donne le nom du joueur.
-
-void SetGlobalGamerName(char *name)
-{
- strcpy(g_gamerName, name);
-}
-
-
-
-typedef struct
-{
- KeyRank key;
- char name[20];
-}
-KeyDesc;
-
-static KeyDesc keyTable[22] =
-{
- { KEYRANK_LEFT, "left;" },
- { KEYRANK_RIGHT, "right;" },
- { KEYRANK_UP, "up;" },
- { KEYRANK_DOWN, "down;" },
- { KEYRANK_GUP, "gup;" },
- { KEYRANK_GDOWN, "gdown;" },
- { KEYRANK_CAMERA, "camera;" },
- { KEYRANK_DESEL, "desel;" },
- { KEYRANK_ACTION, "action;" },
- { KEYRANK_NEAR, "near;" },
- { KEYRANK_AWAY, "away;" },
- { KEYRANK_NEXT, "next;" },
- { KEYRANK_HUMAN, "human;" },
- { KEYRANK_QUIT, "quit;" },
- { KEYRANK_HELP, "help;" },
- { KEYRANK_PROG, "prog;" },
- { KEYRANK_CBOT, "cbot;" },
- { KEYRANK_VISIT, "visit;" },
- { KEYRANK_SPEED10, "speed10;" },
- { KEYRANK_SPEED15, "speed15;" },
- { KEYRANK_SPEED20, "speed20;" },
- { KEYRANK_SPEED30, "speed30;" },
-};
-
-// Cherche une touche.
-
-BOOL SearchKey(char *cmd, KeyRank &key)
-{
- int i;
-
- for ( i=0 ; i<22 ; i++ )
- {
- if ( strstr(cmd, keyTable[i].name) == cmd )
- {
- key = keyTable[i].key;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-// Remplace les commandes "\key name;" dans un texte.
-
-void PutKeyName(char* dst, char* src)
-{
- KeyRank key;
- char name[50];
- int s, d, n, res;
-
- s = d = 0;
- while ( src[s] != 0 )
- {
- if ( src[s+0] == '\\' &&
- src[s+1] == 'k' &&
- src[s+2] == 'e' &&
- src[s+3] == 'y' &&
- src[s+4] == ' ' )
- {
- if ( SearchKey(src+s+5, key) )
- {
- res = g_engine->RetKey(key, 0);
- if ( res != 0 )
- {
- if ( GetResource(RES_KEY, res, name) )
- {
- n = 0;
- while ( name[n] != 0 )
- {
- dst[d++] = name[n++];
- }
- while ( src[s++] != ';' );
- continue;
- }
- }
- }
- }
-
- dst[d++] = src[s++];
- }
- dst[d++] = 0;
-}
-
-
-// Retourne le texte d'une ressource.
-
-BOOL GetResource(ResType type, int num, char* text)
-{
- char buffer[100];
-
- if ( !GetResourceBase(type, num, buffer) )
- {
- text[0] = 0;
- return FALSE;
- }
-
- PutKeyName(text, buffer);
- return TRUE;
-}
-
-
-// Retourne le texte d'une ressource.
-
-BOOL GetResourceBase(ResType type, int num, char* text)
-{
- text[0] = 0;
-
-#if _ENGLISH
- if ( type == RES_TEXT )
- {
- #if _FULL
- if ( num == RT_VERSION_ID ) strcpy(text, "Version 1.8 /e");
- #endif
- #if _NET | _SCHOOL
- if ( num == RT_VERSION_ID ) strcpy(text, "School 1.8 /e");
- #endif
- #if _DEMO
- if ( num == RT_VERSION_ID ) strcpy(text, "Demo 1.8 /e");
- #endif
- if ( num == RT_DISINFO_TITLE ) strcpy(text, "SatCom");
- if ( num == RT_WINDOW_MAXIMIZED ) strcpy(text, "Maximize");
- if ( num == RT_WINDOW_MINIMIZED ) strcpy(text, "Minimize");
- if ( num == RT_WINDOW_STANDARD ) strcpy(text, "Normal size");
- if ( num == RT_WINDOW_CLOSE ) strcpy(text, "Close");
-
- if ( num == RT_STUDIO_TITLE ) strcpy(text, "Program editor");
- if ( num == RT_SCRIPT_NEW ) strcpy(text, "New");
- if ( num == RT_NAME_DEFAULT ) strcpy(text, "Player");
- if ( num == RT_IO_NEW ) strcpy(text, "New ...");
- if ( num == RT_KEY_OR ) strcpy(text, " or ");
-
- if ( num == RT_TITLE_BASE ) strcpy(text, "COLOBOT");
- if ( num == RT_TITLE_INIT ) strcpy(text, "COLOBOT");
- if ( num == RT_TITLE_TRAINER ) strcpy(text, "Programming exercises");
- if ( num == RT_TITLE_DEFI ) strcpy(text, "Challenges");
- if ( num == RT_TITLE_MISSION ) strcpy(text, "Missions");
- if ( num == RT_TITLE_FREE ) strcpy(text, "Free game");
- if ( num == RT_TITLE_USER ) strcpy(text, "User levels");
- if ( num == RT_TITLE_PROTO ) strcpy(text, "Prototypes");
- if ( num == RT_TITLE_SETUP ) strcpy(text, "Options");
- if ( num == RT_TITLE_NAME ) strcpy(text, "Player name");
- if ( num == RT_TITLE_PERSO ) strcpy(text, "Customize your appearance");
- if ( num == RT_TITLE_WRITE ) strcpy(text, "Save the current mission");
- if ( num == RT_TITLE_READ ) strcpy(text, "Load a saved mission");
-
- if ( num == RT_PLAY_CHAPt ) strcpy(text, " Chapters:");
- if ( num == RT_PLAY_CHAPd ) strcpy(text, " Chapters:");
- if ( num == RT_PLAY_CHAPm ) strcpy(text, " Planets:");
- if ( num == RT_PLAY_CHAPf ) strcpy(text, " Planets:");
- if ( num == RT_PLAY_CHAPu ) strcpy(text, " User levels:");
- if ( num == RT_PLAY_CHAPp ) strcpy(text, " Planets:");
- if ( num == RT_PLAY_LISTt ) strcpy(text, " Exercises in the chapter:");
- if ( num == RT_PLAY_LISTd ) strcpy(text, " Challenges in the chapter:");
- if ( num == RT_PLAY_LISTm ) strcpy(text, " Missions on this planet:");
- if ( num == RT_PLAY_LISTf ) strcpy(text, " Free game on this planet:");
- if ( num == RT_PLAY_LISTu ) strcpy(text, " Missions on this level:");
- if ( num == RT_PLAY_LISTp ) strcpy(text, " Prototypes on this planet:");
- if ( num == RT_PLAY_RESUME ) strcpy(text, " Summary:");
-
- if ( num == RT_SETUP_DEVICE ) strcpy(text, " Drivers:");
- if ( num == RT_SETUP_MODE ) strcpy(text, " Resolution:");
- if ( num == RT_SETUP_KEY1 ) strcpy(text, "1) First click on the key you want to redefine.");
- if ( num == RT_SETUP_KEY2 ) strcpy(text, "2) Then push the key you want to use instead.");
-
- if ( num == RT_PERSO_FACE ) strcpy(text, "Face type:");
- if ( num == RT_PERSO_GLASSES ) strcpy(text, "Eyeglasses:");
- if ( num == RT_PERSO_HAIR ) strcpy(text, "Hair color:");
- if ( num == RT_PERSO_COMBI ) strcpy(text, "Suit color:");
- if ( num == RT_PERSO_BAND ) strcpy(text, "Strip color:");
-
- if ( num == RT_DIALOG_TITLE ) strcpy(text, "COLOBOT");
- if ( num == RT_DIALOG_ABORT ) strcpy(text, "Quit the mission?");
- if ( num == RT_DIALOG_QUIT ) strcpy(text, "Do you want to quit COLOBOT ?");
- if ( num == RT_DIALOG_YES ) strcpy(text, "Abort\\Abort the current mission");
- if ( num == RT_DIALOG_NO ) strcpy(text, "Continue\\Continue the current mission");
- if ( num == RT_DIALOG_YESQUIT ) strcpy(text, "Quit\\Quit COLOBOT");
- if ( num == RT_DIALOG_NOQUIT ) strcpy(text, "Continue\\Continue the game");
- if ( num == RT_DIALOG_DELOBJ ) strcpy(text, "Do you really want to destroy the selected building?");
- if ( num == RT_DIALOG_DELGAME ) strcpy(text, "Do you want to delete %s's saved games? ");
- if ( num == RT_DIALOG_YESDEL ) strcpy(text, "Delete");
- if ( num == RT_DIALOG_NODEL ) strcpy(text, "Cancel");
- if ( num == RT_DIALOG_LOADING ) strcpy(text, "LOADING");
-
- if ( num == RT_STUDIO_LISTTT ) strcpy(text, "Keyword help(\\key cbot;)");
- if ( num == RT_STUDIO_COMPOK ) strcpy(text, "Compilation ok (0 errors)");
- if ( num == RT_STUDIO_PROGSTOP ) strcpy(text, "Program finished");
-
- if ( num == RT_SATCOM_LIST ) strcpy(text, "\\b;List of objects\n");
- if ( num == RT_SATCOM_BOT ) strcpy(text, "\\b;Robots\n");
- if ( num == RT_SATCOM_BUILDING ) strcpy(text, "\\b;Buildings\n");
- if ( num == RT_SATCOM_FRET ) strcpy(text, "\\b;Moveable objects\n");
- if ( num == RT_SATCOM_ALIEN ) strcpy(text, "\\b;Aliens\n");
- if ( num == RT_SATCOM_NULL ) strcpy(text, "\\c; (none)\\n;\n");
- if ( num == RT_SATCOM_ERROR1 ) strcpy(text, "\\b;Error\n");
- if ( num == RT_SATCOM_ERROR2 ) strcpy(text, "The list is only available if a \\l;radar station\\u object\\radar; is working.\n");
-
- if ( num == RT_IO_OPEN ) strcpy(text, "Open");
- if ( num == RT_IO_SAVE ) strcpy(text, "Save");
- if ( num == RT_IO_LIST ) strcpy(text, "Folder: %s");
- if ( num == RT_IO_NAME ) strcpy(text, "Name:");
- if ( num == RT_IO_DIR ) strcpy(text, "Folder:");
- if ( num == RT_IO_PRIVATE ) strcpy(text, "Private\\Private folder");
- if ( num == RT_IO_PUBLIC ) strcpy(text, "Public\\Common folder");
-
- if ( num == RT_GENERIC_DEV1 ) strcpy(text, "Developed by :");
- if ( num == RT_GENERIC_DEV2 ) strcpy(text, "www.epsitec.com");
-//? if ( num == RT_GENERIC_EDIT1 ) strcpy(text, "English version published by:");
-//? if ( num == RT_GENERIC_EDIT2 ) strcpy(text, "www.?.com");
- if ( num == RT_GENERIC_EDIT1 ) strcpy(text, " ");
- if ( num == RT_GENERIC_EDIT2 ) strcpy(text, " ");
- }
-
- if ( type == RES_EVENT )
- {
- if ( num == EVENT_BUTTON_OK ) strcpy(text, "OK");
- if ( num == EVENT_BUTTON_CANCEL ) strcpy(text, "Cancel");
- if ( num == EVENT_BUTTON_NEXT ) strcpy(text, "Next");
- if ( num == EVENT_BUTTON_PREV ) strcpy(text, "Previous");
- if ( num == EVENT_BUTTON_QUIT ) strcpy(text, "Menu (\\key quit;)");
-
- if ( num == EVENT_DIALOG_OK ) strcpy(text, "OK");
- if ( num == EVENT_DIALOG_CANCEL ) strcpy(text, "Cancel");
-
- if ( num == EVENT_INTERFACE_TRAINER) strcpy(text, "Exercises\\Programming exercises");
- if ( num == EVENT_INTERFACE_DEFI ) strcpy(text, "Challenges\\Programming challenges");
- if ( num == EVENT_INTERFACE_MISSION) strcpy(text, "Missions\\Select mission");
- if ( num == EVENT_INTERFACE_FREE ) strcpy(text, "Free game\\Free game without precise goal");
- if ( num == EVENT_INTERFACE_USER ) strcpy(text, "User\\User levels");
- if ( num == EVENT_INTERFACE_PROTO ) strcpy(text, "Proto\\Prototypes under development");
- if ( num == EVENT_INTERFACE_NAME ) strcpy(text, "New player\\Choose player name");
- if ( num == EVENT_INTERFACE_SETUP ) strcpy(text, "Options\\Preferences");
- if ( num == EVENT_INTERFACE_AGAIN ) strcpy(text, "Restart\\Restart the mission from the beginning");
- if ( num == EVENT_INTERFACE_WRITE ) strcpy(text, "Save\\Save the current mission ");
- if ( num == EVENT_INTERFACE_READ ) strcpy(text, "Load\\Load a saved mission");
- if ( num == EVENT_INTERFACE_ABORT ) strcpy(text, "\\Return to COLOBOT");
- if ( num == EVENT_INTERFACE_QUIT ) strcpy(text, "Quit\\Quit COLOBOT");
- if ( num == EVENT_INTERFACE_BACK ) strcpy(text, "<< Back \\Back to the previous screen");
- if ( num == EVENT_INTERFACE_PLAY ) strcpy(text, "Play\\Start mission!");
- if ( num == EVENT_INTERFACE_SETUPd ) strcpy(text, "Device\\Driver and resolution settings");
- if ( num == EVENT_INTERFACE_SETUPg ) strcpy(text, "Graphics\\Graphics settings");
- if ( num == EVENT_INTERFACE_SETUPp ) strcpy(text, "Game\\Game settings");
- if ( num == EVENT_INTERFACE_SETUPc ) strcpy(text, "Controls\\Keyboard, joystick and mouse settings");
- if ( num == EVENT_INTERFACE_SETUPs ) strcpy(text, "Sound\\Music and game sound volume");
- if ( num == EVENT_INTERFACE_DEVICE ) strcpy(text, "Unit");
- if ( num == EVENT_INTERFACE_RESOL ) strcpy(text, "Resolution");
- if ( num == EVENT_INTERFACE_FULL ) strcpy(text, "Full screen\\Full screen or window mode");
- if ( num == EVENT_INTERFACE_APPLY ) strcpy(text, "Apply changes\\Activates the changed settings");
-
- if ( num == EVENT_INTERFACE_TOTO ) strcpy(text, "Robbie\\Your assistant");
- if ( num == EVENT_INTERFACE_SHADOW ) strcpy(text, "Shadows\\Shadows on the ground");
- if ( num == EVENT_INTERFACE_GROUND ) strcpy(text, "Marks on the ground\\Marks on the ground");
- if ( num == EVENT_INTERFACE_DIRTY ) strcpy(text, "Dust\\Dust and dirt on bots and buildings");
- if ( num == EVENT_INTERFACE_FOG ) strcpy(text, "Fog\\Fog");
- if ( num == EVENT_INTERFACE_LENS ) strcpy(text, "Sunbeams\\Sunbeams in the sky");
- if ( num == EVENT_INTERFACE_SKY ) strcpy(text, "Sky\\Clouds and nebulae");
- if ( num == EVENT_INTERFACE_PLANET ) strcpy(text, "Planets and stars\\Astronomical objects in the sky");
- if ( num == EVENT_INTERFACE_LIGHT ) strcpy(text, "Dynamic lighting\\Mobile light sources");
- if ( num == EVENT_INTERFACE_PARTI ) strcpy(text, "Number of particles\\Explosions, dust, reflections, etc.");
- if ( num == EVENT_INTERFACE_CLIP ) strcpy(text, "Depth of field\\Maximum visibility");
- if ( num == EVENT_INTERFACE_DETAIL ) strcpy(text, "Details\\Visual quality of 3D objects");
- if ( num == EVENT_INTERFACE_TEXTURE) strcpy(text, "Textures\\Quality of textures ");
- if ( num == EVENT_INTERFACE_GADGET ) strcpy(text, "Number of decorative objects \\Number of purely ornamental objects");
- if ( num == EVENT_INTERFACE_RAIN ) strcpy(text, "Particles in the interface\\Steam clouds and sparks in the interface");
- if ( num == EVENT_INTERFACE_GLINT ) strcpy(text, "Reflections on the buttons \\Shiny buttons");
- if ( num == EVENT_INTERFACE_TOOLTIP) strcpy(text, "Help balloons\\Explain the function of the buttons");
- if ( num == EVENT_INTERFACE_MOVIES ) strcpy(text, "Film sequences\\Films before and after the missions");
- if ( num == EVENT_INTERFACE_NICERST) strcpy(text, "Exit film\\Film at the exit of exercises");
- if ( num == EVENT_INTERFACE_HIMSELF) strcpy(text, "Friendly fire\\Your shooting can damage your own objects ");
- if ( num == EVENT_INTERFACE_SCROLL ) strcpy(text, "Scrolling\\Scrolling when the mouse touches right or left border");
- if ( num == EVENT_INTERFACE_INVERTX) strcpy(text, "Mouse inversion X\\Inversion of the scrolling direction on the X axis");
- if ( num == EVENT_INTERFACE_INVERTY) strcpy(text, "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis");
- if ( num == EVENT_INTERFACE_EFFECT ) strcpy(text, "Quake at explosions\\The screen shakes at explosions");
- if ( num == EVENT_INTERFACE_MOUSE ) strcpy(text, "Mouse shadow\\Gives the mouse a shadow");
- if ( num == EVENT_INTERFACE_EDITMODE) strcpy(text, "Automatic indent\\When program editing");
- if ( num == EVENT_INTERFACE_EDITVALUE)strcpy(text, "Big indent\\Indent 2 or 4 spaces per level defined by braces");
-
- if ( num == EVENT_INTERFACE_KDEF ) strcpy(text, "Standard controls\\Standard key functions");
- if ( num == EVENT_INTERFACE_KLEFT ) strcpy(text, "Turn left\\turns the bot to the left");
- if ( num == EVENT_INTERFACE_KRIGHT ) strcpy(text, "Turn right\\turns the bot to the right");
- if ( num == EVENT_INTERFACE_KUP ) strcpy(text, "Forward\\Moves forward");
- if ( num == EVENT_INTERFACE_KDOWN ) strcpy(text, "Backward\\Moves backward");
- if ( num == EVENT_INTERFACE_KGUP ) strcpy(text, "Climb\\Increases the power of the jet");
- if ( num == EVENT_INTERFACE_KGDOWN ) strcpy(text, "Descend\\Reduces the power of the jet");
- if ( num == EVENT_INTERFACE_KCAMERA) strcpy(text, "Change camera\\Switches between onboard camera and following camera");
- if ( num == EVENT_INTERFACE_KDESEL ) strcpy(text, "Previous object\\Selects the previous object");
- if ( num == EVENT_INTERFACE_KACTION) strcpy(text, "Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)");
- if ( num == EVENT_INTERFACE_KNEAR ) strcpy(text, "Camera closer\\Moves the camera forward");
- if ( num == EVENT_INTERFACE_KAWAY ) strcpy(text, "Camera back\\Moves the camera backward");
- if ( num == EVENT_INTERFACE_KNEXT ) strcpy(text, "Next object\\Selects the next object");
- if ( num == EVENT_INTERFACE_KHUMAN ) strcpy(text, "Select the astronaut\\Selects the astronaut");
- if ( num == EVENT_INTERFACE_KQUIT ) strcpy(text, "Quit\\Quit the current mission or exercise");
- if ( num == EVENT_INTERFACE_KHELP ) strcpy(text, "Instructions\\Shows the instructions for the current mission");
- if ( num == EVENT_INTERFACE_KPROG ) strcpy(text, "Programming help\\Gives more detailed help with programming");
- if ( num == EVENT_INTERFACE_KCBOT ) strcpy(text, "Key word help\\More detailed help about key words");
- if ( num == EVENT_INTERFACE_KVISIT ) strcpy(text, "Origin of last message\\Shows where the last message was sent from");
- if ( num == EVENT_INTERFACE_KSPEED10) strcpy(text, "Speed 1.0x\\Normal speed");
- if ( num == EVENT_INTERFACE_KSPEED15) strcpy(text, "Speed 1.5x\\1.5 times faster");
- if ( num == EVENT_INTERFACE_KSPEED20) strcpy(text, "Speed 2.0x\\Double speed");
- if ( num == EVENT_INTERFACE_KSPEED30) strcpy(text, "Speed 3.0x\\Three times faster");
-
- if ( num == EVENT_INTERFACE_VOLSOUND) strcpy(text, "Sound effects:\\Volume of engines, voice, shooting, etc.");
- if ( num == EVENT_INTERFACE_VOLMUSIC) strcpy(text, "Background sound :\\Volume of audio tracks on the CD");
- if ( num == EVENT_INTERFACE_SOUND3D) strcpy(text, "3D sound\\3D positioning of the sound");
-
- if ( num == EVENT_INTERFACE_MIN ) strcpy(text, "Lowest\\Minimum graphic quality (highest frame rate)");
- if ( num == EVENT_INTERFACE_NORM ) strcpy(text, "Normal\\Normal graphic quality");
- if ( num == EVENT_INTERFACE_MAX ) strcpy(text, "Highest\\Highest graphic quality (lowest frame rate)");
-
- if ( num == EVENT_INTERFACE_SILENT ) strcpy(text, "Silent\\No sound");
- if ( num == EVENT_INTERFACE_NOISY ) strcpy(text, "Normal\\Normal sound volume");
-
- if ( num == EVENT_INTERFACE_JOYSTICK) strcpy(text, "Use a joystick\\Joystick or keyboard");
- if ( num == EVENT_INTERFACE_SOLUCE ) strcpy(text, "Access to solution\\Shows the solution (detailed instructions for missions)");
-
- if ( num == EVENT_INTERFACE_NEDIT ) strcpy(text, "\\New player name");
- if ( num == EVENT_INTERFACE_NOK ) strcpy(text, "OK\\Choose the selected player");
- if ( num == EVENT_INTERFACE_NCANCEL) strcpy(text, "Cancel\\Keep current player name");
- if ( num == EVENT_INTERFACE_NDELETE) strcpy(text, "Delete player\\Deletes the player from the list");
- if ( num == EVENT_INTERFACE_NLABEL ) strcpy(text, "Player name");
-
- if ( num == EVENT_INTERFACE_IOWRITE) strcpy(text, "Save\\Saves the current mission");
- if ( num == EVENT_INTERFACE_IOREAD ) strcpy(text, "Load\\Loads the selected mission");
- if ( num == EVENT_INTERFACE_IOLIST ) strcpy(text, "List of saved missions");
- if ( num == EVENT_INTERFACE_IOLABEL) strcpy(text, "Filename:");
- if ( num == EVENT_INTERFACE_IONAME ) strcpy(text, "Mission name");
- if ( num == EVENT_INTERFACE_IOIMAGE) strcpy(text, "Photography");
- if ( num == EVENT_INTERFACE_IODELETE) strcpy(text, "Delete\\Deletes the selected file");
-
- if ( num == EVENT_INTERFACE_PERSO ) strcpy(text, "Appearance\\Choose your appearance");
- if ( num == EVENT_INTERFACE_POK ) strcpy(text, "OK");
- if ( num == EVENT_INTERFACE_PCANCEL) strcpy(text, "Cancel");
- if ( num == EVENT_INTERFACE_PDEF ) strcpy(text, "Standard\\Standard appearance settings");
- if ( num == EVENT_INTERFACE_PHEAD ) strcpy(text, "Head\\Face and hair");
- if ( num == EVENT_INTERFACE_PBODY ) strcpy(text, "Suit\\Astronaut suit");
- if ( num == EVENT_INTERFACE_PLROT ) strcpy(text, "\\Turn left");
- if ( num == EVENT_INTERFACE_PRROT ) strcpy(text, "\\Turn right");
- if ( num == EVENT_INTERFACE_PCRa ) strcpy(text, "Red");
- if ( num == EVENT_INTERFACE_PCGa ) strcpy(text, "Green");
- if ( num == EVENT_INTERFACE_PCBa ) strcpy(text, "Blue");
- if ( num == EVENT_INTERFACE_PCRb ) strcpy(text, "Red");
- if ( num == EVENT_INTERFACE_PCGb ) strcpy(text, "Green");
- if ( num == EVENT_INTERFACE_PCBb ) strcpy(text, "Blue");
- if ( num == EVENT_INTERFACE_PFACE1 ) strcpy(text, "\\Face 1");
- if ( num == EVENT_INTERFACE_PFACE2 ) strcpy(text, "\\Face 4");
- if ( num == EVENT_INTERFACE_PFACE3 ) strcpy(text, "\\Face 3");
- if ( num == EVENT_INTERFACE_PFACE4 ) strcpy(text, "\\Face 2");
- if ( num == EVENT_INTERFACE_PGLASS0) strcpy(text, "\\No eyeglasses");
- if ( num == EVENT_INTERFACE_PGLASS1) strcpy(text, "\\Eyeglasses 1");
- if ( num == EVENT_INTERFACE_PGLASS2) strcpy(text, "\\Eyeglasses 2");
- if ( num == EVENT_INTERFACE_PGLASS3) strcpy(text, "\\Eyeglasses 3");
- if ( num == EVENT_INTERFACE_PGLASS4) strcpy(text, "\\Eyeglasses 4");
- if ( num == EVENT_INTERFACE_PGLASS5) strcpy(text, "\\Eyeglasses 5");
-
- if ( num == EVENT_OBJECT_DESELECT ) strcpy(text, "Previous selection (\\key desel;)");
- if ( num == EVENT_OBJECT_LEFT ) strcpy(text, "Turn left (\\key left;)");
- if ( num == EVENT_OBJECT_RIGHT ) strcpy(text, "Turn right (\\key right;)");
- if ( num == EVENT_OBJECT_UP ) strcpy(text, "Forward (\\key up;)");
- if ( num == EVENT_OBJECT_DOWN ) strcpy(text, "Backward (\\key down;)");
- if ( num == EVENT_OBJECT_GASUP ) strcpy(text, "Up (\\key gup;)");
- if ( num == EVENT_OBJECT_GASDOWN ) strcpy(text, "Down (\\key gdown;)");
- if ( num == EVENT_OBJECT_HTAKE ) strcpy(text, "Grab or drop (\\key action;)");
- if ( num == EVENT_OBJECT_MTAKE ) strcpy(text, "Grab or drop (\\key action;)");
- if ( num == EVENT_OBJECT_MFRONT ) strcpy(text, "..in front");
- if ( num == EVENT_OBJECT_MBACK ) strcpy(text, "..behind");
- if ( num == EVENT_OBJECT_MPOWER ) strcpy(text, "..power cell");
- if ( num == EVENT_OBJECT_BHELP ) strcpy(text, "Instructions for the mission (\\key help;)");
- if ( num == EVENT_OBJECT_BTAKEOFF ) strcpy(text, "Take off to finish the mission");
- if ( num == EVENT_OBJECT_BDERRICK ) strcpy(text, "Build a derrick");
- if ( num == EVENT_OBJECT_BSTATION ) strcpy(text, "Build a power station");
- if ( num == EVENT_OBJECT_BFACTORY ) strcpy(text, "Build a bot factory");
- if ( num == EVENT_OBJECT_BREPAIR ) strcpy(text, "Build a repair center");
- if ( num == EVENT_OBJECT_BCONVERT ) strcpy(text, "Build a converter");
- if ( num == EVENT_OBJECT_BTOWER ) strcpy(text, "Build a defense tower");
- if ( num == EVENT_OBJECT_BRESEARCH ) strcpy(text, "Build a research center");
- if ( num == EVENT_OBJECT_BRADAR ) strcpy(text, "Build a radar station");
- if ( num == EVENT_OBJECT_BENERGY ) strcpy(text, "Build a power cell factory");
- if ( num == EVENT_OBJECT_BLABO ) strcpy(text, "Build an autolab");
- if ( num == EVENT_OBJECT_BNUCLEAR ) strcpy(text, "Build a nuclear power plant");
- if ( num == EVENT_OBJECT_BPARA ) strcpy(text, "Build a lightning conductor");
- if ( num == EVENT_OBJECT_BINFO ) strcpy(text, "Build a exchange post");
- if ( num == EVENT_OBJECT_GFLAT ) strcpy(text, "Show if the ground is flat");
- if ( num == EVENT_OBJECT_FCREATE ) strcpy(text, "Plant a flag");
- if ( num == EVENT_OBJECT_FDELETE ) strcpy(text, "Remove a flag");
- if ( num == EVENT_OBJECT_FCOLORb ) strcpy(text, "\\Blue flags");
- if ( num == EVENT_OBJECT_FCOLORr ) strcpy(text, "\\Red flags");
- if ( num == EVENT_OBJECT_FCOLORg ) strcpy(text, "\\Green flags");
- if ( num == EVENT_OBJECT_FCOLORy ) strcpy(text, "\\Yellow flags");
- if ( num == EVENT_OBJECT_FCOLORv ) strcpy(text, "\\Violet flags");
- if ( num == EVENT_OBJECT_FACTORYfa ) strcpy(text, "Build a winged grabber");
- if ( num == EVENT_OBJECT_FACTORYta ) strcpy(text, "Build a tracked grabber");
- if ( num == EVENT_OBJECT_FACTORYwa ) strcpy(text, "Build a wheeled grabber");
- if ( num == EVENT_OBJECT_FACTORYia ) strcpy(text, "Build a legged grabber");
- if ( num == EVENT_OBJECT_FACTORYfc ) strcpy(text, "Build a winged shooter");
- if ( num == EVENT_OBJECT_FACTORYtc ) strcpy(text, "Build a tracked shooter");
- if ( num == EVENT_OBJECT_FACTORYwc ) strcpy(text, "Build a wheeled shooter");
- if ( num == EVENT_OBJECT_FACTORYic ) strcpy(text, "Build a legged shooter");
- if ( num == EVENT_OBJECT_FACTORYfi ) strcpy(text, "Build a winged orga shooter");
- if ( num == EVENT_OBJECT_FACTORYti ) strcpy(text, "Build a tracked orga shooter");
- if ( num == EVENT_OBJECT_FACTORYwi ) strcpy(text, "Build a wheeled orga shooter");
- if ( num == EVENT_OBJECT_FACTORYii ) strcpy(text, "Build a legged orga shooter");
- if ( num == EVENT_OBJECT_FACTORYfs ) strcpy(text, "Build a winged sniffer");
- if ( num == EVENT_OBJECT_FACTORYts ) strcpy(text, "Build a tracked sniffer");
- if ( num == EVENT_OBJECT_FACTORYws ) strcpy(text, "Build a wheeled sniffer");
- if ( num == EVENT_OBJECT_FACTORYis ) strcpy(text, "Build a legged sniffer");
- if ( num == EVENT_OBJECT_FACTORYrt ) strcpy(text, "Build a thumper");
- if ( num == EVENT_OBJECT_FACTORYrc ) strcpy(text, "Build a phazer shooter");
- if ( num == EVENT_OBJECT_FACTORYrr ) strcpy(text, "Build a recycler");
- if ( num == EVENT_OBJECT_FACTORYrs ) strcpy(text, "Build a shielder");
- if ( num == EVENT_OBJECT_FACTORYsa ) strcpy(text, "Build a subber");
- if ( num == EVENT_OBJECT_RTANK ) strcpy(text, "Run research program for tracked bots");
- if ( num == EVENT_OBJECT_RFLY ) strcpy(text, "Run research program for winged bots");
- if ( num == EVENT_OBJECT_RTHUMP ) strcpy(text, "Run research program for thumper");
- if ( num == EVENT_OBJECT_RCANON ) strcpy(text, "Run research program for shooter");
- if ( num == EVENT_OBJECT_RTOWER ) strcpy(text, "Run research program for defense tower");
- if ( num == EVENT_OBJECT_RPHAZER ) strcpy(text, "Run research program for phazer shooter");
- if ( num == EVENT_OBJECT_RSHIELD ) strcpy(text, "Run research program for shielder");
- if ( num == EVENT_OBJECT_RATOMIC ) strcpy(text, "Run research program for nuclear power");
- if ( num == EVENT_OBJECT_RiPAW ) strcpy(text, "Run research program for legged bots");
- if ( num == EVENT_OBJECT_RiGUN ) strcpy(text, "Run research program for orga shooter");
- if ( num == EVENT_OBJECT_RESET ) strcpy(text, "Return to start");
- if ( num == EVENT_OBJECT_SEARCH ) strcpy(text, "Sniff (\\key action;)");
- if ( num == EVENT_OBJECT_TERRAFORM ) strcpy(text, "Thump (\\key action;)");
- if ( num == EVENT_OBJECT_FIRE ) strcpy(text, "Shoot (\\key action;)");
- if ( num == EVENT_OBJECT_RECOVER ) strcpy(text, "Recycle (\\key action;)");
- if ( num == EVENT_OBJECT_BEGSHIELD ) strcpy(text, "Extend shield (\\key action;)");
- if ( num == EVENT_OBJECT_ENDSHIELD ) strcpy(text, "Withdraw shield (\\key action;)");
- if ( num == EVENT_OBJECT_DIMSHIELD ) strcpy(text, "Shield radius");
- if ( num == EVENT_OBJECT_PROGRUN ) strcpy(text, "Execute the selected program");
- if ( num == EVENT_OBJECT_PROGEDIT ) strcpy(text, "Edit the selected program");
- if ( num == EVENT_OBJECT_INFOOK ) strcpy(text, "\\SatCom on standby");
- if ( num == EVENT_OBJECT_DELETE ) strcpy(text, "Destroy the building");
- if ( num == EVENT_OBJECT_GENERGY ) strcpy(text, "Energy level");
- if ( num == EVENT_OBJECT_GSHIELD ) strcpy(text, "Shield level");
- if ( num == EVENT_OBJECT_GRANGE ) strcpy(text, "Jet temperature");
- if ( num == EVENT_OBJECT_GPROGRESS ) strcpy(text, "Still working ...");
- if ( num == EVENT_OBJECT_GRADAR ) strcpy(text, "Number of insects detected");
- if ( num == EVENT_OBJECT_GINFO ) strcpy(text, "Transmitted information");
- if ( num == EVENT_OBJECT_COMPASS ) strcpy(text, "Compass");
-//? if ( num == EVENT_OBJECT_MAP ) strcpy(text, "Mini-map");
- if ( num == EVENT_OBJECT_MAPZOOM ) strcpy(text, "Zoom mini-map");
- if ( num == EVENT_OBJECT_CAMERA ) strcpy(text, "Camera (\\key camera;)");
- if ( num == EVENT_OBJECT_HELP ) strcpy(text, "Help about selected object");
- if ( num == EVENT_OBJECT_SOLUCE ) strcpy(text, "Show the solution");
- if ( num == EVENT_OBJECT_SHORTCUT00) strcpy(text, "Switch bots <-> buildings");
- if ( num == EVENT_OBJECT_LIMIT ) strcpy(text, "Show the range");
- if ( num == EVENT_DT_VISIT0 ||
- num == EVENT_DT_VISIT1 ||
- num == EVENT_DT_VISIT2 ||
- num == EVENT_DT_VISIT3 ||
- num == EVENT_DT_VISIT4 ) strcpy(text, "Show the place");
- if ( num == EVENT_DT_END ) strcpy(text, "Continue");
- if ( num == EVENT_CMD ) strcpy(text, "Command line");
- if ( num == EVENT_SPEED ) strcpy(text, "Game speed");
-
- if ( num == EVENT_HYPER_PREV ) strcpy(text, "Back");
- if ( num == EVENT_HYPER_NEXT ) strcpy(text, "Forward");
- if ( num == EVENT_HYPER_HOME ) strcpy(text, "Home");
- if ( num == EVENT_HYPER_COPY ) strcpy(text, "Copy");
- if ( num == EVENT_HYPER_SIZE1 ) strcpy(text, "Size 1");
- if ( num == EVENT_HYPER_SIZE2 ) strcpy(text, "Size 2");
- if ( num == EVENT_HYPER_SIZE3 ) strcpy(text, "Size 3");
- if ( num == EVENT_HYPER_SIZE4 ) strcpy(text, "Size 4");
- if ( num == EVENT_HYPER_SIZE5 ) strcpy(text, "Size 5");
- if ( num == EVENT_SATCOM_HUSTON ) strcpy(text, "Instructions from Houston");
- if ( num == EVENT_SATCOM_SAT ) strcpy(text, "Satellite report");
- if ( num == EVENT_SATCOM_LOADING ) strcpy(text, "Programs dispatched by Houston");
- if ( num == EVENT_SATCOM_OBJECT ) strcpy(text, "List of objects");
- if ( num == EVENT_SATCOM_PROG ) strcpy(text, "Programming help");
- if ( num == EVENT_SATCOM_SOLUCE ) strcpy(text, "Solution");
-
- if ( num == EVENT_STUDIO_OK ) strcpy(text, "OK\\Close program editor and return to game");
- if ( num == EVENT_STUDIO_CANCEL ) strcpy(text, "Cancel\\Cancel all changes");
- if ( num == EVENT_STUDIO_NEW ) strcpy(text, "New");
- if ( num == EVENT_STUDIO_OPEN ) strcpy(text, "Open (Ctrl+o)");
- if ( num == EVENT_STUDIO_SAVE ) strcpy(text, "Save (Ctrl+s)");
- if ( num == EVENT_STUDIO_UNDO ) strcpy(text, "Undo (Ctrl+z)");
- if ( num == EVENT_STUDIO_CUT ) strcpy(text, "Cut (Ctrl+x)");
- if ( num == EVENT_STUDIO_COPY ) strcpy(text, "Copy (Ctrl+c)");
- if ( num == EVENT_STUDIO_PASTE ) strcpy(text, "Paste (Ctrl+v)");
- if ( num == EVENT_STUDIO_SIZE ) strcpy(text, "Font size");
- if ( num == EVENT_STUDIO_TOOL ) strcpy(text, "Instructions (\\key help;)");
- if ( num == EVENT_STUDIO_HELP ) strcpy(text, "Programming help (\\key prog;)");
- if ( num == EVENT_STUDIO_COMPILE ) strcpy(text, "Compile");
- if ( num == EVENT_STUDIO_RUN ) strcpy(text, "Execute/stop");
- if ( num == EVENT_STUDIO_REALTIME ) strcpy(text, "Pause/continue");
- if ( num == EVENT_STUDIO_STEP ) strcpy(text, "One step");
- }
-
- if ( type == RES_OBJECT )
- {
- if ( num == OBJECT_PORTICO ) strcpy(text, "Gantry crane");
- if ( num == OBJECT_BASE ) strcpy(text, "Spaceship");
- if ( num == OBJECT_DERRICK ) strcpy(text, "Derrick");
- if ( num == OBJECT_FACTORY ) strcpy(text, "Bot factory");
- if ( num == OBJECT_REPAIR ) strcpy(text, "Repair center");
- if ( num == OBJECT_STATION ) strcpy(text, "Power station");
- if ( num == OBJECT_CONVERT ) strcpy(text, "Converts ore to titanium");
- if ( num == OBJECT_TOWER ) strcpy(text, "Defense tower");
- if ( num == OBJECT_NEST ) strcpy(text, "Nest");
- if ( num == OBJECT_RESEARCH ) strcpy(text, "Research center");
- if ( num == OBJECT_RADAR ) strcpy(text, "Radar station");
- if ( num == OBJECT_INFO ) strcpy(text, "Information exchange post");
- if ( num == OBJECT_ENERGY ) strcpy(text, "Power cell factory");
- if ( num == OBJECT_LABO ) strcpy(text, "Autolab");
- if ( num == OBJECT_NUCLEAR ) strcpy(text, "Nuclear power station");
- if ( num == OBJECT_PARA ) strcpy(text, "Lightning conductor");
- if ( num == OBJECT_SAFE ) strcpy(text, "Vault");
- if ( num == OBJECT_HUSTON ) strcpy(text, "Houston Mission Control");
- if ( num == OBJECT_TARGET1 ) strcpy(text, "Target");
- if ( num == OBJECT_TARGET2 ) strcpy(text, "Target");
- if ( num == OBJECT_START ) strcpy(text, "Start");
- if ( num == OBJECT_END ) strcpy(text, "Finish");
- if ( num == OBJECT_STONE ) strcpy(text, "Titanium ore");
- if ( num == OBJECT_URANIUM ) strcpy(text, "Uranium ore");
- if ( num == OBJECT_BULLET ) strcpy(text, "Organic matter");
- if ( num == OBJECT_METAL ) strcpy(text, "Titanium");
- if ( num == OBJECT_POWER ) strcpy(text, "Power cell");
- if ( num == OBJECT_ATOMIC ) strcpy(text, "Nuclear power cell");
- if ( num == OBJECT_BBOX ) strcpy(text, "Black box");
- if ( num == OBJECT_KEYa ) strcpy(text, "Key A");
- if ( num == OBJECT_KEYb ) strcpy(text, "Key B");
- if ( num == OBJECT_KEYc ) strcpy(text, "Key C");
- if ( num == OBJECT_KEYd ) strcpy(text, "Key D");
- if ( num == OBJECT_TNT ) strcpy(text, "Explosive");
- if ( num == OBJECT_BOMB ) strcpy(text, "Fixed mine");
- if ( num == OBJECT_BAG ) strcpy(text, "Survival kit");
- if ( num == OBJECT_WAYPOINT ) strcpy(text, "Checkpoint");
- if ( num == OBJECT_FLAGb ) strcpy(text, "Blue flag");
- if ( num == OBJECT_FLAGr ) strcpy(text, "Red flag");
- if ( num == OBJECT_FLAGg ) strcpy(text, "Green flag");
- if ( num == OBJECT_FLAGy ) strcpy(text, "Yellow flag");
- if ( num == OBJECT_FLAGv ) strcpy(text, "Violet flag");
- if ( num == OBJECT_MARKPOWER ) strcpy(text, "Energy deposit (site for power station)");
- if ( num == OBJECT_MARKURANIUM ) strcpy(text, "Uranium deposit (site for derrick)");
- if ( num == OBJECT_MARKKEYa ) strcpy(text, "Found key A (site for derrick)");
- if ( num == OBJECT_MARKKEYb ) strcpy(text, "Found key B (site for derrick)");
- if ( num == OBJECT_MARKKEYc ) strcpy(text, "Found key C (site for derrick)");
- if ( num == OBJECT_MARKKEYd ) strcpy(text, "Found key D (site for derrick)");
- if ( num == OBJECT_MARKSTONE ) strcpy(text, "Titanium deposit (site for derrick)");
- if ( num == OBJECT_MOBILEft ) strcpy(text, "Practice bot");
- if ( num == OBJECT_MOBILEtt ) strcpy(text, "Practice bot");
- if ( num == OBJECT_MOBILEwt ) strcpy(text, "Practice bot");
- if ( num == OBJECT_MOBILEit ) strcpy(text, "Practice bot");
- if ( num == OBJECT_MOBILEfa ) strcpy(text, "Winged grabber");
- if ( num == OBJECT_MOBILEta ) strcpy(text, "Tracked grabber");
- if ( num == OBJECT_MOBILEwa ) strcpy(text, "Wheeled grabber");
- if ( num == OBJECT_MOBILEia ) strcpy(text, "Legged grabber");
- if ( num == OBJECT_MOBILEfc ) strcpy(text, "Winged shooter");
- if ( num == OBJECT_MOBILEtc ) strcpy(text, "Tracked shooter");
- if ( num == OBJECT_MOBILEwc ) strcpy(text, "Wheeled shooter");
- if ( num == OBJECT_MOBILEic ) strcpy(text, "Legged shooter");
- if ( num == OBJECT_MOBILEfi ) strcpy(text, "Winged orga shooter");
- if ( num == OBJECT_MOBILEti ) strcpy(text, "Tracked orga shooter");
- if ( num == OBJECT_MOBILEwi ) strcpy(text, "Wheeled orga shooter");
- if ( num == OBJECT_MOBILEii ) strcpy(text, "Legged orga shooter");
- if ( num == OBJECT_MOBILEfs ) strcpy(text, "Winged sniffer");
- if ( num == OBJECT_MOBILEts ) strcpy(text, "Tracked sniffer");
- if ( num == OBJECT_MOBILEws ) strcpy(text, "Wheeled sniffer");
- if ( num == OBJECT_MOBILEis ) strcpy(text, "Legged sniffer");
- if ( num == OBJECT_MOBILErt ) strcpy(text, "Thumper");
- if ( num == OBJECT_MOBILErc ) strcpy(text, "Phazer shooter");
- if ( num == OBJECT_MOBILErr ) strcpy(text, "Recycler");
- if ( num == OBJECT_MOBILErs ) strcpy(text, "Shielder");
- if ( num == OBJECT_MOBILEsa ) strcpy(text, "Subber");
- if ( num == OBJECT_MOBILEtg ) strcpy(text, "Target bot");
- if ( num == OBJECT_HUMAN ) strcpy(text, g_gamerName);
- if ( num == OBJECT_TECH ) strcpy(text, "Engineer");
- if ( num == OBJECT_TOTO ) strcpy(text, "Robbie");
- if ( num == OBJECT_MOTHER ) strcpy(text, "Alien Queen");
- if ( num == OBJECT_ANT ) strcpy(text, "Ant");
- if ( num == OBJECT_SPIDER ) strcpy(text, "Spider");
- if ( num == OBJECT_BEE ) strcpy(text, "Wasp");
- if ( num == OBJECT_WORM ) strcpy(text, "Worm");
- if ( num == OBJECT_EGG ) strcpy(text, "Egg");
- if ( num == OBJECT_RUINmobilew1 ) strcpy(text, "Wreckage");
- if ( num == OBJECT_RUINmobilew2 ) strcpy(text, "Wreckage");
- if ( num == OBJECT_RUINmobilet1 ) strcpy(text, "Wreckage");
- if ( num == OBJECT_RUINmobilet2 ) strcpy(text, "Wreckage");
- if ( num == OBJECT_RUINmobiler1 ) strcpy(text, "Wreckage");
- if ( num == OBJECT_RUINmobiler2 ) strcpy(text, "Wreckage");
- if ( num == OBJECT_RUINfactory ) strcpy(text, "Ruin");
- if ( num == OBJECT_RUINdoor ) strcpy(text, "Ruin");
- if ( num == OBJECT_RUINsupport ) strcpy(text, "Waste");
- if ( num == OBJECT_RUINradar ) strcpy(text, "Ruin");
- if ( num == OBJECT_RUINconvert ) strcpy(text, "Ruin");
- if ( num == OBJECT_RUINbase ) strcpy(text, "Spaceship ruin");
- if ( num == OBJECT_RUINhead ) strcpy(text, "Spaceship ruin");
- if ( num == OBJECT_APOLLO1 ||
- num == OBJECT_APOLLO3 ||
- num == OBJECT_APOLLO4 ||
- num == OBJECT_APOLLO5 ) strcpy(text, "Derelict of Apollo mission");
- if ( num == OBJECT_APOLLO2 ) strcpy(text, "Lunar Roving Vehicle");
- }
-
- if ( type == RES_ERR )
- {
- strcpy(text, "Error");
- if ( num == ERR_CMD ) strcpy(text, "Unknown command");
- if ( num == ERR_INSTALL ) strcpy(text, "COLOBOT not installed.");
- if ( num == ERR_NOCD ) strcpy(text, "Please insert the COLOBOT CD\nand re-run the game.");
- if ( num == ERR_MANIP_VEH ) strcpy(text, "Inappropriate bot");
- if ( num == ERR_MANIP_FLY ) strcpy(text, "Impossible when flying");
- if ( num == ERR_MANIP_BUSY ) strcpy(text, "Already carrying something");
- if ( num == ERR_MANIP_NIL ) strcpy(text, "Nothing to grab");
- if ( num == ERR_MANIP_MOTOR ) strcpy(text, "Impossible when moving");
- if ( num == ERR_MANIP_OCC ) strcpy(text, "Place occupied");
- if ( num == ERR_MANIP_FRIEND ) strcpy(text, "No other robot");
- if ( num == ERR_MANIP_RADIO ) strcpy(text, "You can not carry a radioactive object");
- if ( num == ERR_MANIP_WATER ) strcpy(text, "You can not carry an object under water");
- if ( num == ERR_MANIP_EMPTY ) strcpy(text, "Nothing to drop");
- if ( num == ERR_BUILD_FLY ) strcpy(text, "Impossible when flying");
- if ( num == ERR_BUILD_WATER ) strcpy(text, "Impossible under water");
- if ( num == ERR_BUILD_ENERGY ) strcpy(text, "Not enough energy");
- if ( num == ERR_BUILD_METALAWAY ) strcpy(text, "Titanium too far away");
- if ( num == ERR_BUILD_METALNEAR ) strcpy(text, "Titanium too close");
- if ( num == ERR_BUILD_METALINEX ) strcpy(text, "No titanium around");
- if ( num == ERR_BUILD_FLAT ) strcpy(text, "Ground not flat enough");
- if ( num == ERR_BUILD_FLATLIT ) strcpy(text, "Flat ground not large enough");
- if ( num == ERR_BUILD_BUSY ) strcpy(text, "Place occupied");
- if ( num == ERR_BUILD_BASE ) strcpy(text, "Too close to space ship");
- if ( num == ERR_BUILD_NARROW ) strcpy(text, "Too close to a building");
- if ( num == ERR_BUILD_MOTOR ) strcpy(text, "Impossible when moving");
- if ( num == ERR_SEARCH_FLY ) strcpy(text, "Impossible when flying");
- if ( num == ERR_SEARCH_VEH ) strcpy(text, "Bot inappropriate");
- if ( num == ERR_SEARCH_MOTOR ) strcpy(text, "Impossible when moving");
- if ( num == ERR_TERRA_VEH ) strcpy(text, "Bot inappropriate");
- if ( num == ERR_TERRA_ENERGY ) strcpy(text, "Not enough energy");
- if ( num == ERR_TERRA_FLOOR ) strcpy(text, "Ground inappropriate");
- if ( num == ERR_TERRA_BUILDING ) strcpy(text, "Building too close");
- if ( num == ERR_TERRA_OBJECT ) strcpy(text, "Object too close");
- if ( num == ERR_RECOVER_VEH ) strcpy(text, "Bot inappropriate");
- if ( num == ERR_RECOVER_ENERGY ) strcpy(text, "Not enough energy");
- if ( num == ERR_RECOVER_NULL ) strcpy(text, "Nothing to recycle");
- if ( num == ERR_SHIELD_VEH ) strcpy(text, "Bot inappropriate");
- if ( num == ERR_SHIELD_ENERGY ) strcpy(text, "No more energy");
- if ( num == ERR_MOVE_IMPOSSIBLE ) strcpy(text, "Error in instruction move");
- if ( num == ERR_GOTO_IMPOSSIBLE ) strcpy(text, "Goto: destination inaccessible");
- if ( num == ERR_GOTO_ITER ) strcpy(text, "Goto: destination inaccessible");
- if ( num == ERR_GOTO_BUSY ) strcpy(text, "Goto: destination occupied");
- if ( num == ERR_FIRE_VEH ) strcpy(text, "Bot inappropriate");
- if ( num == ERR_FIRE_ENERGY ) strcpy(text, "Not enough energy");
- if ( num == ERR_FIRE_FLY ) strcpy(text, "Impossible when flying");
- if ( num == ERR_CONVERT_EMPTY ) strcpy(text, "No titanium ore to convert");
- if ( num == ERR_DERRICK_NULL ) strcpy(text, "No ore in the subsoil");
- if ( num == ERR_STATION_NULL ) strcpy(text, "No energy in the subsoil");
- if ( num == ERR_TOWER_POWER ) strcpy(text, "No power cell");
- if ( num == ERR_TOWER_ENERGY ) strcpy(text, "No more energy");
- if ( num == ERR_RESEARCH_POWER ) strcpy(text, "No power cell");
- if ( num == ERR_RESEARCH_ENERGY ) strcpy(text, "Not enough energy");
- if ( num == ERR_RESEARCH_TYPE ) strcpy(text, "Cell type inappropriate");
- if ( num == ERR_RESEARCH_ALREADY) strcpy(text, "Research program already performed");
- if ( num == ERR_ENERGY_NULL ) strcpy(text, "No energy in the subsoil");
- if ( num == ERR_ENERGY_LOW ) strcpy(text, "Not yet enough energy");
- if ( num == ERR_ENERGY_EMPTY ) strcpy(text, "No titanium to transform");
- if ( num == ERR_ENERGY_BAD ) strcpy(text, "Transforms only titanium");
- if ( num == ERR_BASE_DLOCK ) strcpy(text, "Doors blocked by a robot or another object ");
- if ( num == ERR_BASE_DHUMAN ) strcpy(text, "You must get on the spaceship to take off ");
- if ( num == ERR_LABO_NULL ) strcpy(text, "Nothing to analyze");
- if ( num == ERR_LABO_BAD ) strcpy(text, "Analyzes only organic matter");
- if ( num == ERR_LABO_ALREADY ) strcpy(text, "Analysis already performed");
- if ( num == ERR_NUCLEAR_NULL ) strcpy(text, "No energy in the subsoil");
- if ( num == ERR_NUCLEAR_LOW ) strcpy(text, "Not yet enough energy");
- if ( num == ERR_NUCLEAR_EMPTY ) strcpy(text, "No uranium to transform");
- if ( num == ERR_NUCLEAR_BAD ) strcpy(text, "Transforms only uranium");
- if ( num == ERR_FACTORY_NULL ) strcpy(text, "No titanium");
- if ( num == ERR_FACTORY_NEAR ) strcpy(text, "Object too close");
- if ( num == ERR_RESET_NEAR ) strcpy(text, "Place occupied");
- if ( num == ERR_INFO_NULL ) strcpy(text, "No information exchange post within range");
- if ( num == ERR_VEH_VIRUS ) strcpy(text, "Program infected by a virus");
- if ( num == ERR_BAT_VIRUS ) strcpy(text, "Infected by a virus, temporarily out of order");
- if ( num == ERR_VEH_POWER ) strcpy(text, "No power cell");
- if ( num == ERR_VEH_ENERGY ) strcpy(text, "No more energy");
- if ( num == ERR_FLAG_FLY ) strcpy(text, "Impossible when flying");
- if ( num == ERR_FLAG_WATER ) strcpy(text, "Impossible when swimming");
- if ( num == ERR_FLAG_MOTOR ) strcpy(text, "Impossible when moving");
- if ( num == ERR_FLAG_BUSY ) strcpy(text, "Impossible when carrying an object");
- if ( num == ERR_FLAG_CREATE ) strcpy(text, "Too many flags of this color (maximum 5)");
- if ( num == ERR_FLAG_PROXY ) strcpy(text, "Too close to an existing flag");
- if ( num == ERR_FLAG_DELETE ) strcpy(text, "No flag nearby");
- if ( num == ERR_MISSION_NOTERM ) strcpy(text, "The mission is not accomplished yet (push \\key help; for more details)");
- if ( num == ERR_DELETEMOBILE ) strcpy(text, "Bot destroyed");
- if ( num == ERR_DELETEBUILDING ) strcpy(text, "Building destroyed");
- if ( num == ERR_TOOMANY ) strcpy(text, "Can not create this, there are too many objects");
-
- if ( num == INFO_BUILD ) strcpy(text, "Building completed");
- if ( num == INFO_CONVERT ) strcpy(text, "Titanium available");
- if ( num == INFO_RESEARCH ) strcpy(text, "Research program completed");
- if ( num == INFO_RESEARCHTANK ) strcpy(text, "Plans for tracked robots available ");
- if ( num == INFO_RESEARCHFLY ) strcpy(text, "You can fly with the keys (\\key gup;) and (\\key gdown;)");
- if ( num == INFO_RESEARCHTHUMP ) strcpy(text, "Plans for thumper available");
- if ( num == INFO_RESEARCHCANON ) strcpy(text, "Plans for shooter available");
- if ( num == INFO_RESEARCHTOWER ) strcpy(text, "Plans for defense tower available");
- if ( num == INFO_RESEARCHPHAZER ) strcpy(text, "Plans for phazer shooter available");
- if ( num == INFO_RESEARCHSHIELD ) strcpy(text, "Plans for shielder available");
- if ( num == INFO_RESEARCHATOMIC ) strcpy(text, "Plans for nuclear power plant available");
- if ( num == INFO_FACTORY ) strcpy(text, "New bot available");
- if ( num == INFO_LABO ) strcpy(text, "Analysis performed");
- if ( num == INFO_ENERGY ) strcpy(text, "Power cell available");
- if ( num == INFO_NUCLEAR ) strcpy(text, "Nuclear power cell available");
- if ( num == INFO_FINDING ) strcpy(text, "You found a usable object");
- if ( num == INFO_MARKPOWER ) strcpy(text, "Found a site for power station");
- if ( num == INFO_MARKURANIUM ) strcpy(text, "Found a site for a derrick");
- if ( num == INFO_MARKSTONE ) strcpy(text, "Found a site for a derrick");
- if ( num == INFO_MARKKEYa ) strcpy(text, "Found a site for a derrick");
- if ( num == INFO_MARKKEYb ) strcpy(text, "Found a site for a derrick");
- if ( num == INFO_MARKKEYc ) strcpy(text, "Found a site for a derrick");
- if ( num == INFO_MARKKEYd ) strcpy(text, "Found a site for a derrick");
- if ( num == INFO_WIN ) strcpy(text, "<<< Well done, mission accomplished >>>");
- if ( num == INFO_LOST ) strcpy(text, "<<< Sorry, mission failed >>>");
- if ( num == INFO_LOSTq ) strcpy(text, "<<< Sorry, mission failed >>>");
- if ( num == INFO_WRITEOK ) strcpy(text, "Current mission saved");
- if ( num == INFO_DELETEPATH ) strcpy(text, "Checkpoint crossed");
- if ( num == INFO_DELETEMOTHER ) strcpy(text, "Alien Queen killed");
- if ( num == INFO_DELETEANT ) strcpy(text, "Ant fatally wounded");
- if ( num == INFO_DELETEBEE ) strcpy(text, "Wasp fatally wounded");
- if ( num == INFO_DELETEWORM ) strcpy(text, "Worm fatally wounded");
- if ( num == INFO_DELETESPIDER ) strcpy(text, "Spider fatally wounded");
- if ( num == INFO_BEGINSATCOM ) strcpy(text, "Push \\key help; to get instructions on your SatCom");
- }
-
- if ( type == RES_CBOT )
- {
- strcpy(text, "Error");
- if ( num == TX_OPENPAR ) strcpy(text, "Opening bracket missing");
- if ( num == TX_CLOSEPAR ) strcpy(text, "Closing bracket missing ");
- if ( num == TX_NOTBOOL ) strcpy(text, "The expression must return a boolean value");
- if ( num == TX_UNDEFVAR ) strcpy(text, "Variable not declared");
- if ( num == TX_BADLEFT ) strcpy(text, "Assignment impossible");
- if ( num == TX_ENDOF ) strcpy(text, "Semicolon terminator missing");
- if ( num == TX_OUTCASE ) strcpy(text, "Instruction ""case"" outside a block ""switch""");
- if ( num == TX_NOTERM ) strcpy(text, "Instructions after the final closing brace");
- if ( num == TX_CLOSEBLK ) strcpy(text, "End of block missing");
- if ( num == TX_ELSEWITHOUTIF ) strcpy(text, "Instruction ""else"" without corresponding ""if"" ");
- if ( num == TX_OPENBLK ) strcpy(text, "Opening brace missing ");//début d'un bloc attendu?
- if ( num == TX_BADTYPE ) strcpy(text, "Wrong type for the assignment");
- if ( num == TX_REDEFVAR ) strcpy(text, "A variable can not be declared twice");
- if ( num == TX_BAD2TYPE ) strcpy(text, "The types of the two operands are incompatible ");
- if ( num == TX_UNDEFCALL ) strcpy(text, "Unknown function");
- if ( num == TX_MISDOTS ) strcpy(text, "Sign "" : "" missing");
- if ( num == TX_WHILE ) strcpy(text, "Keyword ""while"" missing");
- if ( num == TX_BREAK ) strcpy(text, "Instruction ""break"" outside a loop");
- if ( num == TX_LABEL ) strcpy(text, "A label must be followed by ""for"", ""while"", ""do"" or ""switch""");
- if ( num == TX_NOLABEL ) strcpy(text, "This label does not exist");// Cette étiquette n'existe pas
- if ( num == TX_NOCASE ) strcpy(text, "Instruction ""case"" missing");
- if ( num == TX_BADNUM ) strcpy(text, "Number missing");
- if ( num == TX_VOID ) strcpy(text, "Void parameter");
- if ( num == TX_NOTYP ) strcpy(text, "Type declaration missing");
- if ( num == TX_NOVAR ) strcpy(text, "Variable name missing");
- if ( num == TX_NOFONC ) strcpy(text, "Function name missing");
- if ( num == TX_OVERPARAM ) strcpy(text, "Too many parameters");
- if ( num == TX_REDEF ) strcpy(text, "Function already exists");
- if ( num == TX_LOWPARAM ) strcpy(text, "Parameters missing ");
- if ( num == TX_BADPARAM ) strcpy(text, "No function of this name accepts this kind of parameter");
- if ( num == TX_NUMPARAM ) strcpy(text, "No function of this name accepts this number of parameters");
- if ( num == TX_NOITEM ) strcpy(text, "This is not a member of this class");
- if ( num == TX_DOT ) strcpy(text, "This object is not a member of a class");
- if ( num == TX_NOCONST ) strcpy(text, "Appropriate constructor missing");
- if ( num == TX_REDEFCLASS ) strcpy(text, "This class already exists");
- if ( num == TX_CLBRK ) strcpy(text, """ ] "" missing");
- if ( num == TX_RESERVED ) strcpy(text, "Reserved keyword of CBOT language");
- if ( num == TX_BADNEW ) strcpy(text, "Bad argument for ""new""");
- if ( num == TX_OPBRK ) strcpy(text, """ [ "" expected");
- if ( num == TX_BADSTRING ) strcpy(text, "String missing");
- if ( num == TX_BADINDEX ) strcpy(text, "Incorrect index type");
- if ( num == TX_PRIVATE ) strcpy(text, "Private element");
- if ( num == TX_NOPUBLIC ) strcpy(text, "Public required");
- if ( num == TX_DIVZERO ) strcpy(text, "Dividing through zero");
- if ( num == TX_NOTINIT ) strcpy(text, "Variable not initialized");
- if ( num == TX_BADTHROW ) strcpy(text, "Negative value rejected by ""throw""");//C'est quoi, ça?
- if ( num == TX_NORETVAL ) strcpy(text, "The function returned no value ");
- if ( num == TX_NORUN ) strcpy(text, "No function running");
- if ( num == TX_NOCALL ) strcpy(text, "Calling an unknown function");
- if ( num == TX_NOCLASS ) strcpy(text, "This class does not exist");
- if ( num == TX_NULLPT ) strcpy(text, "Unknown Object");
- if ( num == TX_OPNAN ) strcpy(text, "Operation impossible with value ""nan""");
- if ( num == TX_OUTARRAY ) strcpy(text, "Access beyond array limit");
- if ( num == TX_STACKOVER ) strcpy(text, "Stack overflow");
- if ( num == TX_DELETEDPT ) strcpy(text, "Illegal object");
- if ( num == TX_FILEOPEN ) strcpy(text, "Can't open file");
- if ( num == TX_NOTOPEN ) strcpy(text, "File not open");
- if ( num == TX_ERRREAD ) strcpy(text, "Read error");
- if ( num == TX_ERRWRITE ) strcpy(text, "Write error");
- }
-
- if ( type == RES_KEY )
- {
- if ( num == 0 ) strcpy(text, "< none >");
- if ( num == VK_LEFT ) strcpy(text, "Arrow left");
- if ( num == VK_RIGHT ) strcpy(text, "Arrow right");
- if ( num == VK_UP ) strcpy(text, "Arrow up");
- if ( num == VK_DOWN ) strcpy(text, "Arrow down");
- if ( num == VK_CANCEL ) strcpy(text, "Control-break");
- if ( num == VK_BACK ) strcpy(text, "<--");
- if ( num == VK_TAB ) strcpy(text, "Tab");
- if ( num == VK_CLEAR ) strcpy(text, "Clear");
- if ( num == VK_RETURN ) strcpy(text, "Enter");
- if ( num == VK_SHIFT ) strcpy(text, "Shift");
- if ( num == VK_CONTROL ) strcpy(text, "Ctrl");
- if ( num == VK_MENU ) strcpy(text, "Alt");
- if ( num == VK_PAUSE ) strcpy(text, "Pause");
- if ( num == VK_CAPITAL ) strcpy(text, "Caps Lock");
- if ( num == VK_ESCAPE ) strcpy(text, "Esc");
- if ( num == VK_SPACE ) strcpy(text, "Space");
- if ( num == VK_PRIOR ) strcpy(text, "Page Up");
- if ( num == VK_NEXT ) strcpy(text, "Page Down");
- if ( num == VK_END ) strcpy(text, "End");
- if ( num == VK_HOME ) strcpy(text, "Home");
- if ( num == VK_SELECT ) strcpy(text, "Select");
- if ( num == VK_EXECUTE ) strcpy(text, "Execute");
- if ( num == VK_SNAPSHOT ) strcpy(text, "Print Scrn");
- if ( num == VK_INSERT ) strcpy(text, "Insert");
- if ( num == VK_DELETE ) strcpy(text, "Delete");
- if ( num == VK_HELP ) strcpy(text, "Help");
- if ( num == VK_LWIN ) strcpy(text, "Left Windows");
- if ( num == VK_RWIN ) strcpy(text, "Right Windows");
- if ( num == VK_APPS ) strcpy(text, "Application key");
- if ( num == VK_NUMPAD0 ) strcpy(text, "NumPad 0");
- if ( num == VK_NUMPAD1 ) strcpy(text, "NumPad 1");
- if ( num == VK_NUMPAD2 ) strcpy(text, "NumPad 2");
- if ( num == VK_NUMPAD3 ) strcpy(text, "NumPad 3");
- if ( num == VK_NUMPAD4 ) strcpy(text, "NumPad 4");
- if ( num == VK_NUMPAD5 ) strcpy(text, "NumPad 5");
- if ( num == VK_NUMPAD6 ) strcpy(text, "NumPad 6");
- if ( num == VK_NUMPAD7 ) strcpy(text, "NumPad 7");
- if ( num == VK_NUMPAD8 ) strcpy(text, "NumPad 8");
- if ( num == VK_NUMPAD9 ) strcpy(text, "NumPad 9");
- if ( num == VK_MULTIPLY ) strcpy(text, "NumPad *");
- if ( num == VK_ADD ) strcpy(text, "NumPad +");
- if ( num == VK_SEPARATOR ) strcpy(text, "NumPad sep");
- if ( num == VK_SUBTRACT ) strcpy(text, "NumPad -");
- if ( num == VK_DECIMAL ) strcpy(text, "NumPad .");
- if ( num == VK_DIVIDE ) strcpy(text, "NumPad /");
- if ( num == VK_F1 ) strcpy(text, "F1");
- if ( num == VK_F2 ) strcpy(text, "F2");
- if ( num == VK_F3 ) strcpy(text, "F3");
- if ( num == VK_F4 ) strcpy(text, "F4");
- if ( num == VK_F5 ) strcpy(text, "F5");
- if ( num == VK_F6 ) strcpy(text, "F6");
- if ( num == VK_F7 ) strcpy(text, "F7");
- if ( num == VK_F8 ) strcpy(text, "F8");
- if ( num == VK_F9 ) strcpy(text, "F9");
- if ( num == VK_F10 ) strcpy(text, "F10");
- if ( num == VK_F11 ) strcpy(text, "F11");
- if ( num == VK_F12 ) strcpy(text, "F12");
- if ( num == VK_F13 ) strcpy(text, "F13");
- if ( num == VK_F14 ) strcpy(text, "F14");
- if ( num == VK_F15 ) strcpy(text, "F15");
- if ( num == VK_F16 ) strcpy(text, "F16");
- if ( num == VK_F17 ) strcpy(text, "F17");
- if ( num == VK_F18 ) strcpy(text, "F18");
- if ( num == VK_F19 ) strcpy(text, "F19");
- if ( num == VK_F20 ) strcpy(text, "F20");
- if ( num == VK_NUMLOCK ) strcpy(text, "Num Lock");
- if ( num == VK_SCROLL ) strcpy(text, "Scroll");
- if ( num == VK_ATTN ) strcpy(text, "Attn");
- if ( num == VK_CRSEL ) strcpy(text, "CrSel");
- if ( num == VK_EXSEL ) strcpy(text, "ExSel");
- if ( num == VK_EREOF ) strcpy(text, "Erase EOF");
- if ( num == VK_PLAY ) strcpy(text, "Play");
- if ( num == VK_ZOOM ) strcpy(text, "Zoom");
- if ( num == VK_PA1 ) strcpy(text, "PA1");
- if ( num == VK_OEM_CLEAR ) strcpy(text, "Clear");
- if ( num == VK_BUTTON1 ) strcpy(text, "Button 1");
- if ( num == VK_BUTTON2 ) strcpy(text, "Button 2");
- if ( num == VK_BUTTON3 ) strcpy(text, "Button 3");
- if ( num == VK_BUTTON4 ) strcpy(text, "Button 4");
- if ( num == VK_BUTTON5 ) strcpy(text, "Button 5");
- if ( num == VK_BUTTON6 ) strcpy(text, "Button 6");
- if ( num == VK_BUTTON7 ) strcpy(text, "Button 7");
- if ( num == VK_BUTTON8 ) strcpy(text, "Button 8");
- if ( num == VK_BUTTON9 ) strcpy(text, "Button 9");
- if ( num == VK_BUTTON10 ) strcpy(text, "Button 10");
- if ( num == VK_BUTTON11 ) strcpy(text, "Button 11");
- if ( num == VK_BUTTON12 ) strcpy(text, "Button 12");
- if ( num == VK_BUTTON13 ) strcpy(text, "Button 13");
- if ( num == VK_BUTTON14 ) strcpy(text, "Button 14");
- if ( num == VK_BUTTON15 ) strcpy(text, "Button 15");
- if ( num == VK_BUTTON16 ) strcpy(text, "Button 16");
- if ( num == VK_BUTTON17 ) strcpy(text, "Button 17");
- if ( num == VK_BUTTON18 ) strcpy(text, "Button 18");
- if ( num == VK_BUTTON19 ) strcpy(text, "Button 19");
- if ( num == VK_BUTTON20 ) strcpy(text, "Button 20");
- if ( num == VK_BUTTON21 ) strcpy(text, "Button 21");
- if ( num == VK_BUTTON22 ) strcpy(text, "Button 22");
- if ( num == VK_BUTTON23 ) strcpy(text, "Button 23");
- if ( num == VK_BUTTON24 ) strcpy(text, "Button 24");
- if ( num == VK_BUTTON25 ) strcpy(text, "Button 25");
- if ( num == VK_BUTTON26 ) strcpy(text, "Button 26");
- if ( num == VK_BUTTON27 ) strcpy(text, "Button 27");
- if ( num == VK_BUTTON28 ) strcpy(text, "Button 28");
- if ( num == VK_BUTTON29 ) strcpy(text, "Button 29");
- if ( num == VK_BUTTON30 ) strcpy(text, "Button 30");
- if ( num == VK_BUTTON31 ) strcpy(text, "Button 31");
- if ( num == VK_BUTTON32 ) strcpy(text, "Button 32");
- if ( num == VK_WHEELUP ) strcpy(text, "Wheel up");
- if ( num == VK_WHEELDOWN ) strcpy(text, "Wheel down");
- }
-#endif
-
-#if _FRENCH
- if ( type == RES_TEXT )
- {
- #if _FULL
- if ( num == RT_VERSION_ID ) strcpy(text, "Version 1.8 /f");
- #endif
- #if _NET | _SCHOOL
- if ( num == RT_VERSION_ID ) strcpy(text, "Ecole 1.8 /f");
- #endif
- #if _DEMO
- if ( num == RT_VERSION_ID ) strcpy(text, "Demo 1.8 /f");
- #endif
- if ( num == RT_DISINFO_TITLE ) strcpy(text, "SatCom");
- if ( num == RT_WINDOW_MAXIMIZED ) strcpy(text, "Taille maximale");
- if ( num == RT_WINDOW_MINIMIZED ) strcpy(text, "Taille réduite");
- if ( num == RT_WINDOW_STANDARD ) strcpy(text, "Taille normale");
- if ( num == RT_WINDOW_CLOSE ) strcpy(text, "Fermer");
-
- if ( num == RT_STUDIO_TITLE ) strcpy(text, "Edition du programme");
- if ( num == RT_SCRIPT_NEW ) strcpy(text, "Nouveau");
- if ( num == RT_NAME_DEFAULT ) strcpy(text, "Joueur");
- if ( num == RT_IO_NEW ) strcpy(text, "Nouveau ...");
- if ( num == RT_KEY_OR ) strcpy(text, " ou ");
-
- if ( num == RT_TITLE_BASE ) strcpy(text, "COLOBOT");
- if ( num == RT_TITLE_INIT ) strcpy(text, "COLOBOT");
- if ( num == RT_TITLE_TRAINER ) strcpy(text, "Programmation");
- if ( num == RT_TITLE_DEFI ) strcpy(text, "Défis");
- if ( num == RT_TITLE_MISSION ) strcpy(text, "Missions");
- if ( num == RT_TITLE_FREE ) strcpy(text, "Jeu libre");
- if ( num == RT_TITLE_USER ) strcpy(text, "Niveaux supplémentaires");
- if ( num == RT_TITLE_PROTO ) strcpy(text, "Prototypes");
- if ( num == RT_TITLE_SETUP ) strcpy(text, "Options");
- if ( num == RT_TITLE_NAME ) strcpy(text, "Nom du joueur");
- if ( num == RT_TITLE_PERSO ) strcpy(text, "Personnalisation de votre apparence");
- if ( num == RT_TITLE_WRITE ) strcpy(text, "Enregistrement de la mission en cours");
- if ( num == RT_TITLE_READ ) strcpy(text, "Chargement d'une mission enregistrée");
-
- if ( num == RT_PLAY_CHAPt ) strcpy(text, " Liste des chapitres :");
- if ( num == RT_PLAY_CHAPd ) strcpy(text, " Liste des chapitres :");
- if ( num == RT_PLAY_CHAPm ) strcpy(text, " Liste des plančtes :");
- if ( num == RT_PLAY_CHAPf ) strcpy(text, " Liste des plančtes :");
- if ( num == RT_PLAY_CHAPu ) strcpy(text, " Niveaux supplémentaires :");
- if ( num == RT_PLAY_CHAPp ) strcpy(text, " Liste des plančtes :");
- if ( num == RT_PLAY_LISTt ) strcpy(text, " Liste des exercices du chapitre :");
- if ( num == RT_PLAY_LISTd ) strcpy(text, " Liste des défis du chapitre :");
- if ( num == RT_PLAY_LISTm ) strcpy(text, " Liste des missions du chapitre :");
- if ( num == RT_PLAY_LISTf ) strcpy(text, " Liste des jeux libres du chapitre :");
- if ( num == RT_PLAY_LISTu ) strcpy(text, " Missions du niveau :");
- if ( num == RT_PLAY_LISTp ) strcpy(text, " Liste des prototypes du chapitre :");
- if ( num == RT_PLAY_RESUME ) strcpy(text, " Résumé :");
-
- if ( num == RT_SETUP_DEVICE ) strcpy(text, " Pilotes :");
- if ( num == RT_SETUP_MODE ) strcpy(text, " Résolutions :");
- if ( num == RT_SETUP_KEY1 ) strcpy(text, "1) Cliquez d'abord sur la touche ŕ redéfinir.");
- if ( num == RT_SETUP_KEY2 ) strcpy(text, "2) Appuyez ensuite sur la nouvelle touche souhaitée.");
-
- if ( num == RT_PERSO_FACE ) strcpy(text, "Type de visage :");
- if ( num == RT_PERSO_GLASSES ) strcpy(text, "Lunettes :");
- if ( num == RT_PERSO_HAIR ) strcpy(text, "Couleur des cheveux :");
- if ( num == RT_PERSO_COMBI ) strcpy(text, "Couleur de la combinaison :");
- if ( num == RT_PERSO_BAND ) strcpy(text, "Couleur des bandes :");
-
- if ( num == RT_DIALOG_TITLE ) strcpy(text, "COLOBOT");
- if ( num == RT_DIALOG_ABORT ) strcpy(text, "Quitter la mission ?");
- if ( num == RT_DIALOG_QUIT ) strcpy(text, "Voulez-vous quitter COLOBOT ?");
- if ( num == RT_DIALOG_YES ) strcpy(text, "Abandonner\\Abandonner la mission en cours");
- if ( num == RT_DIALOG_NO ) strcpy(text, "Continuer\\Continuer la mission en cours");
- if ( num == RT_DIALOG_YESQUIT ) strcpy(text, "Quitter\\Quitter COLOBOT");
- if ( num == RT_DIALOG_NOQUIT ) strcpy(text, "Continuer\\Continuer de jouer");
- if ( num == RT_DIALOG_DELOBJ ) strcpy(text, "Voulez-vous vraiment détruire le bâtiment sélectionné ?");
- if ( num == RT_DIALOG_DELGAME ) strcpy(text, "Voulez-vous détruire les sauvegardes de %s ?");
- if ( num == RT_DIALOG_YESDEL ) strcpy(text, "Détruire");
- if ( num == RT_DIALOG_NODEL ) strcpy(text, "Annuler");
- if ( num == RT_DIALOG_LOADING ) strcpy(text, "CHARGEMENT");
-
- if ( num == RT_STUDIO_LISTTT ) strcpy(text, "Aide sur le mot-clé (\\key cbot;)");
- if ( num == RT_STUDIO_COMPOK ) strcpy(text, "Compilation ok (0 erreur)");
- if ( num == RT_STUDIO_PROGSTOP ) strcpy(text, "Programme terminé");
-
- if ( num == RT_SATCOM_LIST ) strcpy(text, "\\b;Listes des objets\n");
- if ( num == RT_SATCOM_BOT ) strcpy(text, "\\b;Listes des robots\n");
- if ( num == RT_SATCOM_BUILDING ) strcpy(text, "\\b;Listes des bâtiments\n");
- if ( num == RT_SATCOM_FRET ) strcpy(text, "\\b;Listes des objets transportables\n");
- if ( num == RT_SATCOM_ALIEN ) strcpy(text, "\\b;Listes des ennemis\n");
- if ( num == RT_SATCOM_NULL ) strcpy(text, "\\c; (aucun)\\n;\n");
- if ( num == RT_SATCOM_ERROR1 ) strcpy(text, "\\b;Erreur\n");
- if ( num == RT_SATCOM_ERROR2 ) strcpy(text, "Liste non disponible sans \\l;radar\\u object\\radar; !\n");
-
- if ( num == RT_IO_OPEN ) strcpy(text, "Ouvrir");
- if ( num == RT_IO_SAVE ) strcpy(text, "Enregistrer");
- if ( num == RT_IO_LIST ) strcpy(text, "Dossier: %s");
- if ( num == RT_IO_NAME ) strcpy(text, "Nom:");
- if ( num == RT_IO_DIR ) strcpy(text, "Dans:");
- if ( num == RT_IO_PRIVATE ) strcpy(text, "Privé\\Dossier privé");
- if ( num == RT_IO_PUBLIC ) strcpy(text, "Public\\Dossier commun ŕ tous les joueurs");
-
- if ( num == RT_GENERIC_DEV1 ) strcpy(text, "Développé par :");
- if ( num == RT_GENERIC_DEV2 ) strcpy(text, "www.epsitec.com");
- if ( num == RT_GENERIC_EDIT1 ) strcpy(text, "Version française éditée par :");
- if ( num == RT_GENERIC_EDIT2 ) strcpy(text, "www.alsyd.com");
- }
-
- if ( type == RES_EVENT )
- {
- if ( num == EVENT_BUTTON_OK ) strcpy(text, "D'accord");
- if ( num == EVENT_BUTTON_CANCEL ) strcpy(text, "Annuler");
- if ( num == EVENT_BUTTON_NEXT ) strcpy(text, "Suivant");
- if ( num == EVENT_BUTTON_PREV ) strcpy(text, "Précédent");
- if ( num == EVENT_BUTTON_QUIT ) strcpy(text, "Menu (\\key quit;)");
-
- if ( num == EVENT_DIALOG_OK ) strcpy(text, "D'accord");
- if ( num == EVENT_DIALOG_CANCEL ) strcpy(text, "Annuler");
-
- if ( num == EVENT_INTERFACE_TRAINER) strcpy(text, "Programmation\\Exercices de programmation");
- if ( num == EVENT_INTERFACE_DEFI ) strcpy(text, "Défis\\Défis de programmation");
- if ( num == EVENT_INTERFACE_MISSION) strcpy(text, "Missions\\La grande aventure");
- if ( num == EVENT_INTERFACE_FREE ) strcpy(text, "Jeu libre\\Jeu libre sans but précis");
- if ( num == EVENT_INTERFACE_USER ) strcpy(text, "Suppl.\\Niveaux supplémentaires");
- if ( num == EVENT_INTERFACE_PROTO ) strcpy(text, "Proto\\Prototypes en cours d'élaboration");
- if ( num == EVENT_INTERFACE_NAME ) strcpy(text, "Autre joueur\\Choix du nom du joueur");
- if ( num == EVENT_INTERFACE_SETUP ) strcpy(text, "Options\\Réglages");
- if ( num == EVENT_INTERFACE_AGAIN ) strcpy(text, "Recommencer\\Recommencer la mission au début");
- if ( num == EVENT_INTERFACE_WRITE ) strcpy(text, "Enregistrer\\Enregistrer la mission en cours");
- if ( num == EVENT_INTERFACE_READ ) strcpy(text, "Charger\\Charger une mission enregistrée");
- if ( num == EVENT_INTERFACE_ABORT ) strcpy(text, "\\Retourner dans COLOBOT");
- if ( num == EVENT_INTERFACE_QUIT ) strcpy(text, "Quitter\\Quitter COLOBOT");
- if ( num == EVENT_INTERFACE_BACK ) strcpy(text, "<< Retour \\Retour au niveau précédent");
- if ( num == EVENT_INTERFACE_PLAY ) strcpy(text, "Jouer ...\\Démarrer l'action");
- if ( num == EVENT_INTERFACE_SETUPd ) strcpy(text, "Affichage\\Pilote et résolution d'affichage");
- if ( num == EVENT_INTERFACE_SETUPg ) strcpy(text, "Graphique\\Options graphiques");
- if ( num == EVENT_INTERFACE_SETUPp ) strcpy(text, "Jeu\\Options de jouabilité");
- if ( num == EVENT_INTERFACE_SETUPc ) strcpy(text, "Commandes\\Touches du clavier");
- if ( num == EVENT_INTERFACE_SETUPs ) strcpy(text, "Son\\Volumes bruitages & musiques");
- if ( num == EVENT_INTERFACE_DEVICE ) strcpy(text, "Unité");
- if ( num == EVENT_INTERFACE_RESOL ) strcpy(text, "Résolution");
- if ( num == EVENT_INTERFACE_FULL ) strcpy(text, "Plein écran\\Plein écran ou fenętré");
- if ( num == EVENT_INTERFACE_APPLY ) strcpy(text, "Appliquer les changements\\Active les changements effectués");
-
- if ( num == EVENT_INTERFACE_TOTO ) strcpy(text, "Robbie\\Votre assistant");
- if ( num == EVENT_INTERFACE_SHADOW ) strcpy(text, "Ombres\\Ombres projetées au sol");
- if ( num == EVENT_INTERFACE_GROUND ) strcpy(text, "Marques sur le sol\\Marques dessinées sur le sol");
- if ( num == EVENT_INTERFACE_DIRTY ) strcpy(text, "Salissures\\Salissures des robots et bâtiments");
- if ( num == EVENT_INTERFACE_FOG ) strcpy(text, "Brouillard\\Nappes de brouillard");
- if ( num == EVENT_INTERFACE_LENS ) strcpy(text, "Rayons du soleil\\Rayons selon l'orientation");
- if ( num == EVENT_INTERFACE_SKY ) strcpy(text, "Ciel\\Ciel et nuages");
- if ( num == EVENT_INTERFACE_PLANET ) strcpy(text, "Plančtes et étoiles\\Motifs mobiles dans le ciel");
- if ( num == EVENT_INTERFACE_LIGHT ) strcpy(text, "Lumičres dynamiques\\Eclairages mobiles");
- if ( num == EVENT_INTERFACE_PARTI ) strcpy(text, "Quantité de particules\\Explosions, poussičres, reflets, etc.");
- if ( num == EVENT_INTERFACE_CLIP ) strcpy(text, "Profondeur de champ\\Distance de vue maximale");
- if ( num == EVENT_INTERFACE_DETAIL ) strcpy(text, "Détails des objets\\Qualité des objets en 3D");
- if ( num == EVENT_INTERFACE_TEXTURE) strcpy(text, "Qualité des textures\\Qualité des images");
- if ( num == EVENT_INTERFACE_GADGET ) strcpy(text, "Nombre d'objets décoratifs\\Qualité d'objets non indispensables");
- if ( num == EVENT_INTERFACE_RAIN ) strcpy(text, "Particules dans l'interface\\Pluie de particules");
- if ( num == EVENT_INTERFACE_GLINT ) strcpy(text, "Reflets sur les boutons\\Boutons brillants");
- if ( num == EVENT_INTERFACE_TOOLTIP) strcpy(text, "Bulles d'aide\\Bulles explicatives");
- if ( num == EVENT_INTERFACE_MOVIES ) strcpy(text, "Séquences cinématiques\\Films avant ou aprčs une mission");
- if ( num == EVENT_INTERFACE_NICERST) strcpy(text, "Retour animé\\Retour animé dans les exercices");
- if ( num == EVENT_INTERFACE_HIMSELF) strcpy(text, "Dégâts ŕ soi-męme\\Vos tirs infligent des dommages ŕ vos unités");
- if ( num == EVENT_INTERFACE_SCROLL ) strcpy(text, "Défilement dans les bords\\Défilement lorsque la souris touches les bords gauche ou droite");
- if ( num == EVENT_INTERFACE_INVERTX) strcpy(text, "Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord");
- if ( num == EVENT_INTERFACE_INVERTY) strcpy(text, "Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord");
- if ( num == EVENT_INTERFACE_EFFECT ) strcpy(text, "Secousses lors d'explosions\\L'écran vibre lors d'une explosion");
- if ( num == EVENT_INTERFACE_MOUSE ) strcpy(text, "Souris ombrée\\Jolie souris avec une ombre");
- if ( num == EVENT_INTERFACE_EDITMODE) strcpy(text, "Indentation automatique\\Pendant l'édition d'un programme");
- if ( num == EVENT_INTERFACE_EDITVALUE)strcpy(text, "Grande indentation\\Indente avec 2 ou 4 espaces");
-
- if ( num == EVENT_INTERFACE_KDEF ) strcpy(text, "Tout réinitialiser\\Remet toutes les touches standards");
- if ( num == EVENT_INTERFACE_KLEFT ) strcpy(text, "Tourner ŕ gauche\\Moteur ŕ gauche");
- if ( num == EVENT_INTERFACE_KRIGHT ) strcpy(text, "Tourner ŕ droite\\Moteur ŕ droite");
- if ( num == EVENT_INTERFACE_KUP ) strcpy(text, "Avancer\\Moteur en avant");
- if ( num == EVENT_INTERFACE_KDOWN ) strcpy(text, "Reculer\\Moteur en arričre");
- if ( num == EVENT_INTERFACE_KGUP ) strcpy(text, "Monter\\Augmenter la puissance du réacteur");
- if ( num == EVENT_INTERFACE_KGDOWN ) strcpy(text, "Descendre\\Diminuer la puissance du réacteur");
- if ( num == EVENT_INTERFACE_KCAMERA) strcpy(text, "Changement de caméra\\Autre de point de vue");
- if ( num == EVENT_INTERFACE_KDESEL ) strcpy(text, "Sélection précédente\\Sélectionne l'objet précédent");
- if ( num == EVENT_INTERFACE_KACTION) strcpy(text, "Action standard\\Action du bouton avec le cadre rouge");
- if ( num == EVENT_INTERFACE_KNEAR ) strcpy(text, "Caméra plus proche\\Avance la caméra");
- if ( num == EVENT_INTERFACE_KAWAY ) strcpy(text, "Caméra plus loin\\Recule la caméra");
- if ( num == EVENT_INTERFACE_KNEXT ) strcpy(text, "Sélectionner l'objet suivant\\Sélectionner l'objet suivant");
- if ( num == EVENT_INTERFACE_KHUMAN ) strcpy(text, "Sélectionner le cosmonaute\\Sélectionner le cosmonaute");
- if ( num == EVENT_INTERFACE_KQUIT ) strcpy(text, "Quitter la mission en cours\\Terminer un exercice ou une mssion");
- if ( num == EVENT_INTERFACE_KHELP ) strcpy(text, "Instructions mission\\Marche ŕ suivre");
- if ( num == EVENT_INTERFACE_KPROG ) strcpy(text, "Instructions programmation\\Explication sur la programmation");
- if ( num == EVENT_INTERFACE_KCBOT ) strcpy(text, "Instructions mot-clé\\Explication sur le mot-clé");
- if ( num == EVENT_INTERFACE_KVISIT ) strcpy(text, "Montrer le lieu d'un message\\Montrer le lieu du dernier message");
- if ( num == EVENT_INTERFACE_KSPEED10) strcpy(text, "Vitesse 1.0x\\Vitesse normale");
- if ( num == EVENT_INTERFACE_KSPEED15) strcpy(text, "Vitesse 1.5x\\Une fois et demi plus rapide");
- if ( num == EVENT_INTERFACE_KSPEED20) strcpy(text, "Vitesse 2.0x\\Deux fois plus rapide");
- if ( num == EVENT_INTERFACE_KSPEED30) strcpy(text, "Vitesse 3.0x\\Trois fois plus rapide");
-
- if ( num == EVENT_INTERFACE_VOLSOUND) strcpy(text, "Bruitages :\\Volume des moteurs, voix, etc.");
- if ( num == EVENT_INTERFACE_VOLMUSIC) strcpy(text, "Fond sonore :\\Volume des pistes audio du CD");
- if ( num == EVENT_INTERFACE_SOUND3D) strcpy(text, "Bruitages 3D\\Positionnement sonore dans l'espace");
-
- if ( num == EVENT_INTERFACE_MIN ) strcpy(text, "Mini\\Qualité minimale (+ rapide)");
- if ( num == EVENT_INTERFACE_NORM ) strcpy(text, "Normal\\Qualité standard");
- if ( num == EVENT_INTERFACE_MAX ) strcpy(text, "Maxi\\Haute qualité (+ lent)");
-
- if ( num == EVENT_INTERFACE_SILENT ) strcpy(text, "Silencieux\\Totalement silencieux");
- if ( num == EVENT_INTERFACE_NOISY ) strcpy(text, "Normal\\Niveaux normaux");
-
- if ( num == EVENT_INTERFACE_JOYSTICK) strcpy(text, "Utilise un joystick\\Joystick ou clavier");
- if ( num == EVENT_INTERFACE_SOLUCE ) strcpy(text, "Accčs ŕ la solution\\Donne la solution");
-
- if ( num == EVENT_INTERFACE_NEDIT ) strcpy(text, "\\Nom du joueur ŕ créer");
- if ( num == EVENT_INTERFACE_NOK ) strcpy(text, "D'accord\\Choisir le joueur");
- if ( num == EVENT_INTERFACE_NCANCEL) strcpy(text, "Annuler\\Conserver le joueur actuel");
- if ( num == EVENT_INTERFACE_NDELETE) strcpy(text, "Supprimer le joueur\\Supprimer le joueur de la liste");
- if ( num == EVENT_INTERFACE_NLABEL ) strcpy(text, "Nom du joueur");
-
- if ( num == EVENT_INTERFACE_IOWRITE) strcpy(text, "Enregistrer\\Enregistrer la mission en cours");
- if ( num == EVENT_INTERFACE_IOREAD ) strcpy(text, "Charger\\Charger la mission sélectionnée");
- if ( num == EVENT_INTERFACE_IOLIST ) strcpy(text, "Liste des missions enregistrées");
- if ( num == EVENT_INTERFACE_IOLABEL) strcpy(text, "Nom du fichier :");
- if ( num == EVENT_INTERFACE_IONAME ) strcpy(text, "Nom de la mission");
- if ( num == EVENT_INTERFACE_IOIMAGE) strcpy(text, "Vue de la mission");
- if ( num == EVENT_INTERFACE_IODELETE) strcpy(text, "Supprimer\\Supprime l'enregistrement sélectionné");
-
- if ( num == EVENT_INTERFACE_PERSO ) strcpy(text, "Aspect\\Choisir votre aspect");
- if ( num == EVENT_INTERFACE_POK ) strcpy(text, "D'accord");
- if ( num == EVENT_INTERFACE_PCANCEL) strcpy(text, "Annuler");
- if ( num == EVENT_INTERFACE_PDEF ) strcpy(text, "Standard\\Remet les couleurs standards");
- if ( num == EVENT_INTERFACE_PHEAD ) strcpy(text, "Tęte\\Visage et cheveux");
- if ( num == EVENT_INTERFACE_PBODY ) strcpy(text, "Corps\\Combinaison");
- if ( num == EVENT_INTERFACE_PLROT ) strcpy(text, "\\Rotation ŕ gauche");
- if ( num == EVENT_INTERFACE_PRROT ) strcpy(text, "\\Rotation ŕ droite");
- if ( num == EVENT_INTERFACE_PCRa ) strcpy(text, "Rouge");
- if ( num == EVENT_INTERFACE_PCGa ) strcpy(text, "Vert");
- if ( num == EVENT_INTERFACE_PCBa ) strcpy(text, "Bleu");
- if ( num == EVENT_INTERFACE_PCRb ) strcpy(text, "Rouge");
- if ( num == EVENT_INTERFACE_PCGb ) strcpy(text, "Vert");
- if ( num == EVENT_INTERFACE_PCBb ) strcpy(text, "Bleu");
- if ( num == EVENT_INTERFACE_PFACE1 ) strcpy(text, "\\Visage 1");
- if ( num == EVENT_INTERFACE_PFACE2 ) strcpy(text, "\\Visage 4");
- if ( num == EVENT_INTERFACE_PFACE3 ) strcpy(text, "\\Visage 3");
- if ( num == EVENT_INTERFACE_PFACE4 ) strcpy(text, "\\Visage 2");
- if ( num == EVENT_INTERFACE_PGLASS0) strcpy(text, "\\Pas de lunettes");
- if ( num == EVENT_INTERFACE_PGLASS1) strcpy(text, "\\Lunettes 1");
- if ( num == EVENT_INTERFACE_PGLASS2) strcpy(text, "\\Lunettes 2");
- if ( num == EVENT_INTERFACE_PGLASS3) strcpy(text, "\\Lunettes 3");
- if ( num == EVENT_INTERFACE_PGLASS4) strcpy(text, "\\Lunettes 4");
- if ( num == EVENT_INTERFACE_PGLASS5) strcpy(text, "\\Lunettes 5");
-
- if ( num == EVENT_OBJECT_DESELECT ) strcpy(text, "Sélection précédente (\\key desel;)");
- if ( num == EVENT_OBJECT_LEFT ) strcpy(text, "Tourne ŕ gauche (\\key left;)");
- if ( num == EVENT_OBJECT_RIGHT ) strcpy(text, "Tourne ŕ droite (\\key right;)");
- if ( num == EVENT_OBJECT_UP ) strcpy(text, "Avance (\\key up;)");
- if ( num == EVENT_OBJECT_DOWN ) strcpy(text, "Recule (\\key down;)");
- if ( num == EVENT_OBJECT_GASUP ) strcpy(text, "Monte (\\key gup;)");
- if ( num == EVENT_OBJECT_GASDOWN ) strcpy(text, "Descend (\\key gdown;)");
- if ( num == EVENT_OBJECT_HTAKE ) strcpy(text, "Prend ou dépose (\\key action;)");
- if ( num == EVENT_OBJECT_MTAKE ) strcpy(text, "Prend ou dépose (\\key action;)");
- if ( num == EVENT_OBJECT_MFRONT ) strcpy(text, "..devant");
- if ( num == EVENT_OBJECT_MBACK ) strcpy(text, "..derričre");
- if ( num == EVENT_OBJECT_MPOWER ) strcpy(text, "..pile");
- if ( num == EVENT_OBJECT_BHELP ) strcpy(text, "Instructions sur la mission (\\key help;)");
- if ( num == EVENT_OBJECT_BTAKEOFF ) strcpy(text, "Décolle pour terminer la mission");
- if ( num == EVENT_OBJECT_BDERRICK ) strcpy(text, "Construit un derrick");
- if ( num == EVENT_OBJECT_BSTATION ) strcpy(text, "Construit une station");
- if ( num == EVENT_OBJECT_BFACTORY ) strcpy(text, "Construit une fabrique de robots");
- if ( num == EVENT_OBJECT_BREPAIR ) strcpy(text, "Construit un centre de réparation");
- if ( num == EVENT_OBJECT_BCONVERT ) strcpy(text, "Construit un convertisseur");
- if ( num == EVENT_OBJECT_BTOWER ) strcpy(text, "Construit une tour");
- if ( num == EVENT_OBJECT_BRESEARCH ) strcpy(text, "Construit un centre de recherches");
- if ( num == EVENT_OBJECT_BRADAR ) strcpy(text, "Construit un radar");
- if ( num == EVENT_OBJECT_BENERGY ) strcpy(text, "Construit une fabrique de piles");
- if ( num == EVENT_OBJECT_BLABO ) strcpy(text, "Construit un laboratoire");
- if ( num == EVENT_OBJECT_BNUCLEAR ) strcpy(text, "Construit une centrale nucléaire");
- if ( num == EVENT_OBJECT_BPARA ) strcpy(text, "Construit un paratonnerre");
- if ( num == EVENT_OBJECT_BINFO ) strcpy(text, "Construit une borne d'information");
- if ( num == EVENT_OBJECT_GFLAT ) strcpy(text, "Montre si le sol est plat");
- if ( num == EVENT_OBJECT_FCREATE ) strcpy(text, "Pose un drapeau de couleur");
- if ( num == EVENT_OBJECT_FDELETE ) strcpy(text, "Enlčve un drapeau");
- if ( num == EVENT_OBJECT_FCOLORb ) strcpy(text, "\\Drapeaux bleus");
- if ( num == EVENT_OBJECT_FCOLORr ) strcpy(text, "\\Drapeaux rouges");
- if ( num == EVENT_OBJECT_FCOLORg ) strcpy(text, "\\Drapeaux verts");
- if ( num == EVENT_OBJECT_FCOLORy ) strcpy(text, "\\Drapeaux jaunes");
- if ( num == EVENT_OBJECT_FCOLORv ) strcpy(text, "\\Drapeaux violets");
- if ( num == EVENT_OBJECT_FACTORYfa ) strcpy(text, "Fabrique un déménageur volant");
- if ( num == EVENT_OBJECT_FACTORYta ) strcpy(text, "Fabrique un déménageur ŕ chenilles");
- if ( num == EVENT_OBJECT_FACTORYwa ) strcpy(text, "Fabrique un déménageur ŕ roues");
- if ( num == EVENT_OBJECT_FACTORYia ) strcpy(text, "Fabrique un déménageur ŕ pattes");
- if ( num == EVENT_OBJECT_FACTORYfc ) strcpy(text, "Fabrique un shooter volant");
- if ( num == EVENT_OBJECT_FACTORYtc ) strcpy(text, "Fabrique un shooter ŕ chenilles");
- if ( num == EVENT_OBJECT_FACTORYwc ) strcpy(text, "Fabrique un shooter ŕ roues");
- if ( num == EVENT_OBJECT_FACTORYic ) strcpy(text, "Fabrique un shooter ŕ pattes");
- if ( num == EVENT_OBJECT_FACTORYfi ) strcpy(text, "Fabrique un orgaShooter volant");
- if ( num == EVENT_OBJECT_FACTORYti ) strcpy(text, "Fabrique un orgaShooter ŕ chenilles");
- if ( num == EVENT_OBJECT_FACTORYwi ) strcpy(text, "Fabrique un orgaShooter ŕ roues");
- if ( num == EVENT_OBJECT_FACTORYii ) strcpy(text, "Fabrique un orgaShooter ŕ pattes");
- if ( num == EVENT_OBJECT_FACTORYfs ) strcpy(text, "Fabrique un renifleur volant");
- if ( num == EVENT_OBJECT_FACTORYts ) strcpy(text, "Fabrique un renifleur ŕ chenilles");
- if ( num == EVENT_OBJECT_FACTORYws ) strcpy(text, "Fabrique un renifleur ŕ roues");
- if ( num == EVENT_OBJECT_FACTORYis ) strcpy(text, "Fabrique un renifleur ŕ pattes");
- if ( num == EVENT_OBJECT_FACTORYrt ) strcpy(text, "Fabrique un robot secoueur");
- if ( num == EVENT_OBJECT_FACTORYrc ) strcpy(text, "Fabrique un robot phazer");
- if ( num == EVENT_OBJECT_FACTORYrr ) strcpy(text, "Fabrique un robot recycleur");
- if ( num == EVENT_OBJECT_FACTORYrs ) strcpy(text, "Fabrique un robot bouclier");
- if ( num == EVENT_OBJECT_FACTORYsa ) strcpy(text, "Fabrique un robot sous-marin");
- if ( num == EVENT_OBJECT_RTANK ) strcpy(text, "Recherche les chenilles");
- if ( num == EVENT_OBJECT_RFLY ) strcpy(text, "Recherche les robots volants");
- if ( num == EVENT_OBJECT_RTHUMP ) strcpy(text, "Recherche le secoueur");
- if ( num == EVENT_OBJECT_RCANON ) strcpy(text, "Recherche le canon shooter");
- if ( num == EVENT_OBJECT_RTOWER ) strcpy(text, "Recherche la tour de défense");
- if ( num == EVENT_OBJECT_RPHAZER ) strcpy(text, "Recherche le canon phazer");
- if ( num == EVENT_OBJECT_RSHIELD ) strcpy(text, "Recherche le bouclier");
- if ( num == EVENT_OBJECT_RATOMIC ) strcpy(text, "Recherche le nucléaire");
- if ( num == EVENT_OBJECT_RiPAW ) strcpy(text, "Recherche les pattes");
- if ( num == EVENT_OBJECT_RiGUN ) strcpy(text, "Recherche le canon orgaShooter");
- if ( num == EVENT_OBJECT_RESET ) strcpy(text, "Remet au départ");
- if ( num == EVENT_OBJECT_SEARCH ) strcpy(text, "Cherche (\\key action;)");
- if ( num == EVENT_OBJECT_TERRAFORM ) strcpy(text, "Secoue (\\key action;)");
- if ( num == EVENT_OBJECT_FIRE ) strcpy(text, "Tir (\\key action;)");
- if ( num == EVENT_OBJECT_RECOVER ) strcpy(text, "Recycle (\\key action;)");
- if ( num == EVENT_OBJECT_BEGSHIELD ) strcpy(text, "Déploie le bouclier (\\key action;)");
- if ( num == EVENT_OBJECT_ENDSHIELD ) strcpy(text, "Stoppe le bouclier (\\key action;)");
- if ( num == EVENT_OBJECT_DIMSHIELD ) strcpy(text, "Rayon du bouclier");
- if ( num == EVENT_OBJECT_PROGRUN ) strcpy(text, "Exécute le programme sélectionné");
- if ( num == EVENT_OBJECT_PROGEDIT ) strcpy(text, "Edite le programme sélectionné");
- if ( num == EVENT_OBJECT_INFOOK ) strcpy(text, "\\Mettre le SatCom en veille");
- if ( num == EVENT_OBJECT_DELETE ) strcpy(text, "Démolit le bâtiment");
- if ( num == EVENT_OBJECT_GENERGY ) strcpy(text, "Niveau d'énergie");
- if ( num == EVENT_OBJECT_GSHIELD ) strcpy(text, "Niveau du bouclier");
- if ( num == EVENT_OBJECT_GRANGE ) strcpy(text, "Température du réacteur");
- if ( num == EVENT_OBJECT_GPROGRESS ) strcpy(text, "Travail en cours ...");
- if ( num == EVENT_OBJECT_GRADAR ) strcpy(text, "Nombre d'insectes détectés");
- if ( num == EVENT_OBJECT_GINFO ) strcpy(text, "Informations diffusées");
- if ( num == EVENT_OBJECT_COMPASS ) strcpy(text, "Boussole");
-//? if ( num == EVENT_OBJECT_MAP ) strcpy(text, "Mini-carte");
- if ( num == EVENT_OBJECT_MAPZOOM ) strcpy(text, "Zoom mini-carte");
- if ( num == EVENT_OBJECT_CAMERA ) strcpy(text, "Caméra (\\key camera;)");
- if ( num == EVENT_OBJECT_HELP ) strcpy(text, "Instructions sur la sélection");
- if ( num == EVENT_OBJECT_SOLUCE ) strcpy(text, "Donne la solution");
- if ( num == EVENT_OBJECT_SHORTCUT00) strcpy(text, "Permute robots <-> bâtiments");
- if ( num == EVENT_OBJECT_LIMIT ) strcpy(text, "Montre le rayon d'action");
- if ( num == EVENT_DT_VISIT0 ||
- num == EVENT_DT_VISIT1 ||
- num == EVENT_DT_VISIT2 ||
- num == EVENT_DT_VISIT3 ||
- num == EVENT_DT_VISIT4 ) strcpy(text, "Montre l'endroit");
- if ( num == EVENT_DT_END ) strcpy(text, "Continuer");
- if ( num == EVENT_CMD ) strcpy(text, "Console de commande");
- if ( num == EVENT_SPEED ) strcpy(text, "Vitesse du jeu");
-
- if ( num == EVENT_HYPER_PREV ) strcpy(text, "Page précédente");
- if ( num == EVENT_HYPER_NEXT ) strcpy(text, "Page suivante");
- if ( num == EVENT_HYPER_HOME ) strcpy(text, "Page initiale");
- if ( num == EVENT_HYPER_COPY ) strcpy(text, "Copier");
- if ( num == EVENT_HYPER_SIZE1 ) strcpy(text, "Taille 1");
- if ( num == EVENT_HYPER_SIZE2 ) strcpy(text, "Taille 2");
- if ( num == EVENT_HYPER_SIZE3 ) strcpy(text, "Taille 3");
- if ( num == EVENT_HYPER_SIZE4 ) strcpy(text, "Taille 4");
- if ( num == EVENT_HYPER_SIZE5 ) strcpy(text, "Taille 5");
- if ( num == EVENT_SATCOM_HUSTON ) strcpy(text, "Instructions de Houston");
- if ( num == EVENT_SATCOM_SAT ) strcpy(text, "Rapport du satellite");
- if ( num == EVENT_SATCOM_LOADING ) strcpy(text, "Programmes envoyés par Houston");
- if ( num == EVENT_SATCOM_OBJECT ) strcpy(text, "Liste des objets");
- if ( num == EVENT_SATCOM_PROG ) strcpy(text, "Aide ŕ la programmation");
- if ( num == EVENT_SATCOM_SOLUCE ) strcpy(text, "Solution");
-
- if ( num == EVENT_STUDIO_OK ) strcpy(text, "D'accord\\Compiler le programme");
- if ( num == EVENT_STUDIO_CANCEL ) strcpy(text, "Annuler\\Annuler toutes les modifications");
- if ( num == EVENT_STUDIO_NEW ) strcpy(text, "Nouveau");
- if ( num == EVENT_STUDIO_OPEN ) strcpy(text, "Ouvrir (Ctrl+o)");
- if ( num == EVENT_STUDIO_SAVE ) strcpy(text, "Enregistrer (Ctrl+s)");
- if ( num == EVENT_STUDIO_UNDO ) strcpy(text, "Annuler (Ctrl+z)");
- if ( num == EVENT_STUDIO_CUT ) strcpy(text, "Couper (Ctrl+x)");
- if ( num == EVENT_STUDIO_COPY ) strcpy(text, "Copier (Ctrl+c)");
- if ( num == EVENT_STUDIO_PASTE ) strcpy(text, "Coller (Ctrl+v)");
- if ( num == EVENT_STUDIO_SIZE ) strcpy(text, "Taille des caractčres");
- if ( num == EVENT_STUDIO_TOOL ) strcpy(text, "Instructions (\\key help;)");
- if ( num == EVENT_STUDIO_HELP ) strcpy(text, "Aide ŕ la programmation (\\key prog;)");
- if ( num == EVENT_STUDIO_COMPILE ) strcpy(text, "Compiler");
- if ( num == EVENT_STUDIO_RUN ) strcpy(text, "Démarrer/stopper");
- if ( num == EVENT_STUDIO_REALTIME ) strcpy(text, "Pause/continuer");
- if ( num == EVENT_STUDIO_STEP ) strcpy(text, "Un pas");
- }
-
- if ( type == RES_OBJECT )
- {
- if ( num == OBJECT_PORTICO ) strcpy(text, "Portique");
- if ( num == OBJECT_BASE ) strcpy(text, "Vaisseau spatial");
- if ( num == OBJECT_DERRICK ) strcpy(text, "Derrick");
- if ( num == OBJECT_FACTORY ) strcpy(text, "Fabrique de robots");
- if ( num == OBJECT_REPAIR ) strcpy(text, "Centre de réparation");
- if ( num == OBJECT_STATION ) strcpy(text, "Station de recharge");
- if ( num == OBJECT_CONVERT ) strcpy(text, "Conversion minerai en titanium");
- if ( num == OBJECT_TOWER ) strcpy(text, "Tour de défense");
- if ( num == OBJECT_NEST ) strcpy(text, "Nid");
- if ( num == OBJECT_RESEARCH ) strcpy(text, "Centre de recherches");
- if ( num == OBJECT_RADAR ) strcpy(text, "Radar");
- if ( num == OBJECT_INFO ) strcpy(text, "Borne d'information");
- if ( num == OBJECT_ENERGY ) strcpy(text, "Fabrique de piles");
- if ( num == OBJECT_LABO ) strcpy(text, "Laboratoire de matičres organiques");
- if ( num == OBJECT_NUCLEAR ) strcpy(text, "Centrale nucléaire");
- if ( num == OBJECT_PARA ) strcpy(text, "Paratonnerre");
- if ( num == OBJECT_SAFE ) strcpy(text, "Coffre-fort");
- if ( num == OBJECT_HUSTON ) strcpy(text, "Centre de contrôle");
- if ( num == OBJECT_TARGET1 ) strcpy(text, "Cible");
- if ( num == OBJECT_TARGET2 ) strcpy(text, "Cible");
- if ( num == OBJECT_START ) strcpy(text, "Départ");
- if ( num == OBJECT_END ) strcpy(text, "But");
- if ( num == OBJECT_STONE ) strcpy(text, "Minerai de titanium");
- if ( num == OBJECT_URANIUM ) strcpy(text, "Minerai d'uranium");
- if ( num == OBJECT_BULLET ) strcpy(text, "Matičre organique");
- if ( num == OBJECT_METAL ) strcpy(text, "Titanium");
- if ( num == OBJECT_POWER ) strcpy(text, "Pile normale");
- if ( num == OBJECT_ATOMIC ) strcpy(text, "Pile nucléaire");
- if ( num == OBJECT_BBOX ) strcpy(text, "Boîte noire");
- if ( num == OBJECT_KEYa ) strcpy(text, "Clé A");
- if ( num == OBJECT_KEYb ) strcpy(text, "Clé B");
- if ( num == OBJECT_KEYc ) strcpy(text, "Clé C");
- if ( num == OBJECT_KEYd ) strcpy(text, "Clé D");
- if ( num == OBJECT_TNT ) strcpy(text, "Explosif");
- if ( num == OBJECT_BOMB ) strcpy(text, "Mine fixe");
- if ( num == OBJECT_BAG ) strcpy(text, "Sac de survie");
- if ( num == OBJECT_WAYPOINT ) strcpy(text, "Indicateur");
- if ( num == OBJECT_FLAGb ) strcpy(text, "Drapeau bleu");
- if ( num == OBJECT_FLAGr ) strcpy(text, "Drapeau rouge");
- if ( num == OBJECT_FLAGg ) strcpy(text, "Drapeau vert");
- if ( num == OBJECT_FLAGy ) strcpy(text, "Drapeau jaune");
- if ( num == OBJECT_FLAGv ) strcpy(text, "Drapeau violet");
- if ( num == OBJECT_MARKPOWER ) strcpy(text, "Emplacement pour station");
- if ( num == OBJECT_MARKURANIUM ) strcpy(text, "Emplacement pour derrick (uranium)");
- if ( num == OBJECT_MARKKEYa ) strcpy(text, "Emplacement pour derrick (clé A)");
- if ( num == OBJECT_MARKKEYb ) strcpy(text, "Emplacement pour derrick (clé B)");
- if ( num == OBJECT_MARKKEYc ) strcpy(text, "Emplacement pour derrick (clé C)");
- if ( num == OBJECT_MARKKEYd ) strcpy(text, "Emplacement pour derrick (clé D)");
- if ( num == OBJECT_MARKSTONE ) strcpy(text, "Emplacement pour derrick (titanium)");
- if ( num == OBJECT_MOBILEft ) strcpy(text, "Robot d'entraînement");
- if ( num == OBJECT_MOBILEtt ) strcpy(text, "Robot d'entraînement");
- if ( num == OBJECT_MOBILEwt ) strcpy(text, "Robot d'entraînement");
- if ( num == OBJECT_MOBILEit ) strcpy(text, "Robot d'entraînement");
- if ( num == OBJECT_MOBILEfa ) strcpy(text, "Robot déménageur");
- if ( num == OBJECT_MOBILEta ) strcpy(text, "Robot déménageur");
- if ( num == OBJECT_MOBILEwa ) strcpy(text, "Robot déménageur");
- if ( num == OBJECT_MOBILEia ) strcpy(text, "Robot déménageur");
- if ( num == OBJECT_MOBILEfc ) strcpy(text, "Robot shooter");
- if ( num == OBJECT_MOBILEtc ) strcpy(text, "Robot shooter");
- if ( num == OBJECT_MOBILEwc ) strcpy(text, "Robot shooter");
- if ( num == OBJECT_MOBILEic ) strcpy(text, "Robot shooter");
- if ( num == OBJECT_MOBILEfi ) strcpy(text, "Robot orgaShooter");
- if ( num == OBJECT_MOBILEti ) strcpy(text, "Robot orgaShooter");
- if ( num == OBJECT_MOBILEwi ) strcpy(text, "Robot orgaShooter");
- if ( num == OBJECT_MOBILEii ) strcpy(text, "Robot orgaShooter");
- if ( num == OBJECT_MOBILEfs ) strcpy(text, "Robot renifleur");
- if ( num == OBJECT_MOBILEts ) strcpy(text, "Robot renifleur");
- if ( num == OBJECT_MOBILEws ) strcpy(text, "Robot renifleur");
- if ( num == OBJECT_MOBILEis ) strcpy(text, "Robot renifleur");
- if ( num == OBJECT_MOBILErt ) strcpy(text, "Robot secoueur");
- if ( num == OBJECT_MOBILErc ) strcpy(text, "Robot phazer");
- if ( num == OBJECT_MOBILErr ) strcpy(text, "Robot recycleur");
- if ( num == OBJECT_MOBILErs ) strcpy(text, "Robot bouclier");
- if ( num == OBJECT_MOBILEsa ) strcpy(text, "Robot sous-marin");
- if ( num == OBJECT_MOBILEtg ) strcpy(text, "Cible d'entraînement");
- if ( num == OBJECT_HUMAN ) strcpy(text, g_gamerName);
- if ( num == OBJECT_TECH ) strcpy(text, "Technicien");
- if ( num == OBJECT_TOTO ) strcpy(text, "Robbie");
- if ( num == OBJECT_MOTHER ) strcpy(text, "Pondeuse");
- if ( num == OBJECT_ANT ) strcpy(text, "Fourmi");
- if ( num == OBJECT_SPIDER ) strcpy(text, "Araignée");
- if ( num == OBJECT_BEE ) strcpy(text, "Guępe");
- if ( num == OBJECT_WORM ) strcpy(text, "Ver");
- if ( num == OBJECT_EGG ) strcpy(text, "Oeuf");
- if ( num == OBJECT_RUINmobilew1 ) strcpy(text, "Epave de robot");
- if ( num == OBJECT_RUINmobilew2 ) strcpy(text, "Epave de robot");
- if ( num == OBJECT_RUINmobilet1 ) strcpy(text, "Epave de robot");
- if ( num == OBJECT_RUINmobilet2 ) strcpy(text, "Epave de robot");
- if ( num == OBJECT_RUINmobiler1 ) strcpy(text, "Epave de robot");
- if ( num == OBJECT_RUINmobiler2 ) strcpy(text, "Epave de robot");
- if ( num == OBJECT_RUINfactory ) strcpy(text, "Bâtiment en ruine");
- if ( num == OBJECT_RUINdoor ) strcpy(text, "Bâtiment en ruine");
- if ( num == OBJECT_RUINsupport ) strcpy(text, "Déchet");
- if ( num == OBJECT_RUINradar ) strcpy(text, "Bâtiment en ruine");
- if ( num == OBJECT_RUINconvert ) strcpy(text, "Bâtiment en ruine");
- if ( num == OBJECT_RUINbase ) strcpy(text, "Epave de vaisseau spatial");
- if ( num == OBJECT_RUINhead ) strcpy(text, "Epave de vaisseau spatial");
- if ( num == OBJECT_APOLLO1 ||
- num == OBJECT_APOLLO3 ||
- num == OBJECT_APOLLO4 ||
- num == OBJECT_APOLLO5 ) strcpy(text, "Vestige d'une mission Apollo");
- if ( num == OBJECT_APOLLO2 ) strcpy(text, "Lunar Roving Vehicle");
- }
-
- if ( type == RES_ERR )
- {
- strcpy(text, "Erreur");
- if ( num == ERR_CMD ) strcpy(text, "Commande inconnue");
- if ( num == ERR_INSTALL ) strcpy(text, "COLOBOT n'est pas installé.");
- if ( num == ERR_NOCD ) strcpy(text, "Veuillez mettre le CD de COLOBOT\net relancer le jeu.");
- if ( num == ERR_MANIP_VEH ) strcpy(text, "Robot inadapté");
- if ( num == ERR_MANIP_FLY ) strcpy(text, "Impossible en vol");
- if ( num == ERR_MANIP_BUSY ) strcpy(text, "Porte déjŕ quelque chose");
- if ( num == ERR_MANIP_NIL ) strcpy(text, "Rien ŕ prendre");
- if ( num == ERR_MANIP_MOTOR ) strcpy(text, "Impossible en mouvement");
- if ( num == ERR_MANIP_OCC ) strcpy(text, "Emplacement occupé");
- if ( num == ERR_MANIP_FRIEND ) strcpy(text, "Pas d'autre robot");
- if ( num == ERR_MANIP_RADIO ) strcpy(text, "Vous ne pouvez pas transporter un objet radioactif");
- if ( num == ERR_MANIP_WATER ) strcpy(text, "Vous ne pouvez pas transporter un objet sous l'eau");
- if ( num == ERR_MANIP_EMPTY ) strcpy(text, "Rien ŕ déposer");
- if ( num == ERR_BUILD_FLY ) strcpy(text, "Impossible en vol");
- if ( num == ERR_BUILD_WATER ) strcpy(text, "Impossible sous l'eau");
- if ( num == ERR_BUILD_ENERGY ) strcpy(text, "Pas assez d'énergie");
- if ( num == ERR_BUILD_METALAWAY ) strcpy(text, "Titanium trop loin");
- if ( num == ERR_BUILD_METALNEAR ) strcpy(text, "Titanium trop proche");
- if ( num == ERR_BUILD_METALINEX ) strcpy(text, "Titanium inexistant");
- if ( num == ERR_BUILD_FLAT ) strcpy(text, "Sol pas assez plat");
- if ( num == ERR_BUILD_FLATLIT ) strcpy(text, "Sol plat pas assez grand");
- if ( num == ERR_BUILD_BUSY ) strcpy(text, "Emplacement occupé");
- if ( num == ERR_BUILD_BASE ) strcpy(text, "Trop proche du vaisseau spatial");
- if ( num == ERR_BUILD_NARROW ) strcpy(text, "Trop proche d'un bâtiment");
- if ( num == ERR_BUILD_MOTOR ) strcpy(text, "Impossible en mouvement");
- if ( num == ERR_SEARCH_FLY ) strcpy(text, "Impossible en vol");
- if ( num == ERR_SEARCH_VEH ) strcpy(text, "Robot inadapté");
- if ( num == ERR_SEARCH_MOTOR ) strcpy(text, "Impossible en mouvement");
- if ( num == ERR_TERRA_VEH ) strcpy(text, "Robot inadapté");
- if ( num == ERR_TERRA_ENERGY ) strcpy(text, "Pas assez d'énergie");
- if ( num == ERR_TERRA_FLOOR ) strcpy(text, "Terrain inadapté");
- if ( num == ERR_TERRA_BUILDING ) strcpy(text, "Bâtiment trop proche");
- if ( num == ERR_TERRA_OBJECT ) strcpy(text, "Objet trop proche");
- if ( num == ERR_RECOVER_VEH ) strcpy(text, "Robot inadapté");
- if ( num == ERR_RECOVER_ENERGY ) strcpy(text, "Pas assez d'énergie");
- if ( num == ERR_RECOVER_NULL ) strcpy(text, "Rien ŕ recycler");
- if ( num == ERR_SHIELD_VEH ) strcpy(text, "Robot inadapté");
- if ( num == ERR_SHIELD_ENERGY ) strcpy(text, "Plus d'énergie");
- if ( num == ERR_MOVE_IMPOSSIBLE ) strcpy(text, "Déplacement impossible");
- if ( num == ERR_GOTO_IMPOSSIBLE ) strcpy(text, "Chemin introuvable");
- if ( num == ERR_GOTO_ITER ) strcpy(text, "Position inaccessible");
- if ( num == ERR_GOTO_BUSY ) strcpy(text, "Destination occupée");
- if ( num == ERR_FIRE_VEH ) strcpy(text, "Robot inadapté");
- if ( num == ERR_FIRE_ENERGY ) strcpy(text, "Pas assez d'énergie");
- if ( num == ERR_FIRE_FLY ) strcpy(text, "Impossible en vol");
- if ( num == ERR_CONVERT_EMPTY ) strcpy(text, "Pas de minerai de titanium ŕ convertir");
- if ( num == ERR_DERRICK_NULL ) strcpy(text, "Pas de minerai en sous-sol");
- if ( num == ERR_STATION_NULL ) strcpy(text, "Pas d'énergie en sous-sol");
- if ( num == ERR_TOWER_POWER ) strcpy(text, "Pas de pile");
- if ( num == ERR_TOWER_ENERGY ) strcpy(text, "Plus d'énergie");
- if ( num == ERR_RESEARCH_POWER ) strcpy(text, "Pas de pile");
- if ( num == ERR_RESEARCH_ENERGY ) strcpy(text, "Plus assez d'énergie");
- if ( num == ERR_RESEARCH_TYPE ) strcpy(text, "Pas le bon type de pile");
- if ( num == ERR_RESEARCH_ALREADY) strcpy(text, "Recherche déjŕ effectuée");
- if ( num == ERR_ENERGY_NULL ) strcpy(text, "Pas d'énergie en sous-sol");
- if ( num == ERR_ENERGY_LOW ) strcpy(text, "Pas encore assez d'énergie");
- if ( num == ERR_ENERGY_EMPTY ) strcpy(text, "Pas de titanium ŕ transformer");
- if ( num == ERR_ENERGY_BAD ) strcpy(text, "Ne transforme que le titanium");
- if ( num == ERR_BASE_DLOCK ) strcpy(text, "Portes bloquées par un robot ou un objet");
- if ( num == ERR_BASE_DHUMAN ) strcpy(text, "Vous devez embarquer pour pouvoir décoller");
- if ( num == ERR_LABO_NULL ) strcpy(text, "Rien ŕ analyser");
- if ( num == ERR_LABO_BAD ) strcpy(text, "N'analyse que la matičre organique");
- if ( num == ERR_LABO_ALREADY ) strcpy(text, "Analyse déjŕ effectuée");
- if ( num == ERR_NUCLEAR_NULL ) strcpy(text, "Pas d'énergie en sous-sol");
- if ( num == ERR_NUCLEAR_LOW ) strcpy(text, "Pas encore assez d'énergie");
- if ( num == ERR_NUCLEAR_EMPTY ) strcpy(text, "Pas d'uranium ŕ transformer");
- if ( num == ERR_NUCLEAR_BAD ) strcpy(text, "Ne transforme que l'uranium");
- if ( num == ERR_FACTORY_NULL ) strcpy(text, "Pas de titanium");
- if ( num == ERR_FACTORY_NEAR ) strcpy(text, "Quelque chose est trop proche");
- if ( num == ERR_RESET_NEAR ) strcpy(text, "Emplacement occupé");
- if ( num == ERR_INFO_NULL ) strcpy(text, "Pas trouvé de borne d'information");
- if ( num == ERR_VEH_VIRUS ) strcpy(text, "Un programme est infecté par un virus");
- if ( num == ERR_BAT_VIRUS ) strcpy(text, "Infecté par un virus, ne fonctionne plus temporairement");
- if ( num == ERR_VEH_POWER ) strcpy(text, "Pas de pile");
- if ( num == ERR_VEH_ENERGY ) strcpy(text, "Plus d'énergie");
- if ( num == ERR_FLAG_FLY ) strcpy(text, "Impossible en vol");
- if ( num == ERR_FLAG_WATER ) strcpy(text, "Impossible en nageant");
- if ( num == ERR_FLAG_MOTOR ) strcpy(text, "Impossible en mouvement");
- if ( num == ERR_FLAG_BUSY ) strcpy(text, "Impossible en portant un objet");
- if ( num == ERR_FLAG_CREATE ) strcpy(text, "Trop de drapeaux de cette couleur (maximum 5)");
- if ( num == ERR_FLAG_PROXY ) strcpy(text, "Trop proche d'un drapeau existant");
- if ( num == ERR_FLAG_DELETE ) strcpy(text, "Aucun drapeau ŕ proximité");
- if ( num == ERR_MISSION_NOTERM ) strcpy(text, "La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)");
- if ( num == ERR_DELETEMOBILE ) strcpy(text, "Robot détruit");
- if ( num == ERR_DELETEBUILDING ) strcpy(text, "Bâtiment détruit");
- if ( num == ERR_TOOMANY ) strcpy(text, "Création impossible, il y a trop d'objets");
-
- if ( num == INFO_BUILD ) strcpy(text, "Bâtiment terminé");
- if ( num == INFO_CONVERT ) strcpy(text, "Titanium disponible");
- if ( num == INFO_RESEARCH ) strcpy(text, "Recherche terminée");
- if ( num == INFO_RESEARCHTANK ) strcpy(text, "Fabrication d'un robot ŕ chenilles possible");
- if ( num == INFO_RESEARCHFLY ) strcpy(text, "Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)");
- if ( num == INFO_RESEARCHTHUMP ) strcpy(text, "Fabrication d'un robot secoueur possible");
- if ( num == INFO_RESEARCHCANON ) strcpy(text, "Fabrication de robots shooter possible");
- if ( num == INFO_RESEARCHTOWER ) strcpy(text, "Construction d'une tour de défense possible");
- if ( num == INFO_RESEARCHPHAZER ) strcpy(text, "Fabrication d'un robot phazer possible");
- if ( num == INFO_RESEARCHSHIELD ) strcpy(text, "Fabrication d'un robot bouclier possible");
- if ( num == INFO_RESEARCHATOMIC ) strcpy(text, "Construction d'une centrale nucléaire possible");
- if ( num == INFO_FACTORY ) strcpy(text, "Nouveau robot disponible");
- if ( num == INFO_LABO ) strcpy(text, "Analyse terminée");
- if ( num == INFO_ENERGY ) strcpy(text, "Pile disponible");
- if ( num == INFO_NUCLEAR ) strcpy(text, "Pile nucléaire disponible");
- if ( num == INFO_FINDING ) strcpy(text, "Vous avez trouvé un objet utilisable");
- if ( num == INFO_MARKPOWER ) strcpy(text, "Emplacement pour station trouvé");
- if ( num == INFO_MARKURANIUM ) strcpy(text, "Emplacement pour derrick trouvé");
- if ( num == INFO_MARKSTONE ) strcpy(text, "Emplacement pour derrick trouvé");
- if ( num == INFO_MARKKEYa ) strcpy(text, "Emplacement pour derrick trouvé");
- if ( num == INFO_MARKKEYb ) strcpy(text, "Emplacement pour derrick trouvé");
- if ( num == INFO_MARKKEYc ) strcpy(text, "Emplacement pour derrick trouvé");
- if ( num == INFO_MARKKEYd ) strcpy(text, "Emplacement pour derrick trouvé");
- if ( num == INFO_WIN ) strcpy(text, "<<< Bravo, mission terminée >>>");
- if ( num == INFO_LOST ) strcpy(text, "<<< Désolé, mission échouée >>>");
- if ( num == INFO_LOSTq ) strcpy(text, "<<< Désolé, mission échouée >>>");
- if ( num == INFO_WRITEOK ) strcpy(text, "Enregistrement effectué");
- if ( num == INFO_DELETEPATH ) strcpy(text, "Indicateur atteint");
- if ( num == INFO_DELETEMOTHER ) strcpy(text, "Pondeuse mortellement touchée");
- if ( num == INFO_DELETEANT ) strcpy(text, "Fourmi mortellement touchée");
- if ( num == INFO_DELETEBEE ) strcpy(text, "Guępe mortellement touchée");
- if ( num == INFO_DELETEWORM ) strcpy(text, "Ver mortellement touché");
- if ( num == INFO_DELETESPIDER ) strcpy(text, "Araignée mortellement touchée");
- if ( num == INFO_BEGINSATCOM ) strcpy(text, "Consultez votre SatCom en appuyant sur \\key help;");
- }
-
- if ( type == RES_CBOT )
- {
- strcpy(text, "Erreur");
- if ( num == TX_OPENPAR ) strcpy(text, "Il manque une parenthčse ouvrante");
- if ( num == TX_CLOSEPAR ) strcpy(text, "Il manque une parenthčse fermante");
- if ( num == TX_NOTBOOL ) strcpy(text, "L'expression doit ętre un boolean");
- if ( num == TX_UNDEFVAR ) strcpy(text, "Variable non déclarée");
- if ( num == TX_BADLEFT ) strcpy(text, "Assignation impossible");
- if ( num == TX_ENDOF ) strcpy(text, "Terminateur point-virgule non trouvé");
- if ( num == TX_OUTCASE ) strcpy(text, "Instruction ""case"" hors d'un bloc ""switch""");
- if ( num == TX_NOTERM ) strcpy(text, "Instructions aprčs la fin");
- if ( num == TX_CLOSEBLK ) strcpy(text, "Il manque la fin du bloc");
- if ( num == TX_ELSEWITHOUTIF ) strcpy(text, "Instruction ""else"" sans ""if"" correspondant");
- if ( num == TX_OPENBLK ) strcpy(text, "Début d'un bloc attendu");
- if ( num == TX_BADTYPE ) strcpy(text, "Mauvais type de résultat pour l'assignation");
- if ( num == TX_REDEFVAR ) strcpy(text, "Redéfinition d'une variable");
- if ( num == TX_BAD2TYPE ) strcpy(text, "Les deux opérandes ne sont pas de types compatibles");
- if ( num == TX_UNDEFCALL ) strcpy(text, "Routine inconnue");
- if ( num == TX_MISDOTS ) strcpy(text, "Séparateur "" : "" attendu");
- if ( num == TX_WHILE ) strcpy(text, "Manque le mot ""while""");
- if ( num == TX_BREAK ) strcpy(text, "Instruction ""break"" en dehors d'une boucle");
- if ( num == TX_LABEL ) strcpy(text, "Un label ne peut se placer que devant un ""for"", un ""while"", un ""do"" ou un ""switch""");
- if ( num == TX_NOLABEL ) strcpy(text, "Cette étiquette n'existe pas");
- if ( num == TX_NOCASE ) strcpy(text, "Manque une instruction ""case""");
- if ( num == TX_BADNUM ) strcpy(text, "Un nombre est attendu");
- if ( num == TX_VOID ) strcpy(text, "Paramčtre void");
- if ( num == TX_NOTYP ) strcpy(text, "Déclaration de type attendu");
- if ( num == TX_NOVAR ) strcpy(text, "Nom d'une variable attendu");
- if ( num == TX_NOFONC ) strcpy(text, "Nom de la fonction attendu");
- if ( num == TX_OVERPARAM ) strcpy(text, "Trop de paramčtres");
- if ( num == TX_REDEF ) strcpy(text, "Cette fonction existe déjŕ");
- if ( num == TX_LOWPARAM ) strcpy(text, "Pas assez de paramčtres");
- if ( num == TX_BADPARAM ) strcpy(text, "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramčtre(s)");
- if ( num == TX_NUMPARAM ) strcpy(text, "Aucune fonction de ce nom n'accepte ce nombre de paramčtres");
- if ( num == TX_NOITEM ) strcpy(text, "Cet élément n'existe pas dans cette classe");
- if ( num == TX_DOT ) strcpy(text, "L'objet n'est pas une instance d'une classe");
- if ( num == TX_NOCONST ) strcpy(text, "Il n'y a pas de constructeur approprié");
- if ( num == TX_REDEFCLASS ) strcpy(text, "Cette classe existe déjŕ");
- if ( num == TX_CLBRK ) strcpy(text, """ ] "" attendu");
- if ( num == TX_RESERVED ) strcpy(text, "Ce mot est réservé");
- if ( num == TX_BADNEW ) strcpy(text, "Mauvais argument pour ""new""");
- if ( num == TX_OPBRK ) strcpy(text, """ [ "" attendu");
- if ( num == TX_BADSTRING ) strcpy(text, "Une chaîne de caractčre est attendue");
- if ( num == TX_BADINDEX ) strcpy(text, "Mauvais type d'index");
- if ( num == TX_PRIVATE ) strcpy(text, "Elément protégé");
- if ( num == TX_NOPUBLIC ) strcpy(text, "Public requis");
- if ( num == TX_DIVZERO ) strcpy(text, "Division par zéro");
- if ( num == TX_NOTINIT ) strcpy(text, "Variable non initialisée");
- if ( num == TX_BADTHROW ) strcpy(text, "Valeur négative refusée pour ""throw""");
- if ( num == TX_NORETVAL ) strcpy(text, "La fonction n'a pas retourné de résultat");
- if ( num == TX_NORUN ) strcpy(text, "Pas de fonction en exécution");
- if ( num == TX_NOCALL ) strcpy(text, "Appel d'une fonction inexistante");
- if ( num == TX_NOCLASS ) strcpy(text, "Cette classe n'existe pas");
- if ( num == TX_NULLPT ) strcpy(text, "Objet n'existe pas");
- if ( num == TX_OPNAN ) strcpy(text, "Opération sur un ""nan""");
- if ( num == TX_OUTARRAY ) strcpy(text, "Accčs hors du tableau");
- if ( num == TX_STACKOVER ) strcpy(text, "Débordement de la pile");
- if ( num == TX_DELETEDPT ) strcpy(text, "Objet inaccessible");
- if ( num == TX_FILEOPEN ) strcpy(text, "Ouverture du fichier impossible");
- if ( num == TX_NOTOPEN ) strcpy(text, "Le fichier n'est pas ouvert");
- if ( num == TX_ERRREAD ) strcpy(text, "Erreur ŕ la lecture");
- if ( num == TX_ERRWRITE ) strcpy(text, "Erreur ŕ l'écriture");
- }
-
- if ( type == RES_KEY )
- {
- if ( num == 0 ) strcpy(text, "< aucune >");
- if ( num == VK_LEFT ) strcpy(text, "Flčche Gauche");
- if ( num == VK_RIGHT ) strcpy(text, "Flčche Droite");
- if ( num == VK_UP ) strcpy(text, "Flčche Haut");
- if ( num == VK_DOWN ) strcpy(text, "Flčche Bas");
- if ( num == VK_CANCEL ) strcpy(text, "Control-break");
- if ( num == VK_BACK ) strcpy(text, "<--");
- if ( num == VK_TAB ) strcpy(text, "Tab");
- if ( num == VK_CLEAR ) strcpy(text, "Clear");
- if ( num == VK_RETURN ) strcpy(text, "Entrée");
- if ( num == VK_SHIFT ) strcpy(text, "Shift");
- if ( num == VK_CONTROL ) strcpy(text, "Ctrl");
- if ( num == VK_MENU ) strcpy(text, "Alt");
- if ( num == VK_PAUSE ) strcpy(text, "Pause");
- if ( num == VK_CAPITAL ) strcpy(text, "Caps Lock");
- if ( num == VK_ESCAPE ) strcpy(text, "Esc");
- if ( num == VK_SPACE ) strcpy(text, "Espace");
- if ( num == VK_PRIOR ) strcpy(text, "Page Up");
- if ( num == VK_NEXT ) strcpy(text, "Page Down");
- if ( num == VK_END ) strcpy(text, "End");
- if ( num == VK_HOME ) strcpy(text, "Home");
- if ( num == VK_SELECT ) strcpy(text, "Select");
- if ( num == VK_EXECUTE ) strcpy(text, "Execute");
- if ( num == VK_SNAPSHOT ) strcpy(text, "Print Scrn");
- if ( num == VK_INSERT ) strcpy(text, "Insert");
- if ( num == VK_DELETE ) strcpy(text, "Delete");
- if ( num == VK_HELP ) strcpy(text, "Help");
- if ( num == VK_LWIN ) strcpy(text, "Left Windows");
- if ( num == VK_RWIN ) strcpy(text, "Right Windows");
- if ( num == VK_APPS ) strcpy(text, "Application key");
- if ( num == VK_NUMPAD0 ) strcpy(text, "NumPad 0");
- if ( num == VK_NUMPAD1 ) strcpy(text, "NumPad 1");
- if ( num == VK_NUMPAD2 ) strcpy(text, "NumPad 2");
- if ( num == VK_NUMPAD3 ) strcpy(text, "NumPad 3");
- if ( num == VK_NUMPAD4 ) strcpy(text, "NumPad 4");
- if ( num == VK_NUMPAD5 ) strcpy(text, "NumPad 5");
- if ( num == VK_NUMPAD6 ) strcpy(text, "NumPad 6");
- if ( num == VK_NUMPAD7 ) strcpy(text, "NumPad 7");
- if ( num == VK_NUMPAD8 ) strcpy(text, "NumPad 8");
- if ( num == VK_NUMPAD9 ) strcpy(text, "NumPad 9");
- if ( num == VK_MULTIPLY ) strcpy(text, "NumPad *");
- if ( num == VK_ADD ) strcpy(text, "NumPad +");
- if ( num == VK_SEPARATOR ) strcpy(text, "NumPad sep");
- if ( num == VK_SUBTRACT ) strcpy(text, "NumPad -");
- if ( num == VK_DECIMAL ) strcpy(text, "NumPad .");
- if ( num == VK_DIVIDE ) strcpy(text, "NumPad /");
- if ( num == VK_F1 ) strcpy(text, "F1");
- if ( num == VK_F2 ) strcpy(text, "F2");
- if ( num == VK_F3 ) strcpy(text, "F3");
- if ( num == VK_F4 ) strcpy(text, "F4");
- if ( num == VK_F5 ) strcpy(text, "F5");
- if ( num == VK_F6 ) strcpy(text, "F6");
- if ( num == VK_F7 ) strcpy(text, "F7");
- if ( num == VK_F8 ) strcpy(text, "F8");
- if ( num == VK_F9 ) strcpy(text, "F9");
- if ( num == VK_F10 ) strcpy(text, "F10");
- if ( num == VK_F11 ) strcpy(text, "F11");
- if ( num == VK_F12 ) strcpy(text, "F12");
- if ( num == VK_F13 ) strcpy(text, "F13");
- if ( num == VK_F14 ) strcpy(text, "F14");
- if ( num == VK_F15 ) strcpy(text, "F15");
- if ( num == VK_F16 ) strcpy(text, "F16");
- if ( num == VK_F17 ) strcpy(text, "F17");
- if ( num == VK_F18 ) strcpy(text, "F18");
- if ( num == VK_F19 ) strcpy(text, "F19");
- if ( num == VK_F20 ) strcpy(text, "F20");
- if ( num == VK_NUMLOCK ) strcpy(text, "Num Lock");
- if ( num == VK_SCROLL ) strcpy(text, "Scroll");
- if ( num == VK_ATTN ) strcpy(text, "Attn");
- if ( num == VK_CRSEL ) strcpy(text, "CrSel");
- if ( num == VK_EXSEL ) strcpy(text, "ExSel");
- if ( num == VK_EREOF ) strcpy(text, "Erase EOF");
- if ( num == VK_PLAY ) strcpy(text, "Play");
- if ( num == VK_ZOOM ) strcpy(text, "Zoom");
- if ( num == VK_PA1 ) strcpy(text, "PA1");
- if ( num == VK_OEM_CLEAR ) strcpy(text, "Clear");
- if ( num == VK_BUTTON1 ) strcpy(text, "Bouton 1");
- if ( num == VK_BUTTON2 ) strcpy(text, "Bouton 2");
- if ( num == VK_BUTTON3 ) strcpy(text, "Bouton 3");
- if ( num == VK_BUTTON4 ) strcpy(text, "Bouton 4");
- if ( num == VK_BUTTON5 ) strcpy(text, "Bouton 5");
- if ( num == VK_BUTTON6 ) strcpy(text, "Bouton 6");
- if ( num == VK_BUTTON7 ) strcpy(text, "Bouton 7");
- if ( num == VK_BUTTON8 ) strcpy(text, "Bouton 8");
- if ( num == VK_BUTTON9 ) strcpy(text, "Bouton 9");
- if ( num == VK_BUTTON10 ) strcpy(text, "Bouton 10");
- if ( num == VK_BUTTON11 ) strcpy(text, "Bouton 11");
- if ( num == VK_BUTTON12 ) strcpy(text, "Bouton 12");
- if ( num == VK_BUTTON13 ) strcpy(text, "Bouton 13");
- if ( num == VK_BUTTON14 ) strcpy(text, "Bouton 14");
- if ( num == VK_BUTTON15 ) strcpy(text, "Bouton 15");
- if ( num == VK_BUTTON16 ) strcpy(text, "Bouton 16");
- if ( num == VK_BUTTON17 ) strcpy(text, "Bouton 17");
- if ( num == VK_BUTTON18 ) strcpy(text, "Bouton 18");
- if ( num == VK_BUTTON19 ) strcpy(text, "Bouton 19");
- if ( num == VK_BUTTON20 ) strcpy(text, "Bouton 20");
- if ( num == VK_BUTTON21 ) strcpy(text, "Bouton 21");
- if ( num == VK_BUTTON22 ) strcpy(text, "Bouton 22");
- if ( num == VK_BUTTON23 ) strcpy(text, "Bouton 23");
- if ( num == VK_BUTTON24 ) strcpy(text, "Bouton 24");
- if ( num == VK_BUTTON25 ) strcpy(text, "Bouton 25");
- if ( num == VK_BUTTON26 ) strcpy(text, "Bouton 26");
- if ( num == VK_BUTTON27 ) strcpy(text, "Bouton 27");
- if ( num == VK_BUTTON28 ) strcpy(text, "Bouton 28");
- if ( num == VK_BUTTON29 ) strcpy(text, "Bouton 29");
- if ( num == VK_BUTTON30 ) strcpy(text, "Bouton 30");
- if ( num == VK_BUTTON31 ) strcpy(text, "Bouton 31");
- if ( num == VK_BUTTON32 ) strcpy(text, "Bouton 32");
- if ( num == VK_WHEELUP ) strcpy(text, "Molette haut");
- if ( num == VK_WHEELDOWN ) strcpy(text, "Molette bas");
- }
-#endif
-
-#if _POLISH
- if ( type == RES_TEXT )
- {
- #if _FULL
- if ( num == RT_VERSION_ID ) strcpy(text, "Wersja 1.9 /pl");
- #endif
- #if _NET | _SCHOOL
- if ( num == RT_VERSION_ID ) strcpy(text, "Szkoła 1.9 /pl");
- #endif
- #if _DEMO
- if ( num == RT_VERSION_ID ) strcpy(text, "Demo 1.9 /pl");
- #endif
- if ( num == RT_DISINFO_TITLE ) strcpy(text, "SatCom");
- if ( num == RT_WINDOW_MAXIMIZED ) strcpy(text, "Powiększ");
- if ( num == RT_WINDOW_MINIMIZED ) strcpy(text, "Pomniejsz");
- if ( num == RT_WINDOW_STANDARD ) strcpy(text, "Normalna wielkość");
- if ( num == RT_WINDOW_CLOSE ) strcpy(text, "Zamknij");
-
- if ( num == RT_STUDIO_TITLE ) strcpy(text, "Edytor programu");
- if ( num == RT_SCRIPT_NEW ) strcpy(text, "Nowy");
- if ( num == RT_NAME_DEFAULT ) strcpy(text, "Gracz");
- if ( num == RT_IO_NEW ) strcpy(text, "Nowy ...");
- if ( num == RT_KEY_OR ) strcpy(text, " lub ");
-
- if ( num == RT_TITLE_BASE ) strcpy(text, "COLOBOT");
- if ( num == RT_TITLE_INIT ) strcpy(text, "COLOBOT");
- if ( num == RT_TITLE_TRAINER ) strcpy(text, "Ćwiczenia programistyczne");
- if ( num == RT_TITLE_DEFI ) strcpy(text, "Wyzwania");
- if ( num == RT_TITLE_MISSION ) strcpy(text, "Misje");
- if ( num == RT_TITLE_FREE ) strcpy(text, "Swobodna gra");
- if ( num == RT_TITLE_USER ) strcpy(text, "Poziom użytkownika");
- if ( num == RT_TITLE_PROTO ) strcpy(text, "Prototypy");
- if ( num == RT_TITLE_SETUP ) strcpy(text, "Opcje");
- if ( num == RT_TITLE_NAME ) strcpy(text, "Imię gracza");
- if ( num == RT_TITLE_PERSO ) strcpy(text, "Dostosuj wygląd");
- if ( num == RT_TITLE_WRITE ) strcpy(text, "Zapisz bieżącą misję");
- if ( num == RT_TITLE_READ ) strcpy(text, "Wczytaj zapisaną misję");
-
- if ( num == RT_PLAY_CHAPt ) strcpy(text, " Rozdziały:");
- if ( num == RT_PLAY_CHAPd ) strcpy(text, " Rozdziały:");
- if ( num == RT_PLAY_CHAPm ) strcpy(text, " Planety:");
- if ( num == RT_PLAY_CHAPf ) strcpy(text, " Planety:");
- if ( num == RT_PLAY_CHAPu ) strcpy(text, " Poziom użytkownika:");
- if ( num == RT_PLAY_CHAPp ) strcpy(text, " Planety:");
- if ( num == RT_PLAY_LISTt ) strcpy(text, " Ćwiczenia w tym rozdziale:");
- if ( num == RT_PLAY_LISTd ) strcpy(text, " Wyzwania w tym rozdziale:");
- if ( num == RT_PLAY_LISTm ) strcpy(text, " Misje na tej planecie:");
- if ( num == RT_PLAY_LISTf ) strcpy(text, " Swobodna gra na tej planecie:");
- if ( num == RT_PLAY_LISTu ) strcpy(text, " Misje na tym poziomie:");
- if ( num == RT_PLAY_LISTp ) strcpy(text, " Prototypy na tej planecie:");
- if ( num == RT_PLAY_RESUME ) strcpy(text, " Streszczenie:");
-
- if ( num == RT_SETUP_DEVICE ) strcpy(text, " Sterowniki:");
- if ( num == RT_SETUP_MODE ) strcpy(text, " Rozdzielczość:");
- if ( num == RT_SETUP_KEY1 ) strcpy(text, "1) Najpierw kliknij klawisz, który chcesz przedefiniować.");
- if ( num == RT_SETUP_KEY2 ) strcpy(text, "2) Następnie naciśnij klawisz, którego chcesz używać.");
-
- if ( num == RT_PERSO_FACE ) strcpy(text, "Rodzaj twarzy:");
- if ( num == RT_PERSO_GLASSES ) strcpy(text, "Okulary:");
- if ( num == RT_PERSO_HAIR ) strcpy(text, "Kolor włosów:");
- if ( num == RT_PERSO_COMBI ) strcpy(text, "Kolor skafandra:");
- if ( num == RT_PERSO_BAND ) strcpy(text, "Kolor pasków:");
-
- if ( num == RT_DIALOG_TITLE ) strcpy(text, "COLOBOT");
- if ( num == RT_DIALOG_ABORT ) strcpy(text, "Opuścić misję?");
- if ( num == RT_DIALOG_QUIT ) strcpy(text, "Czy na pewno chcesz opuścić grę COLOBOT?");
- if ( num == RT_DIALOG_YES ) strcpy(text, "Przerwij\\Przerywa bieżącą misję");
- if ( num == RT_DIALOG_NO ) strcpy(text, "Kontynuuj\\Kontynuuje bieżącą misję");
- if ( num == RT_DIALOG_YESQUIT ) strcpy(text, "Zakończ\\Kończy grę COLOTOT");
- if ( num == RT_DIALOG_NOQUIT ) strcpy(text, "Kontynuuj\\Kontynuuje grę");
- if ( num == RT_DIALOG_DELOBJ ) strcpy(text, "Czy na pewno chcesz zniszczyć zaznaczony budynek?");
- if ( num == RT_DIALOG_DELGAME ) strcpy(text, "Czy na pewno chcesz skasować grę gracza %s? ");
- if ( num == RT_DIALOG_YESDEL ) strcpy(text, "Usuń");
- if ( num == RT_DIALOG_NODEL ) strcpy(text, "Anuluj");
- if ( num == RT_DIALOG_LOADING ) strcpy(text, "WCZYTYWANIE");
-
- if ( num == RT_STUDIO_LISTTT ) strcpy(text, "Skróty klawiszowe (\\key cbot;)");
- if ( num == RT_STUDIO_COMPOK ) strcpy(text, "Program skompilowany (0 błędów)");
- if ( num == RT_STUDIO_PROGSTOP ) strcpy(text, "Program zakończony");
-
- if ( num == RT_SATCOM_LIST ) strcpy(text, "\\b;Lista obiektów\n");
- if ( num == RT_SATCOM_BOT ) strcpy(text, "\\b;Roboty\n");
- if ( num == RT_SATCOM_BUILDING ) strcpy(text, "\\b;Budynki\n");
- if ( num == RT_SATCOM_FRET ) strcpy(text, "\\b;Obiekty ruchome\n");
- if ( num == RT_SATCOM_ALIEN ) strcpy(text, "\\b;Obcy\n");
- if ( num == RT_SATCOM_NULL ) strcpy(text, "\\c; (brak)\\n;\n");
- if ( num == RT_SATCOM_ERROR1 ) strcpy(text, "\\b;Błąd\n");
- if ( num == RT_SATCOM_ERROR2 ) strcpy(text, "Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object\\radar;.\n");
-
- if ( num == RT_IO_OPEN ) strcpy(text, "Otwórz");
- if ( num == RT_IO_SAVE ) strcpy(text, "Zapisz");
- if ( num == RT_IO_LIST ) strcpy(text, "Folder: %s");
- if ( num == RT_IO_NAME ) strcpy(text, "Nazwa:");
- if ( num == RT_IO_DIR ) strcpy(text, "Folder:");
- if ( num == RT_IO_PRIVATE ) strcpy(text, "Prywatny\\Folder prywatny");
- if ( num == RT_IO_PUBLIC ) strcpy(text, "Publiczny\\Folder ogólnodostępny");
-
- if ( num == RT_GENERIC_DEV1 ) strcpy(text, "Twórcy:");
- if ( num == RT_GENERIC_DEV2 ) strcpy(text, "www.epsitec.com");
-//? if ( num == RT_GENERIC_EDIT1 ) strcpy(text, "Wersja angielska wydana przez:");
-//? if ( num == RT_GENERIC_EDIT2 ) strcpy(text, "www.?.com");
- if ( num == RT_GENERIC_EDIT1 ) strcpy(text, " ");
- if ( num == RT_GENERIC_EDIT2 ) strcpy(text, " ");
- }
-
- if ( type == RES_EVENT )
- {
- if ( num == EVENT_BUTTON_OK ) strcpy(text, "OK");
- if ( num == EVENT_BUTTON_CANCEL ) strcpy(text, "Anuluj");
- if ( num == EVENT_BUTTON_NEXT ) strcpy(text, "Następny");
- if ( num == EVENT_BUTTON_PREV ) strcpy(text, "Poprzedni");
- if ( num == EVENT_BUTTON_QUIT ) strcpy(text, "Menu (\\key quit;)");
-
- if ( num == EVENT_DIALOG_OK ) strcpy(text, "OK");
- if ( num == EVENT_DIALOG_CANCEL ) strcpy(text, "Anuluj");
-
- if ( num == EVENT_INTERFACE_TRAINER) strcpy(text, "Ćwiczenia\\Ćwiczenia programistyczne");
- if ( num == EVENT_INTERFACE_DEFI ) strcpy(text, "Wyzwania\\Wyzwania programistyczne");
- if ( num == EVENT_INTERFACE_MISSION) strcpy(text, "Misje\\Wybierz misję");
- if ( num == EVENT_INTERFACE_FREE ) strcpy(text, "Swobodna gra\\Swobodna gra bez konkretnych celów");
- if ( num == EVENT_INTERFACE_USER ) strcpy(text, "Poziom\\Poziomy użytkownika");
- if ( num == EVENT_INTERFACE_PROTO ) strcpy(text, "Prototypy\\Prototypy w trakcie rozwijania");
- if ( num == EVENT_INTERFACE_NAME ) strcpy(text, "Nowy gracz\\Wybierz imię gracza");
- if ( num == EVENT_INTERFACE_SETUP ) strcpy(text, "Opcje\\Preferencje");
- if ( num == EVENT_INTERFACE_AGAIN ) strcpy(text, "Uruchom ponownie\\Uruchamia ponownie misję od początku");
- if ( num == EVENT_INTERFACE_WRITE ) strcpy(text, "Zapisz\\Zapisuje bieżącą misję");
- if ( num == EVENT_INTERFACE_READ ) strcpy(text, "Wczytaj\\Wczytuje zapisaną misję");
- if ( num == EVENT_INTERFACE_ABORT ) strcpy(text, "\\Powróć do gry COLOBOT");
- if ( num == EVENT_INTERFACE_QUIT ) strcpy(text, "Zakończ\\Kończy grę COLOTOT");
- if ( num == EVENT_INTERFACE_BACK ) strcpy(text, "<< Wstecz \\Wraca do poprzedniego ekranu");
- if ( num == EVENT_INTERFACE_PLAY ) strcpy(text, "Graj\\Rozpoczyna misję!");
- if ( num == EVENT_INTERFACE_SETUPd ) strcpy(text, "Urządzenie\\Ustawienia sterownika i rozdzielczości");
- if ( num == EVENT_INTERFACE_SETUPg ) strcpy(text, "Grafika\\Ustawienia grafiki");
- if ( num == EVENT_INTERFACE_SETUPp ) strcpy(text, "Gra\\Ustawienia gry");
- if ( num == EVENT_INTERFACE_SETUPc ) strcpy(text, "Sterowanie\\Ustawienia klawiatury, joysticka i myszy");
- if ( num == EVENT_INTERFACE_SETUPs ) strcpy(text, "Dźwięk\\Głośność muzyki i dźwięków gry");
- if ( num == EVENT_INTERFACE_DEVICE ) strcpy(text, "Jednostka");
- if ( num == EVENT_INTERFACE_RESOL ) strcpy(text, "Rozdzielczość");
- if ( num == EVENT_INTERFACE_FULL ) strcpy(text, "Pełny ekran\\Pełny ekran lub tryb okna");
- if ( num == EVENT_INTERFACE_APPLY ) strcpy(text, "Zastosuj zmiany\\Aktywuje zmienione ustawienia");
-
- if ( num == EVENT_INTERFACE_TOTO ) strcpy(text, "Robbie\\Twój asystent");
- if ( num == EVENT_INTERFACE_SHADOW ) strcpy(text, "Cienie\\Cienie na ziemi");
- if ( num == EVENT_INTERFACE_GROUND ) strcpy(text, "Znaki na ziemi\\Znaki na ziemi");
- if ( num == EVENT_INTERFACE_DIRTY ) strcpy(text, "Kurz\\Kurz i bród na robotach i budynkach");
- if ( num == EVENT_INTERFACE_FOG ) strcpy(text, "Mgła\\Mgła");
- if ( num == EVENT_INTERFACE_LENS ) strcpy(text, "Promienie słoneczne\\Promienie słoneczne na niebie");
- if ( num == EVENT_INTERFACE_SKY ) strcpy(text, "Niebo\\Chmury i mgławice");
- if ( num == EVENT_INTERFACE_PLANET ) strcpy(text, "Planety i gwiazdy\\Obiekty astronomiczne na niebie");
- if ( num == EVENT_INTERFACE_LIGHT ) strcpy(text, "Dynamiczne oświetlenie\\Ruchome źródła światła");
- if ( num == EVENT_INTERFACE_PARTI ) strcpy(text, "Liczba cząstek\\Wybuchy, kurz, odbicia, itp.");
- if ( num == EVENT_INTERFACE_CLIP ) strcpy(text, "Głębokość pola\\Maksymalna widoczność");
- if ( num == EVENT_INTERFACE_DETAIL ) strcpy(text, "Szczegóły\\Jakość wizualna obiektów 3D");
- if ( num == EVENT_INTERFACE_TEXTURE) strcpy(text, "Tekstury\\Jakość tekstur ");
- if ( num == EVENT_INTERFACE_GADGET ) strcpy(text, "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych");
- if ( num == EVENT_INTERFACE_RAIN ) strcpy(text, "Cząstki w interfejsie\\Para i iskry z silników w interfejsie");
- if ( num == EVENT_INTERFACE_GLINT ) strcpy(text, "Odbicia na przyciskach \\Świecące przyciski");
- if ( num == EVENT_INTERFACE_TOOLTIP) strcpy(text, "Dymki pomocy\\Wyjaśnia funkcje przycisków");
- if ( num == EVENT_INTERFACE_MOVIES ) strcpy(text, "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji");
- if ( num == EVENT_INTERFACE_NICERST) strcpy(text, "Końcowy film\\Film na zakończenie ćwiczeń");
- if ( num == EVENT_INTERFACE_HIMSELF) strcpy(text, "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty");
- if ( num == EVENT_INTERFACE_SCROLL ) strcpy(text, "Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego krawędzi");
- if ( num == EVENT_INTERFACE_INVERTX) strcpy(text, "Odwrócenie myszy X\\Odwrócenie kierunków przewijania na w poziomie");
- if ( num == EVENT_INTERFACE_INVERTY) strcpy(text, "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania na w pionie");
- if ( num == EVENT_INTERFACE_EFFECT ) strcpy(text, "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów");
- if ( num == EVENT_INTERFACE_MOUSE ) strcpy(text, "Cień myszy\\Dodaje cień kursorowi myszy");
- if ( num == EVENT_INTERFACE_EDITMODE) strcpy(text, "Automatyczne wcięcia\\Podczas edycji programu");
- if ( num == EVENT_INTERFACE_EDITVALUE)strcpy(text, "Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez klamry");
-
- if ( num == EVENT_INTERFACE_KDEF ) strcpy(text, "Standardowa kontrola\\Standardowe klawisze funkcyjne");
- if ( num == EVENT_INTERFACE_KLEFT ) strcpy(text, "Skręć w lewo\\obraca robota w lewo");
- if ( num == EVENT_INTERFACE_KRIGHT ) strcpy(text, "Obróć w prawo\\obraca robota w prawo");
- if ( num == EVENT_INTERFACE_KUP ) strcpy(text, "Naprzód\\Porusza do przodu");
- if ( num == EVENT_INTERFACE_KDOWN ) strcpy(text, "Wstecz\\Porusza do tyłu");
- if ( num == EVENT_INTERFACE_KGUP ) strcpy(text, "W górę\\Zwiększa moc silnika'");
- if ( num == EVENT_INTERFACE_KGDOWN ) strcpy(text, "W dół\\Zmniejsza moc silnika");
- if ( num == EVENT_INTERFACE_KCAMERA) strcpy(text, "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą");
- if ( num == EVENT_INTERFACE_KDESEL ) strcpy(text, "Poprzedni obiekt\\Zaznacz poprzedni obiekt");
- if ( num == EVENT_INTERFACE_KACTION) strcpy(text, "Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, szukaj, itp.)");
- if ( num == EVENT_INTERFACE_KNEAR ) strcpy(text, "Kamera bliżej\\Przybliża kamerę");
- if ( num == EVENT_INTERFACE_KAWAY ) strcpy(text, "Kamera dalej\\Oddala kamerę");
- if ( num == EVENT_INTERFACE_KNEXT ) strcpy(text, "Następny obiekt\\Zaznacza następny obiekt");
- if ( num == EVENT_INTERFACE_KHUMAN ) strcpy(text, "Zaznacz astronautę\\Zaznacza astronautę");
- if ( num == EVENT_INTERFACE_KQUIT ) strcpy(text, "Zakończ\\Kończy bieżącą misję lub ćwiczenie");
- if ( num == EVENT_INTERFACE_KHELP ) strcpy(text, "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji");
- if ( num == EVENT_INTERFACE_KPROG ) strcpy(text, "Podręcznik programowania");
- if ( num == EVENT_INTERFACE_KCBOT ) strcpy(text, "Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych");
- if ( num == EVENT_INTERFACE_KVISIT ) strcpy(text, "Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość");
- if ( num == EVENT_INTERFACE_KSPEED10) strcpy(text, "Prędkość 1,0x\\Prędkość normalna");
- if ( num == EVENT_INTERFACE_KSPEED15) strcpy(text, "Prędkość 1,5x\\1,5 raza szybciej");
- if ( num == EVENT_INTERFACE_KSPEED20) strcpy(text, "Prędkość 2,0x\\Dwa razy szybciej");
- if ( num == EVENT_INTERFACE_KSPEED30) strcpy(text, "Prędkość 3,0x\\Trzy razy szybciej");
-
- if ( num == EVENT_INTERFACE_VOLSOUND) strcpy(text, "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp.");
- if ( num == EVENT_INTERFACE_VOLMUSIC) strcpy(text, "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD");
- if ( num == EVENT_INTERFACE_SOUND3D) strcpy(text, "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków");
-
- if ( num == EVENT_INTERFACE_MIN ) strcpy(text, "Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)");
- if ( num == EVENT_INTERFACE_NORM ) strcpy(text, "Normalna\\Normalna jakość grafiki");
- if ( num == EVENT_INTERFACE_MAX ) strcpy(text, "Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)");
-
- if ( num == EVENT_INTERFACE_SILENT ) strcpy(text, "Cisza\\Bez dźwięków");
- if ( num == EVENT_INTERFACE_NOISY ) strcpy(text, "Normalne\\Normalna głośność dźwięków");
-
- if ( num == EVENT_INTERFACE_JOYSTICK) strcpy(text, "Używaj joysticka\\Joystick lub klawiatura");
- if ( num == EVENT_INTERFACE_SOLUCE ) strcpy(text, "Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje dotyczące misji)");
-
- if ( num == EVENT_INTERFACE_NEDIT ) strcpy(text, "\\Nowe imię gracza");
- if ( num == EVENT_INTERFACE_NOK ) strcpy(text, "OK\\Wybiera zaznaczonego gracza");
- if ( num == EVENT_INTERFACE_NCANCEL) strcpy(text, "Anuluj\\Zachowuje bieżące imię gracza");
- if ( num == EVENT_INTERFACE_NDELETE) strcpy(text, "Usuń gracza\\Usuwa gracza z listy");
- if ( num == EVENT_INTERFACE_NLABEL ) strcpy(text, "Imię gracza");
-
- if ( num == EVENT_INTERFACE_IOWRITE) strcpy(text, "Zapisz\\Zapisuje bieżącą misję");
- if ( num == EVENT_INTERFACE_IOREAD ) strcpy(text, "Wczytaj\\Wczytuje zaznaczoną misję");
- if ( num == EVENT_INTERFACE_IOLIST ) strcpy(text, "Lista zapisanych misji");
- if ( num == EVENT_INTERFACE_IOLABEL) strcpy(text, "Nazwa pliku:");
- if ( num == EVENT_INTERFACE_IONAME ) strcpy(text, "Nazwa misji");
- if ( num == EVENT_INTERFACE_IOIMAGE) strcpy(text, "Fotografia");
- if ( num == EVENT_INTERFACE_IODELETE) strcpy(text, "Usuń\\Usuwa zaznaczony plik");
-
- if ( num == EVENT_INTERFACE_PERSO ) strcpy(text, "Wygląd\\Wybierz swoją postać");
- if ( num == EVENT_INTERFACE_POK ) strcpy(text, "OK");
- if ( num == EVENT_INTERFACE_PCANCEL) strcpy(text, "Anuluj");
- if ( num == EVENT_INTERFACE_PDEF ) strcpy(text, "Standardowe\\Standardowe ustawienia wyglądu");
- if ( num == EVENT_INTERFACE_PHEAD ) strcpy(text, "Głowa\\Twarz i włosy");
- if ( num == EVENT_INTERFACE_PBODY ) strcpy(text, "Skafander\\Skafander astronauty");
- if ( num == EVENT_INTERFACE_PLROT ) strcpy(text, "\\Obróć w lewo");
- if ( num == EVENT_INTERFACE_PRROT ) strcpy(text, "\\Obróć w prawo");
- if ( num == EVENT_INTERFACE_PCRa ) strcpy(text, "Czerwony");
- if ( num == EVENT_INTERFACE_PCGa ) strcpy(text, "Zielony");
- if ( num == EVENT_INTERFACE_PCBa ) strcpy(text, "Niebieski");
- if ( num == EVENT_INTERFACE_PCRb ) strcpy(text, "Czerwony");
- if ( num == EVENT_INTERFACE_PCGb ) strcpy(text, "Zielony");
- if ( num == EVENT_INTERFACE_PCBb ) strcpy(text, "Niebieski");
- if ( num == EVENT_INTERFACE_PFACE1 ) strcpy(text, "\\Twarz 1");
- if ( num == EVENT_INTERFACE_PFACE2 ) strcpy(text, "\\Twarz 4");
- if ( num == EVENT_INTERFACE_PFACE3 ) strcpy(text, "\\Twarz 3");
- if ( num == EVENT_INTERFACE_PFACE4 ) strcpy(text, "\\Twarz 2");
- if ( num == EVENT_INTERFACE_PGLASS0) strcpy(text, "\\Bez okularów");
- if ( num == EVENT_INTERFACE_PGLASS1) strcpy(text, "\\Okulary 1");
- if ( num == EVENT_INTERFACE_PGLASS2) strcpy(text, "\\Okulary 2");
- if ( num == EVENT_INTERFACE_PGLASS3) strcpy(text, "\\Okulary 3");
- if ( num == EVENT_INTERFACE_PGLASS4) strcpy(text, "\\Okulary 4");
- if ( num == EVENT_INTERFACE_PGLASS5) strcpy(text, "\\Okulary 5");
-
- if ( num == EVENT_OBJECT_DESELECT ) strcpy(text, "Poprzednie zaznaczenie (\\key desel;)");
- if ( num == EVENT_OBJECT_LEFT ) strcpy(text, "Skręć w lewo (\\key left;)");
- if ( num == EVENT_OBJECT_RIGHT ) strcpy(text, "Skręć w prawo (\\key right;)");
- if ( num == EVENT_OBJECT_UP ) strcpy(text, "Naprzód (\\key up;)");
- if ( num == EVENT_OBJECT_DOWN ) strcpy(text, "Cofnij (\\key down;)");
- if ( num == EVENT_OBJECT_GASUP ) strcpy(text, "Góra (\\key gup;)");
- if ( num == EVENT_OBJECT_GASDOWN ) strcpy(text, "Dół (\\key gdown;)");
- if ( num == EVENT_OBJECT_HTAKE ) strcpy(text, "Podnieś lub upuść (\\key action;)");
- if ( num == EVENT_OBJECT_MTAKE ) strcpy(text, "Podnieś lub upuść (\\key action;)");
- if ( num == EVENT_OBJECT_MFRONT ) strcpy(text, "..przed");
- if ( num == EVENT_OBJECT_MBACK ) strcpy(text, "..za");
- if ( num == EVENT_OBJECT_MPOWER ) strcpy(text, "..ogniwo elektryczne");
- if ( num == EVENT_OBJECT_BHELP ) strcpy(text, "Rozkazy dotyczące misji (\\key help;)");
- if ( num == EVENT_OBJECT_BTAKEOFF ) strcpy(text, "Odleć, aby zakończyć misję");
- if ( num == EVENT_OBJECT_BDERRICK ) strcpy(text, "Zbuduj kopalnię");
- if ( num == EVENT_OBJECT_BSTATION ) strcpy(text, "Zbuduj elektrownię");
- if ( num == EVENT_OBJECT_BFACTORY ) strcpy(text, "Zbuduj fabrykę robotów");
- if ( num == EVENT_OBJECT_BREPAIR ) strcpy(text, "Zbuduj warsztat");
- if ( num == EVENT_OBJECT_BCONVERT ) strcpy(text, "Zbuduj hutę");
- if ( num == EVENT_OBJECT_BTOWER ) strcpy(text, "Zbuduj wieżę obronną");
- if ( num == EVENT_OBJECT_BRESEARCH ) strcpy(text, "Zbuduj centrum badawcze");
- if ( num == EVENT_OBJECT_BRADAR ) strcpy(text, "Zbuduj stację radarową");
- if ( num == EVENT_OBJECT_BENERGY ) strcpy(text, "Zbuduj fabrykę ogniw elektrycznych");
- if ( num == EVENT_OBJECT_BLABO ) strcpy(text, "Zbuduj laboratorium");
- if ( num == EVENT_OBJECT_BNUCLEAR ) strcpy(text, "Zbuduj elektrownię atomową");
- if ( num == EVENT_OBJECT_BPARA ) strcpy(text, "Zbuduj odgromnik");
- if ( num == EVENT_OBJECT_BINFO ) strcpy(text, "Zbuduj stację przekaźnikową");
- if ( num == EVENT_OBJECT_GFLAT ) strcpy(text, "Pokaż czy teren jest płaski");
- if ( num == EVENT_OBJECT_FCREATE ) strcpy(text, "Postaw flagę");
- if ( num == EVENT_OBJECT_FDELETE ) strcpy(text, "Usuń flagę");
- if ( num == EVENT_OBJECT_FCOLORb ) strcpy(text, "\\Niebieskie flagi");
- if ( num == EVENT_OBJECT_FCOLORr ) strcpy(text, "\\Czerwone flagi");
- if ( num == EVENT_OBJECT_FCOLORg ) strcpy(text, "\\Zielone flagi");
- if ( num == EVENT_OBJECT_FCOLORy ) strcpy(text, "\\Żółte flagi");
- if ( num == EVENT_OBJECT_FCOLORv ) strcpy(text, "\\Fioletowe flagi");
- if ( num == EVENT_OBJECT_FACTORYfa ) strcpy(text, "Zbuduj transporter latający");
- if ( num == EVENT_OBJECT_FACTORYta ) strcpy(text, "Zbuduj transporter na gąsienicach");
- if ( num == EVENT_OBJECT_FACTORYwa ) strcpy(text, "Zbuduj transporter na kołach");
- if ( num == EVENT_OBJECT_FACTORYia ) strcpy(text, "Zbuduj transporter na nogach");
- if ( num == EVENT_OBJECT_FACTORYfc ) strcpy(text, "Zbuduj działo latające");
- if ( num == EVENT_OBJECT_FACTORYtc ) strcpy(text, "Zbuduj działo na gąsienicach");
- if ( num == EVENT_OBJECT_FACTORYwc ) strcpy(text, "Zbuduj działo na kołach");
- if ( num == EVENT_OBJECT_FACTORYic ) strcpy(text, "Zbuduj działo na nogach");
- if ( num == EVENT_OBJECT_FACTORYfi ) strcpy(text, "Zbuduj latające działo organiczne");
- if ( num == EVENT_OBJECT_FACTORYti ) strcpy(text, "Zbuduj działo organiczne na gąsienicach");
- if ( num == EVENT_OBJECT_FACTORYwi ) strcpy(text, "Zbuduj działo organiczne na kołach");
- if ( num == EVENT_OBJECT_FACTORYii ) strcpy(text, "Zbuduj działo organiczne na nogach");
- if ( num == EVENT_OBJECT_FACTORYfs ) strcpy(text, "Zbuduj szperacz latający");
- if ( num == EVENT_OBJECT_FACTORYts ) strcpy(text, "Zbuduj szperacz na gąsienicach");
- if ( num == EVENT_OBJECT_FACTORYws ) strcpy(text, "Zbuduj szperacz na kołach");
- if ( num == EVENT_OBJECT_FACTORYis ) strcpy(text, "Zbuduj szperacz na nogach");
- if ( num == EVENT_OBJECT_FACTORYrt ) strcpy(text, "Zbuduj robota uderzacza");
- if ( num == EVENT_OBJECT_FACTORYrc ) strcpy(text, "Zbuduj działo fazowe");
- if ( num == EVENT_OBJECT_FACTORYrr ) strcpy(text, "Zbuduj robota recyklera");
- if ( num == EVENT_OBJECT_FACTORYrs ) strcpy(text, "Zbuduj robota osłaniajacza");
- if ( num == EVENT_OBJECT_FACTORYsa ) strcpy(text, "Zbuduj robota nurka");
- if ( num == EVENT_OBJECT_RTANK ) strcpy(text, "Rozpocznij prace badawcze robotów na gąsienicach");
- if ( num == EVENT_OBJECT_RFLY ) strcpy(text, "Rozpocznij prace badawcze robotów latających");
- if ( num == EVENT_OBJECT_RTHUMP ) strcpy(text, "Rozpocznij prace badawcze robota uderzacza");
- if ( num == EVENT_OBJECT_RCANON ) strcpy(text, "Rozpocznij prace badawcze działa");
- if ( num == EVENT_OBJECT_RTOWER ) strcpy(text, "Rozpocznij prace badawcze wieży obronnej");
- if ( num == EVENT_OBJECT_RPHAZER ) strcpy(text, "Rozpocznij prace badawcze działa fazowego");
- if ( num == EVENT_OBJECT_RSHIELD ) strcpy(text, "Rozpocznij prace badawcze robota osłaniacza");
- if ( num == EVENT_OBJECT_RATOMIC ) strcpy(text, "Rozpocznij prace badawcze energii atomowej");
- if ( num == EVENT_OBJECT_RiPAW ) strcpy(text, "Rozpocznij prace badawcze robotów na nogach");
- if ( num == EVENT_OBJECT_RiGUN ) strcpy(text, "Rozpocznij prace badawcze działa organicznego");
- if ( num == EVENT_OBJECT_RESET ) strcpy(text, "Powrót do początku");
- if ( num == EVENT_OBJECT_SEARCH ) strcpy(text, "Szukaj (\\key action;)");
- if ( num == EVENT_OBJECT_TERRAFORM ) strcpy(text, "Uderz (\\key action;)");
- if ( num == EVENT_OBJECT_FIRE ) strcpy(text, "Strzelaj (\\key action;)");
- if ( num == EVENT_OBJECT_RECOVER ) strcpy(text, "Odzyskaj (\\key action;)");
- if ( num == EVENT_OBJECT_BEGSHIELD ) strcpy(text, "Rozszerz osłonę (\\key action;)");
- if ( num == EVENT_OBJECT_ENDSHIELD ) strcpy(text, "Wyłącz osłonę (\\key action;)");
- if ( num == EVENT_OBJECT_DIMSHIELD ) strcpy(text, "Zasięg osłony");
- if ( num == EVENT_OBJECT_PROGRUN ) strcpy(text, "Wykonaj zaznaczony program");
- if ( num == EVENT_OBJECT_PROGEDIT ) strcpy(text, "Edytuj zaznaczony program");
- if ( num == EVENT_OBJECT_INFOOK ) strcpy(text, "\\Przełącz przekaźnik SatCom w stan gotowości");
- if ( num == EVENT_OBJECT_DELETE ) strcpy(text, "Zniszcz budynek");
- if ( num == EVENT_OBJECT_GENERGY ) strcpy(text, "Poziom energii");
- if ( num == EVENT_OBJECT_GSHIELD ) strcpy(text, "Poziom osłony");
- if ( num == EVENT_OBJECT_GRANGE ) strcpy(text, "Temperatura silnika");
- if ( num == EVENT_OBJECT_GPROGRESS ) strcpy(text, "Wciąż pracuje...");
- if ( num == EVENT_OBJECT_GRADAR ) strcpy(text, "Liczba wykrytych insektów");
- if ( num == EVENT_OBJECT_GINFO ) strcpy(text, "Przesłane informacje");
- if ( num == EVENT_OBJECT_COMPASS ) strcpy(text, "Kompas");
-//? if ( num == EVENT_OBJECT_MAP ) strcpy(text, "Mapka");
- if ( num == EVENT_OBJECT_MAPZOOM ) strcpy(text, "Powiększenie mapki");
- if ( num == EVENT_OBJECT_CAMERA ) strcpy(text, "Kamera (\\key camera;)");
- if ( num == EVENT_OBJECT_HELP ) strcpy(text, "Pomoc na temat zaznaczonego obiektu");
- if ( num == EVENT_OBJECT_SOLUCE ) strcpy(text, "Pokaż rozwiązanie");
- if ( num == EVENT_OBJECT_SHORTCUT00) strcpy(text, "Przełącz roboty <-> budynki");
- if ( num == EVENT_OBJECT_LIMIT ) strcpy(text, "Pokaż zasięg");
- if ( num == EVENT_DT_VISIT0 ||
- num == EVENT_DT_VISIT1 ||
- num == EVENT_DT_VISIT2 ||
- num == EVENT_DT_VISIT3 ||
- num == EVENT_DT_VISIT4 ) strcpy(text, "Pokaż miejsce");
- if ( num == EVENT_DT_END ) strcpy(text, "Kontynuuj");
- if ( num == EVENT_CMD ) strcpy(text, "Linia polecenia");
- if ( num == EVENT_SPEED ) strcpy(text, "Prędkość gry");
-
- if ( num == EVENT_HYPER_PREV ) strcpy(text, "Wstecz");
- if ( num == EVENT_HYPER_NEXT ) strcpy(text, "Naprzód");
- if ( num == EVENT_HYPER_HOME ) strcpy(text, "Home");
- if ( num == EVENT_HYPER_COPY ) strcpy(text, "Kopiuj");
- if ( num == EVENT_HYPER_SIZE1 ) strcpy(text, "Wielkość 1");
- if ( num == EVENT_HYPER_SIZE2 ) strcpy(text, "Wielkość 2");
- if ( num == EVENT_HYPER_SIZE3 ) strcpy(text, "Wielkość 3");
- if ( num == EVENT_HYPER_SIZE4 ) strcpy(text, "Wielkość 4");
- if ( num == EVENT_HYPER_SIZE5 ) strcpy(text, "Wielkość 5");
- if ( num == EVENT_SATCOM_HUSTON ) strcpy(text, "Rozkazy z Houston");
- if ( num == EVENT_SATCOM_SAT ) strcpy(text, "Raport z satelity");
- if ( num == EVENT_SATCOM_LOADING ) strcpy(text, "Program dostarczony z Houston");
- if ( num == EVENT_SATCOM_OBJECT ) strcpy(text, "Lista obiektów");
- if ( num == EVENT_SATCOM_PROG ) strcpy(text, "Podręcznik programowania");
- if ( num == EVENT_SATCOM_SOLUCE ) strcpy(text, "Rozwiązanie");
-
- if ( num == EVENT_STUDIO_OK ) strcpy(text, "OK\\Zamyka edytor programu i powraca do gry");
- if ( num == EVENT_STUDIO_CANCEL ) strcpy(text, "Anuluj\\Pomija wszystkie zmiany");
- if ( num == EVENT_STUDIO_NEW ) strcpy(text, "Nowy");
- if ( num == EVENT_STUDIO_OPEN ) strcpy(text, "Otwórz (Ctrl+o)");
- if ( num == EVENT_STUDIO_SAVE ) strcpy(text, "Zapisz (Ctrl+s)");
- if ( num == EVENT_STUDIO_UNDO ) strcpy(text, "Cofnij (Ctrl+z)");
- if ( num == EVENT_STUDIO_CUT ) strcpy(text, "Wytnij (Ctrl+x)");
- if ( num == EVENT_STUDIO_COPY ) strcpy(text, "Kopiuj (Ctrl+c)");
- if ( num == EVENT_STUDIO_PASTE ) strcpy(text, "Wklej (Ctrl+v)");
- if ( num == EVENT_STUDIO_SIZE ) strcpy(text, "Wielkość czcionki");
- if ( num == EVENT_STUDIO_TOOL ) strcpy(text, "Rozkazy (\\key help;)");
- if ( num == EVENT_STUDIO_HELP ) strcpy(text, "Podręcznik programowania (\\key prog;)");
- if ( num == EVENT_STUDIO_COMPILE ) strcpy(text, "Kompiluj");
- if ( num == EVENT_STUDIO_RUN ) strcpy(text, "Wykonaj/zatrzymaj");
- if ( num == EVENT_STUDIO_REALTIME ) strcpy(text, "Pauza/kontynuuj");
- if ( num == EVENT_STUDIO_STEP ) strcpy(text, "Jeden krok");
- }
-
- if ( type == RES_OBJECT )
- {
- if ( num == OBJECT_PORTICO ) strcpy(text, "Żuraw przesuwalny");
- if ( num == OBJECT_BASE ) strcpy(text, "Statek kosmiczny");
- if ( num == OBJECT_DERRICK ) strcpy(text, "Kopalnia");
- if ( num == OBJECT_FACTORY ) strcpy(text, "Fabryka robotów");
- if ( num == OBJECT_REPAIR ) strcpy(text, "Warsztat");
- if ( num == OBJECT_STATION ) strcpy(text, "Stacja energetyczna");
- if ( num == OBJECT_CONVERT ) strcpy(text, "Przetop rudę na tytan");
- if ( num == OBJECT_TOWER ) strcpy(text, "Wieża obronna");
- if ( num == OBJECT_NEST ) strcpy(text, "Gniazdo");
- if ( num == OBJECT_RESEARCH ) strcpy(text, "Centrum badawcze");
- if ( num == OBJECT_RADAR ) strcpy(text, "Stacja radarowa");
- if ( num == OBJECT_INFO ) strcpy(text, "Stacja przekaźnikowa informacji");
- if ( num == OBJECT_ENERGY ) strcpy(text, "Fabryka ogniw elektrycznych");
- if ( num == OBJECT_LABO ) strcpy(text, "Laboratorium");
- if ( num == OBJECT_NUCLEAR ) strcpy(text, "Elektrownia atomowa");
- if ( num == OBJECT_PARA ) strcpy(text, "Odgromnik");
- if ( num == OBJECT_SAFE ) strcpy(text, "Skrytka");
- if ( num == OBJECT_HUSTON ) strcpy(text, "Centrum Kontroli Misji w Houston");
- if ( num == OBJECT_TARGET1 ) strcpy(text, "Cel");
- if ( num == OBJECT_TARGET2 ) strcpy(text, "Cel");
- if ( num == OBJECT_START ) strcpy(text, "Początek");
- if ( num == OBJECT_END ) strcpy(text, "Koniec");
- if ( num == OBJECT_STONE ) strcpy(text, "Ruda tytanu");
- if ( num == OBJECT_URANIUM ) strcpy(text, "Ruda uranu");
- if ( num == OBJECT_BULLET ) strcpy(text, "Materia organiczna");
- if ( num == OBJECT_METAL ) strcpy(text, "Tytan");
- if ( num == OBJECT_POWER ) strcpy(text, "Ogniwo elektryczne");
- if ( num == OBJECT_ATOMIC ) strcpy(text, "Atomowe ogniwa elektryczne");
- if ( num == OBJECT_BBOX ) strcpy(text, "Czarna skrzynka");
- if ( num == OBJECT_KEYa ) strcpy(text, "Klucz A");
- if ( num == OBJECT_KEYb ) strcpy(text, "Klucz B");
- if ( num == OBJECT_KEYc ) strcpy(text, "Klucz C");
- if ( num == OBJECT_KEYd ) strcpy(text, "Klucz D");
- if ( num == OBJECT_TNT ) strcpy(text, "Materiały wybuchowe");
- if ( num == OBJECT_BOMB ) strcpy(text, "Mina");
- if ( num == OBJECT_BAG ) strcpy(text, "Zestaw przetrwania");
- if ( num == OBJECT_WAYPOINT ) strcpy(text, "Punkt kontrolny");
- if ( num == OBJECT_FLAGb ) strcpy(text, "Niebieska flaga");
- if ( num == OBJECT_FLAGr ) strcpy(text, "Czerwona flaga");
- if ( num == OBJECT_FLAGg ) strcpy(text, "Zielona flaga");
- if ( num == OBJECT_FLAGy ) strcpy(text, "Żółta flaga");
- if ( num == OBJECT_FLAGv ) strcpy(text, "Fioletowa flaga");
- if ( num == OBJECT_MARKPOWER ) strcpy(text, "Źródło energii (miejsce na elektrownię)");
- if ( num == OBJECT_MARKURANIUM ) strcpy(text, "Złoże uranu (miejsce na kopalnię)");
- if ( num == OBJECT_MARKKEYa ) strcpy(text, "Znaleziono klucz A (miejsce na kopalnię)");
- if ( num == OBJECT_MARKKEYb ) strcpy(text, "Znaleziono klucz B (miejsce na kopalnię)");
- if ( num == OBJECT_MARKKEYc ) strcpy(text, "Znaleziono klucz C (miejsce na kopalnię)");
- if ( num == OBJECT_MARKKEYd ) strcpy(text, "Znaleziono klucz D (miejsce na kopalnię)");
- if ( num == OBJECT_MARKSTONE ) strcpy(text, "Złoże tytanu (miejsce na kopalnię)");
- if ( num == OBJECT_MOBILEft ) strcpy(text, "Robot treningowy");
- if ( num == OBJECT_MOBILEtt ) strcpy(text, "Robot treningowy");
- if ( num == OBJECT_MOBILEwt ) strcpy(text, "Robot treningowy");
- if ( num == OBJECT_MOBILEit ) strcpy(text, "Robot treningowy");
- if ( num == OBJECT_MOBILEfa ) strcpy(text, "Transporter latający");
- if ( num == OBJECT_MOBILEta ) strcpy(text, "Transporter na gąsienicach");
- if ( num == OBJECT_MOBILEwa ) strcpy(text, "Transporter na kołach");
- if ( num == OBJECT_MOBILEia ) strcpy(text, "Transporter na nogach");
- if ( num == OBJECT_MOBILEfc ) strcpy(text, "Działo latające");
- if ( num == OBJECT_MOBILEtc ) strcpy(text, "Działo na gąsienicach");
- if ( num == OBJECT_MOBILEwc ) strcpy(text, "Działo na kołach");
- if ( num == OBJECT_MOBILEic ) strcpy(text, "Działo na nogach");
- if ( num == OBJECT_MOBILEfi ) strcpy(text, "Latające działo organiczne");
- if ( num == OBJECT_MOBILEti ) strcpy(text, "Działo organiczne na gąsienicach");
- if ( num == OBJECT_MOBILEwi ) strcpy(text, "Działo organiczne na kołach");
- if ( num == OBJECT_MOBILEii ) strcpy(text, "Działo organiczne na nogach");
- if ( num == OBJECT_MOBILEfs ) strcpy(text, "Szperacz latający");
- if ( num == OBJECT_MOBILEts ) strcpy(text, "Szperacz na gąsienicach");
- if ( num == OBJECT_MOBILEws ) strcpy(text, "Szperacz na kołach");
- if ( num == OBJECT_MOBILEis ) strcpy(text, "Szperacz na nogach");
- if ( num == OBJECT_MOBILErt ) strcpy(text, "Uderzacz");
- if ( num == OBJECT_MOBILErc ) strcpy(text, "Działo fazowe");
- if ( num == OBJECT_MOBILErr ) strcpy(text, "Recykler");
- if ( num == OBJECT_MOBILErs ) strcpy(text, "Osłaniacz");
- if ( num == OBJECT_MOBILEsa ) strcpy(text, "Robot nurek");
- if ( num == OBJECT_MOBILEtg ) strcpy(text, "Robot cel");
- if ( num == OBJECT_HUMAN ) strcpy(text, g_gamerName);
- if ( num == OBJECT_TECH ) strcpy(text, "Inżynier");
- if ( num == OBJECT_TOTO ) strcpy(text, "Robbie");
- if ( num == OBJECT_MOTHER ) strcpy(text, "Królowa Obcych");
- if ( num == OBJECT_ANT ) strcpy(text, "Mrówka");
- if ( num == OBJECT_SPIDER ) strcpy(text, "Pająk");
- if ( num == OBJECT_BEE ) strcpy(text, "Osa");
- if ( num == OBJECT_WORM ) strcpy(text, "Robal");
- if ( num == OBJECT_EGG ) strcpy(text, "Jajo");
- if ( num == OBJECT_RUINmobilew1 ) strcpy(text, "Wrak");
- if ( num == OBJECT_RUINmobilew2 ) strcpy(text, "Wrak");
- if ( num == OBJECT_RUINmobilet1 ) strcpy(text, "Wrak");
- if ( num == OBJECT_RUINmobilet2 ) strcpy(text, "Wrak");
- if ( num == OBJECT_RUINmobiler1 ) strcpy(text, "Wrak");
- if ( num == OBJECT_RUINmobiler2 ) strcpy(text, "Wrak");
- if ( num == OBJECT_RUINfactory ) strcpy(text, "Ruiny");
- if ( num == OBJECT_RUINdoor ) strcpy(text, "Ruiny");
- if ( num == OBJECT_RUINsupport ) strcpy(text, "Odpady");
- if ( num == OBJECT_RUINradar ) strcpy(text, "Ruiny");
- if ( num == OBJECT_RUINconvert ) strcpy(text, "Ruiny");
- if ( num == OBJECT_RUINbase ) strcpy(text, "Ruiny statku kosmicznego");
- if ( num == OBJECT_RUINhead ) strcpy(text, "Ruiny statku kosmicznego");
- if ( num == OBJECT_APOLLO1 ||
- num == OBJECT_APOLLO3 ||
- num == OBJECT_APOLLO4 ||
- num == OBJECT_APOLLO5 ) strcpy(text, "Pozostałości z misji Apollo");
- if ( num == OBJECT_APOLLO2 ) strcpy(text, "Pojazd Księżycowy");
- }
-
- if ( type == RES_ERR )
- {
- strcpy(text, "Błąd");
- if ( num == ERR_CMD ) strcpy(text, "Nieznane polecenie");
- if ( num == ERR_INSTALL ) strcpy(text, "Gra COLOBOT nie jest zainstalowana.");
- if ( num == ERR_NOCD ) strcpy(text, "Włóż dysk CD z grą COLOBOT\ni uruchom grę jeszcze raz.");
- if ( num == ERR_MANIP_VEH ) strcpy(text, "Nieodpowiedni robot");
- if ( num == ERR_MANIP_FLY ) strcpy(text, "Niemożliwe podczas lotu");
- if ( num == ERR_MANIP_BUSY ) strcpy(text, "Nie można nieść więcej przedmiotów");
- if ( num == ERR_MANIP_NIL ) strcpy(text, "Nie ma nic do podniesienia");
- if ( num == ERR_MANIP_MOTOR ) strcpy(text, "Niemożliwe podczas ruchu");
- if ( num == ERR_MANIP_OCC ) strcpy(text, "Miejsce zajęte");
- if ( num == ERR_MANIP_FRIEND ) strcpy(text, "Brak innego robota");
- if ( num == ERR_MANIP_RADIO ) strcpy(text, "Nie możesz przenosić przedmiotów radioaktywnych");
- if ( num == ERR_MANIP_WATER ) strcpy(text, "Nie możesz przenosić przedmiotów pod wodą");
- if ( num == ERR_MANIP_EMPTY ) strcpy(text, "Nie ma nic do upuszczenia");
- if ( num == ERR_BUILD_FLY ) strcpy(text, "Niemożliwe podczas lotu");
- if ( num == ERR_BUILD_WATER ) strcpy(text, "Niemożliwe pod wodą");
- if ( num == ERR_BUILD_ENERGY ) strcpy(text, "Za mało energii");
- if ( num == ERR_BUILD_METALAWAY ) strcpy(text, "Tytan za daleko");
- if ( num == ERR_BUILD_METALNEAR ) strcpy(text, "Tytan za blisko");
- if ( num == ERR_BUILD_METALINEX ) strcpy(text, "Brak tytanu w pobliżu");
- if ( num == ERR_BUILD_FLAT ) strcpy(text, "Powierzchnia nie jest wystarczająco płaska");
- if ( num == ERR_BUILD_FLATLIT ) strcpy(text, "Za mało płaskiego terenu");
- if ( num == ERR_BUILD_BUSY ) strcpy(text, "Miejsce zajęte");
- if ( num == ERR_BUILD_BASE ) strcpy(text, "Za blisko statku kosmicznego");
- if ( num == ERR_BUILD_NARROW ) strcpy(text, "Za blisko budynku");
- if ( num == ERR_BUILD_MOTOR ) strcpy(text, "Niemożliwe podczas ruchu");
- if ( num == ERR_SEARCH_FLY ) strcpy(text, "Niemożliwe podczas lotu");
- if ( num == ERR_SEARCH_VEH ) strcpy(text, "Nieodpowiedni robot");
- if ( num == ERR_SEARCH_MOTOR ) strcpy(text, "Niemożliwe podczas ruchu");
- if ( num == ERR_TERRA_VEH ) strcpy(text, "Nieodpowiedni robot");
- if ( num == ERR_TERRA_ENERGY ) strcpy(text, "Za mało energii");
- if ( num == ERR_TERRA_FLOOR ) strcpy(text, "Nieodpowiedni teren");
- if ( num == ERR_TERRA_BUILDING ) strcpy(text, "Budynek za blisko");
- if ( num == ERR_TERRA_OBJECT ) strcpy(text, "Obiekt za blisko");
- if ( num == ERR_RECOVER_VEH ) strcpy(text, "Nieodpowiedni robot");
- if ( num == ERR_RECOVER_ENERGY ) strcpy(text, "Za mało energii");
- if ( num == ERR_RECOVER_NULL ) strcpy(text, "Nie ma niczego do odzysku");
- if ( num == ERR_SHIELD_VEH ) strcpy(text, "Nieodpowiedni robot");
- if ( num == ERR_SHIELD_ENERGY ) strcpy(text, "Nie ma więcej energii");
- if ( num == ERR_MOVE_IMPOSSIBLE ) strcpy(text, "Błąd w poleceniu ruchu");
- if ( num == ERR_GOTO_IMPOSSIBLE ) strcpy(text, "Goto: miejsce docelowe niedostępne");
- if ( num == ERR_GOTO_ITER ) strcpy(text, "Goto: miejsce docelowe niedostępne");
- if ( num == ERR_GOTO_BUSY ) strcpy(text, "Goto: miejsce docelowe zajęte");
- if ( num == ERR_FIRE_VEH ) strcpy(text, "Nieodpowiedni robot");
- if ( num == ERR_FIRE_ENERGY ) strcpy(text, "Za mało energii");
- if ( num == ERR_FIRE_FLY ) strcpy(text, "Niemożliwe podczas lotu");
- if ( num == ERR_CONVERT_EMPTY ) strcpy(text, "Brak rudy tytanu do przetopienia");
- if ( num == ERR_DERRICK_NULL ) strcpy(text, "W ziemi nie ma żadnej rudy");
- if ( num == ERR_STATION_NULL ) strcpy(text, "Brak energii w ziemi");
- if ( num == ERR_TOWER_POWER ) strcpy(text, "Brak ogniwa elektrycznego");
- if ( num == ERR_TOWER_ENERGY ) strcpy(text, "Nie ma więcej energii");
- if ( num == ERR_RESEARCH_POWER ) strcpy(text, "Brak ogniwa elektrycznego");
- if ( num == ERR_RESEARCH_ENERGY ) strcpy(text, "Za mało energii");
- if ( num == ERR_RESEARCH_TYPE ) strcpy(text, "Nieodpowiedni rodzaj ogniw");
- if ( num == ERR_RESEARCH_ALREADY) strcpy(text, "Program badawczy został już wykonany");
- if ( num == ERR_ENERGY_NULL ) strcpy(text, "Brak energii w ziemi");
- if ( num == ERR_ENERGY_LOW ) strcpy(text, "Wciąż za mało energii");
- if ( num == ERR_ENERGY_EMPTY ) strcpy(text, "Brak tytanu do przetworzenia");
- if ( num == ERR_ENERGY_BAD ) strcpy(text, "Przetwarza jedynie tytan");
- if ( num == ERR_BASE_DLOCK ) strcpy(text, "Drzwi zablokowane przez robota lub inny obiekt ");
- if ( num == ERR_BASE_DHUMAN ) strcpy(text, "Musisz być na statku kosmicznym aby nim odlecieć");
- if ( num == ERR_LABO_NULL ) strcpy(text, "Nie ma niczego do zanalizowania");
- if ( num == ERR_LABO_BAD ) strcpy(text, "Analizuje jedynie materię organiczną");
- if ( num == ERR_LABO_ALREADY ) strcpy(text, "Analiza została już wykonana");
- if ( num == ERR_NUCLEAR_NULL ) strcpy(text, "Brak energii w ziemi");
- if ( num == ERR_NUCLEAR_LOW ) strcpy(text, "Wciąż za mało energii");
- if ( num == ERR_NUCLEAR_EMPTY ) strcpy(text, "Brak uranu do przetworzenia");
- if ( num == ERR_NUCLEAR_BAD ) strcpy(text, "Przetwarza jedynie uran");
- if ( num == ERR_FACTORY_NULL ) strcpy(text, "Brak tytanu");
- if ( num == ERR_FACTORY_NEAR ) strcpy(text, "Obiekt za blisko");
- if ( num == ERR_RESET_NEAR ) strcpy(text, "Miejsce zajęte");
- if ( num == ERR_INFO_NULL ) strcpy(text, "Nie ma żadnej stacji przekaźnikowej w zasięgu");
- if ( num == ERR_VEH_VIRUS ) strcpy(text, "Program zawirusowany");
- if ( num == ERR_BAT_VIRUS ) strcpy(text, "Zainfekowane wirusem, chwilowo niesprawne");
- if ( num == ERR_VEH_POWER ) strcpy(text, "Brak ogniwa elektrycznego");
- if ( num == ERR_VEH_ENERGY ) strcpy(text, "Nie ma więcej energii");
- if ( num == ERR_FLAG_FLY ) strcpy(text, "Niemożliwe podczas lotu");
- if ( num == ERR_FLAG_WATER ) strcpy(text, "Niemożliwe podczas pływania");
- if ( num == ERR_FLAG_MOTOR ) strcpy(text, "Niemożliwe podczas ruchu");
- if ( num == ERR_FLAG_BUSY ) strcpy(text, "Niemożliwe podczas przenoszenia przedmiotu");
- if ( num == ERR_FLAG_CREATE ) strcpy(text, "Za dużo flag w tym kolorze (maksymalnie 5)");
- if ( num == ERR_FLAG_PROXY ) strcpy(text, "Za blisko istniejącej flagi");
- if ( num == ERR_FLAG_DELETE ) strcpy(text, "Nie ma flagi w pobliżu");
- if ( num == ERR_MISSION_NOTERM ) strcpy(text, "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)");
- if ( num == ERR_DELETEMOBILE ) strcpy(text, "Robot zniszczony");
- if ( num == ERR_DELETEBUILDING ) strcpy(text, "Budynek zniszczony");
- if ( num == ERR_TOOMANY ) strcpy(text, "Nie można tego utworzyć, za dużo obiektów");
-
- if ( num == INFO_BUILD ) strcpy(text, "Budowa zakończona");
- if ( num == INFO_CONVERT ) strcpy(text, "Tytan dostępny");
- if ( num == INFO_RESEARCH ) strcpy(text, "Program badawczy zakończony");
- if ( num == INFO_RESEARCHTANK ) strcpy(text, "Dostępne plany robotów na gąsienicach");
- if ( num == INFO_RESEARCHFLY ) strcpy(text, "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)");
- if ( num == INFO_RESEARCHTHUMP ) strcpy(text, "Dostępne plany robota uderzacza");
- if ( num == INFO_RESEARCHCANON ) strcpy(text, "Dostępne plany działa");
- if ( num == INFO_RESEARCHTOWER ) strcpy(text, "Dostępne plany wieży obronnej");
- if ( num == INFO_RESEARCHPHAZER ) strcpy(text, "Dostępne plany działa fazowego");
- if ( num == INFO_RESEARCHSHIELD ) strcpy(text, "Dostępne plany robota osłaniacza");
- if ( num == INFO_RESEARCHATOMIC ) strcpy(text, "Dostępne plany elektrowni atomowej");
- if ( num == INFO_FACTORY ) strcpy(text, "Dostępny nowy robot");
- if ( num == INFO_LABO ) strcpy(text, "Analiza wykonana");
- if ( num == INFO_ENERGY ) strcpy(text, "Wytworzono ogniwo elektryczne");
- if ( num == INFO_NUCLEAR ) strcpy(text, "Wytworzono atomowe ogniwo elektryczne");
- if ( num == INFO_FINDING ) strcpy(text, "Znaleziono użyteczny przedmiot");
- if ( num == INFO_MARKPOWER ) strcpy(text, "Znaleziono miejsce na elektrownię");
- if ( num == INFO_MARKURANIUM ) strcpy(text, "Znaleziono miejsce na kopalnię");
- if ( num == INFO_MARKSTONE ) strcpy(text, "Znaleziono miejsce na kopalnię");
- if ( num == INFO_MARKKEYa ) strcpy(text, "Znaleziono miejsce na kopalnię");
- if ( num == INFO_MARKKEYb ) strcpy(text, "Znaleziono miejsce na kopalnię");
- if ( num == INFO_MARKKEYc ) strcpy(text, "Znaleziono miejsce na kopalnię");
- if ( num == INFO_MARKKEYd ) strcpy(text, "Znaleziono miejsce na kopalnię");
- if ( num == INFO_WIN ) strcpy(text, "<<< Dobra robota, misja wypełniona >>>");
- if ( num == INFO_LOST ) strcpy(text, "<<< Niestety, misja nie powiodła się >>>");
- if ( num == INFO_LOSTq ) strcpy(text, "<<< Niestety, misja nie powiodła się >>>");
- if ( num == INFO_WRITEOK ) strcpy(text, "Bieżąca misja zapisana");
- if ( num == INFO_DELETEPATH ) strcpy(text, "Przekroczono punkt kontrolny");
- if ( num == INFO_DELETEMOTHER ) strcpy(text, "Królowa Obcych została zabita");
- if ( num == INFO_DELETEANT ) strcpy(text, "Mrówka śmiertelnie ranna");
- if ( num == INFO_DELETEBEE ) strcpy(text, "Osa śmiertelnie ranna");
- if ( num == INFO_DELETEWORM ) strcpy(text, "Robal śmiertelnie ranny");
- if ( num == INFO_DELETESPIDER ) strcpy(text, "Pająk śmiertelnie ranny");
- if ( num == INFO_BEGINSATCOM ) strcpy(text, "Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom");
- }
-
- if ( type == RES_CBOT )
- {
- strcpy(text, "Błąd");
- if ( num == TX_OPENPAR ) strcpy(text, "Brak nawiasu otwierającego");
- if ( num == TX_CLOSEPAR ) strcpy(text, "Brak nawiasu zamykającego");
- if ( num == TX_NOTBOOL ) strcpy(text, "Wyrażenie musi zwrócić wartość logiczną");
- if ( num == TX_UNDEFVAR ) strcpy(text, "Zmienna nie została zadeklarowana");
- if ( num == TX_BADLEFT ) strcpy(text, "Przypisanie niemożliwe");
- if ( num == TX_ENDOF ) strcpy(text, "Brak średnika na końcu wiersza");
- if ( num == TX_OUTCASE ) strcpy(text, "Polecenie ""case"" outside a block ""switch""");
- if ( num == TX_NOTERM ) strcpy(text, "Polecenie po końcowej klamrze zamykającej");
- if ( num == TX_CLOSEBLK ) strcpy(text, "Brak końca bloku");
- if ( num == TX_ELSEWITHOUTIF ) strcpy(text, "Polecenie ""else"" without corresponding ""if"" ");
- if ( num == TX_OPENBLK ) strcpy(text, "Brak klamry otwierającej");//début d'un bloc attendu?
- if ( num == TX_BADTYPE ) strcpy(text, "Zły typ dla przypisania");
- if ( num == TX_REDEFVAR ) strcpy(text, "Zmienna nie może być zadeklarowana dwukrotnie");
- if ( num == TX_BAD2TYPE ) strcpy(text, "Niezgodne typy operatorów");
- if ( num == TX_UNDEFCALL ) strcpy(text, "Funkcja nieznana");
- if ( num == TX_MISDOTS ) strcpy(text, "Znak "" : "" missing");
- if ( num == TX_WHILE ) strcpy(text, "Skrót klawiszowy ""while"" missing");
- if ( num == TX_BREAK ) strcpy(text, "Polecenie ""break"" outside a loop");
- if ( num == TX_LABEL ) strcpy(text, "Po etykiecie musi wystąpić ""for"", ""while"", ""do"" or ""switch""");
- if ( num == TX_NOLABEL ) strcpy(text, "Taka etykieta nie istnieje");// Cette étiquette n'existe pas
- if ( num == TX_NOCASE ) strcpy(text, "Polecenie ""case"" missing");
- if ( num == TX_BADNUM ) strcpy(text, "Brak liczby");
- if ( num == TX_VOID ) strcpy(text, "Pusty parametr");
- if ( num == TX_NOTYP ) strcpy(text, "Brak deklaracji typu");
- if ( num == TX_NOVAR ) strcpy(text, "Brak nazwy zmiennej");
- if ( num == TX_NOFONC ) strcpy(text, "Brakująca nazwa funkcji");
- if ( num == TX_OVERPARAM ) strcpy(text, "Za dużo parametrów");
- if ( num == TX_REDEF ) strcpy(text, "Funkcja już istnieje");
- if ( num == TX_LOWPARAM ) strcpy(text, "Brak wymaganego parametru");
- if ( num == TX_BADPARAM ) strcpy(text, "Funkcja o tej nazwie nie akceptuje parametrów tego typu");
- if ( num == TX_NUMPARAM ) strcpy(text, "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów");
- if ( num == TX_NOITEM ) strcpy(text, "To nie jest obiekt tej klasy");
- if ( num == TX_DOT ) strcpy(text, "Ten obiekt nie jest członkiem klasy");
- if ( num == TX_NOCONST ) strcpy(text, "Brak odpowiedniego konstruktora");
- if ( num == TX_REDEFCLASS ) strcpy(text, "Taka klasa już istnieje");
- if ( num == TX_CLBRK ) strcpy(text, """ ] "" missing");
- if ( num == TX_RESERVED ) strcpy(text, "Słowo zarezerwowane języka CBOT");
- if ( num == TX_BADNEW ) strcpy(text, "Zły argument dla funkcji ""new""");
- if ( num == TX_OPBRK ) strcpy(text, """ [ "" expected");
- if ( num == TX_BADSTRING ) strcpy(text, "Brak łańcucha");
- if ( num == TX_BADINDEX ) strcpy(text, "Nieprawidłowy typ indeksu");
- if ( num == TX_PRIVATE ) strcpy(text, "Element prywatny");
- if ( num == TX_NOPUBLIC ) strcpy(text, "Wymagany publiczny");
- if ( num == TX_DIVZERO ) strcpy(text, "Dzielenie przez zero");
- if ( num == TX_NOTINIT ) strcpy(text, "Zmienna nie została zainicjalizowana");
- if ( num == TX_BADTHROW ) strcpy(text, "Wartość ujemna odrzucona przez ""throw""");//C'est quoi, ça?
- if ( num == TX_NORETVAL ) strcpy(text, "Funkcja nie zwróciła żadnej wartości ");
- if ( num == TX_NORUN ) strcpy(text, "Żadna funkcja nie działa");
- if ( num == TX_NOCALL ) strcpy(text, "Odwołanie do nieznanej funkcji");
- if ( num == TX_NOCLASS ) strcpy(text, "Taka klasa nie istnieje");
- if ( num == TX_NULLPT ) strcpy(text, "Obiekt nieznany");
- if ( num == TX_OPNAN ) strcpy(text, "Działanie niemożliwe z wartością ""nan""");
- if ( num == TX_OUTARRAY ) strcpy(text, "Dostęp poza tablicę");
- if ( num == TX_STACKOVER ) strcpy(text, "Przepełnienie stosu");
- if ( num == TX_DELETEDPT ) strcpy(text, "Nieprawidłowy obiekt");
- if ( num == TX_FILEOPEN ) strcpy(text, "Nie można otworzyć pliku");
- if ( num == TX_NOTOPEN ) strcpy(text, "Plik nie jest otwarty");
- if ( num == TX_ERRREAD ) strcpy(text, "Błąd odczytu");
- if ( num == TX_ERRWRITE ) strcpy(text, "Błąd zapisu");
- }
-
- if ( type == RES_KEY )
- {
- if ( num == 0 ) strcpy(text, "< brak >");
- if ( num == VK_LEFT ) strcpy(text, "Strzałka w lewo");
- if ( num == VK_RIGHT ) strcpy(text, "Strzałka w prawo");
- if ( num == VK_UP ) strcpy(text, "Strzałka w górę");
- if ( num == VK_DOWN ) strcpy(text, "Strzałka w dół");
- if ( num == VK_CANCEL ) strcpy(text, "Ctrl-break");
- if ( num == VK_BACK ) strcpy(text, "<--");
- if ( num == VK_TAB ) strcpy(text, "Tab");
- if ( num == VK_CLEAR ) strcpy(text, "Wyczyść");
- if ( num == VK_RETURN ) strcpy(text, "Enter");
- if ( num == VK_SHIFT ) strcpy(text, "Shift");
- if ( num == VK_CONTROL ) strcpy(text, "Ctrl");
- if ( num == VK_MENU ) strcpy(text, "Alt");
- if ( num == VK_PAUSE ) strcpy(text, "Pause");
- if ( num == VK_CAPITAL ) strcpy(text, "Caps Lock");
- if ( num == VK_ESCAPE ) strcpy(text, "Esc");
- if ( num == VK_SPACE ) strcpy(text, "Spacja");
- if ( num == VK_PRIOR ) strcpy(text, "Page Up");
- if ( num == VK_NEXT ) strcpy(text, "Page Down");
- if ( num == VK_END ) strcpy(text, "End");
- if ( num == VK_HOME ) strcpy(text, "Home");
- if ( num == VK_SELECT ) strcpy(text, "Zaznacz");
- if ( num == VK_EXECUTE ) strcpy(text, "Wykonaj");
- if ( num == VK_SNAPSHOT ) strcpy(text, "Print Scrn");
- if ( num == VK_INSERT ) strcpy(text, "Insert");
- if ( num == VK_DELETE ) strcpy(text, "Delete");
- if ( num == VK_HELP ) strcpy(text, "Pomoc");
- if ( num == VK_LWIN ) strcpy(text, "Lewy klawisz Windows");
- if ( num == VK_RWIN ) strcpy(text, "Prawy klawisz Windows");
- if ( num == VK_APPS ) strcpy(text, "Klawisz menu kontekstowego");
- if ( num == VK_NUMPAD0 ) strcpy(text, "Szary 0");
- if ( num == VK_NUMPAD1 ) strcpy(text, "Szary 1");
- if ( num == VK_NUMPAD2 ) strcpy(text, "Szary 2");
- if ( num == VK_NUMPAD3 ) strcpy(text, "Szary 3");
- if ( num == VK_NUMPAD4 ) strcpy(text, "Szary 4");
- if ( num == VK_NUMPAD5 ) strcpy(text, "Szary 5");
- if ( num == VK_NUMPAD6 ) strcpy(text, "Szary 6");
- if ( num == VK_NUMPAD7 ) strcpy(text, "Szary 7");
- if ( num == VK_NUMPAD8 ) strcpy(text, "Szary 8");
- if ( num == VK_NUMPAD9 ) strcpy(text, "Szary 9");
- if ( num == VK_MULTIPLY ) strcpy(text, "Szary *");
- if ( num == VK_ADD ) strcpy(text, "Szary +");
- if ( num == VK_SEPARATOR ) strcpy(text, "Szary separator");
- if ( num == VK_SUBTRACT ) strcpy(text, "Szary -");
- if ( num == VK_DECIMAL ) strcpy(text, "Szary .");
- if ( num == VK_DIVIDE ) strcpy(text, "Szary /");
- if ( num == VK_F1 ) strcpy(text, "F1");
- if ( num == VK_F2 ) strcpy(text, "F2");
- if ( num == VK_F3 ) strcpy(text, "F3");
- if ( num == VK_F4 ) strcpy(text, "F4");
- if ( num == VK_F5 ) strcpy(text, "F5");
- if ( num == VK_F6 ) strcpy(text, "F6");
- if ( num == VK_F7 ) strcpy(text, "F7");
- if ( num == VK_F8 ) strcpy(text, "F8");
- if ( num == VK_F9 ) strcpy(text, "F9");
- if ( num == VK_F10 ) strcpy(text, "F10");
- if ( num == VK_F11 ) strcpy(text, "F11");
- if ( num == VK_F12 ) strcpy(text, "F12");
- if ( num == VK_F13 ) strcpy(text, "F13");
- if ( num == VK_F14 ) strcpy(text, "F14");
- if ( num == VK_F15 ) strcpy(text, "F15");
- if ( num == VK_F16 ) strcpy(text, "F16");
- if ( num == VK_F17 ) strcpy(text, "F17");
- if ( num == VK_F18 ) strcpy(text, "F18");
- if ( num == VK_F19 ) strcpy(text, "F19");
- if ( num == VK_F20 ) strcpy(text, "F20");
- if ( num == VK_NUMLOCK ) strcpy(text, "Num Lock");
- if ( num == VK_SCROLL ) strcpy(text, "Scroll Lock");
- if ( num == VK_ATTN ) strcpy(text, "Attn");
- if ( num == VK_CRSEL ) strcpy(text, "CrSel");
- if ( num == VK_EXSEL ) strcpy(text, "ExSel");
- if ( num == VK_EREOF ) strcpy(text, "Erase EOF");
- if ( num == VK_PLAY ) strcpy(text, "Graj");
- if ( num == VK_ZOOM ) strcpy(text, "Powiększenie");
- if ( num == VK_PA1 ) strcpy(text, "PA1");
- if ( num == VK_OEM_CLEAR ) strcpy(text, "Wyczyść");
- if ( num == VK_BUTTON1 ) strcpy(text, "Przycisk 1");
- if ( num == VK_BUTTON2 ) strcpy(text, "Przycisk 2");
- if ( num == VK_BUTTON3 ) strcpy(text, "Przycisk 3");
- if ( num == VK_BUTTON4 ) strcpy(text, "Przycisk 4");
- if ( num == VK_BUTTON5 ) strcpy(text, "Przycisk 5");
- if ( num == VK_BUTTON6 ) strcpy(text, "Przycisk 6");
- if ( num == VK_BUTTON7 ) strcpy(text, "Przycisk 7");
- if ( num == VK_BUTTON8 ) strcpy(text, "Przycisk 8");
- if ( num == VK_BUTTON9 ) strcpy(text, "Przycisk 9");
- if ( num == VK_BUTTON10 ) strcpy(text, "Przycisk 10");
- if ( num == VK_BUTTON11 ) strcpy(text, "Przycisk 11");
- if ( num == VK_BUTTON12 ) strcpy(text, "Przycisk 12");
- if ( num == VK_BUTTON13 ) strcpy(text, "Przycisk 13");
- if ( num == VK_BUTTON14 ) strcpy(text, "Przycisk 14");
- if ( num == VK_BUTTON15 ) strcpy(text, "Przycisk 15");
- if ( num == VK_BUTTON16 ) strcpy(text, "Przycisk 16");
- if ( num == VK_BUTTON17 ) strcpy(text, "Przycisk 17");
- if ( num == VK_BUTTON18 ) strcpy(text, "Przycisk 18");
- if ( num == VK_BUTTON19 ) strcpy(text, "Przycisk 19");
- if ( num == VK_BUTTON20 ) strcpy(text, "Przycisk 20");
- if ( num == VK_BUTTON21 ) strcpy(text, "Przycisk 21");
- if ( num == VK_BUTTON22 ) strcpy(text, "Przycisk 22");
- if ( num == VK_BUTTON23 ) strcpy(text, "Przycisk 23");
- if ( num == VK_BUTTON24 ) strcpy(text, "Przycisk 24");
- if ( num == VK_BUTTON25 ) strcpy(text, "Przycisk 25");
- if ( num == VK_BUTTON26 ) strcpy(text, "Przycisk 26");
- if ( num == VK_BUTTON27 ) strcpy(text, "Przycisk 27");
- if ( num == VK_BUTTON28 ) strcpy(text, "Przycisk 28");
- if ( num == VK_BUTTON29 ) strcpy(text, "Przycisk 29");
- if ( num == VK_BUTTON30 ) strcpy(text, "Przycisk 30");
- if ( num == VK_BUTTON31 ) strcpy(text, "Przycisk 31");
- if ( num == VK_BUTTON32 ) strcpy(text, "Przycisk 32");
- if ( num == VK_WHEELUP ) strcpy(text, "Kółko w górę");
- if ( num == VK_WHEELDOWN ) strcpy(text, "Kółko w dół");
- }
-#endif
-
- return ( text[0] != 0 );
-}
-
-
diff --git a/src/winmain.cpp b/src/winmain.cpp
deleted file mode 100644
index 60ccd8f..0000000
--- a/src/winmain.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.// winmain.cpp
-//
-
-#define STRICT
-#include <windows.h>
-#include "D3DApp.h"
-
-
-//-----------------------------------------------------------------------------
-// Name: WinMain()
-// Desc: Entry point to the program. Initializes everything, and goes into a
-// message-processing loop. Idle time is used to render the scene.
-//-----------------------------------------------------------------------------
-INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
-{
- CD3DApplication d3dApp;
-
- if( FAILED( d3dApp.Create( hInst, strCmdLine ) ) )
- return 0;
-
- return d3dApp.Run();
-}
-
-