From 93537652b31915d647724ec72085f0f36e397e3e Mon Sep 17 00:00:00 2001 From: Krzysztof H Date: Tue, 20 Mar 2012 13:17:00 +0100 Subject: Deleting unused files --- src/Copie de taskgoto.cpp | 2136 ------------------------------------- src/restext-old.cpp | 2541 --------------------------------------------- src/winmain.cpp | 38 - 3 files changed, 4715 deletions(-) delete mode 100644 src/Copie de taskgoto.cpp delete mode 100644 src/restext-old.cpp delete mode 100644 src/winmain.cpp 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 -#include -#include - -#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 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 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<= 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< -#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 -#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(); -} - - -- cgit v1.2.3-1-g7c22