From 84d1f79fdf02e0010e4b2d118458e8cd8ce0dd71 Mon Sep 17 00:00:00 2001 From: Krzysztof H Date: Fri, 9 Mar 2012 17:08:05 +0100 Subject: Added license info using a small program SrcHead. --- src/particule.cpp | 174 +++++++++++++++++++++++++++++------------------------- 1 file changed, 94 insertions(+), 80 deletions(-) (limited to 'src/particule.cpp') diff --git a/src/particule.cpp b/src/particule.cpp index e98f249..7e7864e 100644 --- a/src/particule.cpp +++ b/src/particule.cpp @@ -1,4 +1,18 @@ -// particule.cpp +// * 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 . #define STRICT #define D3D_OVERLOADS @@ -32,7 +46,7 @@ -// Vérifie si un objet est destructible, mais pas un ennemi. +// V�rifie si un objet est destructible, mais pas un ennemi. BOOL IsSoft(ObjectType type) { @@ -79,10 +93,10 @@ BOOL IsSoft(ObjectType type) type == OBJECT_ENERGY || type == OBJECT_LABO || type == OBJECT_NUCLEAR || - type == OBJECT_PARA ); // bâtiment ? + type == OBJECT_PARA ); // b�timent ? } -// Vérifie si un objet est un ennemi destructible. +// V�rifie si un objet est un ennemi destructible. BOOL IsAlien(ObjectType type) { @@ -99,7 +113,7 @@ BOOL IsAlien(ObjectType type) type == OBJECT_TEEN31 ); } -// Retourne le facteur d'aténumation pour les tirs amis. +// Retourne le facteur d'at�numation pour les tirs amis. float RetDecay(ObjectType type) { @@ -213,7 +227,7 @@ void CParticule::FlushParticule(int sheet) // Construit le nom de fichier de l'effet. -// effectNN.tga, avec NN = numéro +// effectNN.tga, avec NN = num�ro void NameParticule(char *buffer, int num) { @@ -229,8 +243,8 @@ void NameParticule(char *buffer, int num) } -// Créé une nouvelle particule. -// Retourne le canal de la particule crée ou -1 en cas d'erreur. +// Cr�� une nouvelle particule. +// Retourne le canal de la particule cr�e ou -1 en cas d'erreur. int CParticule::CreateParticule(D3DVECTOR pos, D3DVECTOR speed, FPOINT dim, ParticuleType type, @@ -434,8 +448,8 @@ int CParticule::CreateParticule(D3DVECTOR pos, D3DVECTOR speed, FPOINT dim, return -1; } -// Créé une nouvelle particule triangulaire (débris). -// Retourne le canal de la particule crée ou -1 en cas d'erreur. +// Cr�� une nouvelle particule triangulaire (d�bris). +// Retourne le canal de la particule cr�e ou -1 en cas d'erreur. int CParticule::CreateFrag(D3DVECTOR pos, D3DVECTOR speed, D3DTriangle *triangle, @@ -542,8 +556,8 @@ int CParticule::CreateFrag(D3DVECTOR pos, D3DVECTOR speed, return -1; } -// Créé une nouvelle particule étant une partie d'objet. -// Retourne le canal de la particule crée ou -1 en cas d'erreur. +// Cr�� une nouvelle particule �tant une partie d'objet. +// Retourne le canal de la particule cr�e ou -1 en cas d'erreur. int CParticule::CreatePart(D3DVECTOR pos, D3DVECTOR speed, ParticuleType type, @@ -594,8 +608,8 @@ int CParticule::CreatePart(D3DVECTOR pos, D3DVECTOR speed, return -1; } -// Créé une nouvelle particule linéaire (rayon). -// Retourne le canal de la particule crée ou -1 en cas d'erreur. +// Cr�� une nouvelle particule lin�aire (rayon). +// Retourne le canal de la particule cr�e ou -1 en cas d'erreur. int CParticule::CreateRay(D3DVECTOR pos, D3DVECTOR goal, ParticuleType type, FPOINT dim, @@ -657,8 +671,8 @@ int CParticule::CreateRay(D3DVECTOR pos, D3DVECTOR goal, return -1; } -// Crée une particule avec une traînée. -// "length" est la durée de la queue de la traînée (en secondes) ! +// Cr�e une particule avec une tra�n�e. +// "length" est la dur�e de la queue de la tra�n�e (en secondes) ! int CParticule::CreateTrack(D3DVECTOR pos, D3DVECTOR speed, FPOINT dim, ParticuleType type, float duration, float mass, @@ -666,11 +680,11 @@ int CParticule::CreateTrack(D3DVECTOR pos, D3DVECTOR speed, FPOINT dim, { int channel, rank, i; - // Crée la particule normale. + // Cr�e la particule normale. channel = CreateParticule(pos, speed, dim, type, duration, mass, 0.0f, 0); if ( channel == -1 ) return -1; - // Cherche une traînée libre. + // Cherche une tra�n�e libre. for ( i=0 ; i= 20.0f ) @@ -1025,9 +1039,9 @@ void CParticule::FrameParticule(float rTime) } } - // Gère la traînée associée. + // G�re la tra�n�e associ�e. r = m_particule[i].trackRank; - if ( r != -1 ) // traînée existe ? + if ( r != -1 ) // tra�n�e existe ? { if ( TrackMove(r, m_particule[i].pos, progress) ) { @@ -1058,7 +1072,7 @@ void CParticule::FrameParticule(float rTime) ti.y = ts.y+0.125f; } - if ( m_particule[i].type == PARTITRACK3 ) // araignée ? + if ( m_particule[i].type == PARTITRACK3 ) // araign�e ? { m_particule[i].zoom = 1.0f-(m_particule[i].time-m_particule[i].duration); @@ -1133,7 +1147,7 @@ void CParticule::FrameParticule(float rTime) ti.y = ts.y+0.125f; } - if ( m_particule[i].type == PARTITRACK12 ) // traînée réacteur ? + if ( m_particule[i].type == PARTITRACK12 ) // tra�n�e r�acteur ? { m_particule[i].zoom = 1.0f; @@ -1399,7 +1413,7 @@ void CParticule::FrameParticule(float rTime) m_particule[i].goal = m_particule[i].pos; if ( object != 0 ) { - if ( object->RetShieldRadius() > 0.0f ) // protégé par bouclier ? + if ( object->RetShieldRadius() > 0.0f ) // prot�g� par bouclier ? { CreateParticule(m_particule[i].pos, D3DVECTOR(0.0f, 0.0f, 0.0f), FPOINT(6.0f, 6.0f), PARTIGUNDEL, 2.0f); if ( m_lastTimeGunDel > 0.2f ) @@ -1416,7 +1430,7 @@ void CParticule::FrameParticule(float rTime) { Play(SOUND_TOUCH, m_particule[i].pos, 1.0f); } - object->ExploObject(EXPLO_BOUM, 0.0f); // démarre explosion + object->ExploObject(EXPLO_BOUM, 0.0f); // d�marre explosion } } } @@ -1430,7 +1444,7 @@ void CParticule::FrameParticule(float rTime) ti.y = ts.y+0.125f; } - if ( m_particule[i].type == PARTIGUN3 ) // suicide araignée ? + if ( m_particule[i].type == PARTIGUN3 ) // suicide araign�e ? { if ( progress >= 1.0f ) { @@ -1458,7 +1472,7 @@ void CParticule::FrameParticule(float rTime) } else { - object->ExploObject(EXPLO_BURN, 1.0f); // démarre explosion + object->ExploObject(EXPLO_BURN, 1.0f); // d�marre explosion } } } @@ -1762,8 +1776,8 @@ void CParticule::FrameParticule(float rTime) ti.y = ts.y+0.25f; } - // Diminue l'intensité si la caméra est presque à la même - // hauteur (nappe de brouillard à hauteur des yeux). + // Diminue l'intensit� si la cam�ra est presque � la m�me + // hauteur (nappe de brouillard � hauteur des yeux). if ( m_particule[i].type >= PARTIFOG0 && m_particule[i].type <= PARTIFOG9 ) { @@ -2729,8 +2743,8 @@ void CParticule::FrameParticule(float rTime) } -// Déplace une traînée. -// Retourne TRUE lorsque la traînée est terminée. +// D�place une tra�n�e. +// Retourne TRUE lorsque la tra�n�e est termin�e. BOOL CParticule::TrackMove(int i, D3DVECTOR pos, float progress) { @@ -2767,7 +2781,7 @@ BOOL CParticule::TrackMove(int i, D3DVECTOR pos, float progress) //? m_track[i].intensity = 1.0f; m_track[i].intensity = 1.0f-progress; } - else // mort lente de la traînée ? + else // mort lente de la tra�n�e ? { //? m_track[i].intensity = 1.0f-(progress-1.0f)/(m_track[i].step*MAXTRACKLEN); m_track[i].intensity = 0.0f; @@ -2776,7 +2790,7 @@ BOOL CParticule::TrackMove(int i, D3DVECTOR pos, float progress) return (m_track[i].intensity <= 0.0f); } -// Dessine une traînée. +// Dessine une tra�n�e. void CParticule::TrackDraw(int i, ParticuleType type) { @@ -2787,7 +2801,7 @@ void CParticule::TrackDraw(int i, ParticuleType type) float lTotal, f1, f2, a; int counter, h; - // Calcule la longueur totale mémorisée. + // Calcule la longueur totale m�moris�e. lTotal = 0.0f; h = m_track[i].head; for ( counter=0 ; counterSetRenderState(D3DRENDERSTATE_ZENABLE, FALSE); m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, FALSE); - // Dessine les particules à base de triangles. + // Dessine les particules � base de triangles. if ( m_totalInterface[0][sheet] > 0 ) { for ( i=0 ; iSetRenderState(D3DRENDERSTATE_LIGHTING, FALSE); ZeroMemory( &mat, sizeof(D3DMATERIAL7) ); @@ -3850,7 +3864,7 @@ void CParticule::DrawParticule(int sheet) } //? for ( t=1 ; t=1 ; t-- ) // noir derrière ! + for ( t=MAXPARTITYPE-1 ; t>=1 ; t-- ) // noir derri�re ! { if ( m_totalInterface[t][sheet] == 0 ) continue; @@ -3877,7 +3891,7 @@ void CParticule::DrawParticule(int sheet) if ( r != -1 ) { m_engine->SetState(state); - TrackDraw(r, m_particule[i].type); // dessine la traînée + TrackDraw(r, m_particule[i].type); // dessine la tra�n�e if ( !m_track[r].bDrawParticule ) continue; } @@ -3900,7 +3914,7 @@ void CParticule::DrawParticule(int sheet) DrawParticuleFog(i); } else if ( m_particule[i].type >= PARTISPHERE0 && - m_particule[i].type <= PARTISPHERE9 ) // sphère ? + m_particule[i].type <= PARTISPHERE9 ) // sph�re ? { DrawParticuleSphere(i); } @@ -3940,7 +3954,7 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos, min = 5.0f; if ( type == PARTIGUN2 ) min = 2.0f; // tir insecte ? - if ( type == PARTIGUN3 ) min = 3.0f; // suicide araignée ? + if ( type == PARTIGUN3 ) min = 3.0f; // suicide araign�e ? box1 = old; box2 = pos; @@ -3971,12 +3985,12 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos, if ( type == PARTIGUN1 ) // tir fireball ? { if ( oType == OBJECT_MOTHER ) continue; - if ( bHimself ) // dégâts à soi-même ? + if ( bHimself ) // d�g�ts � soi-m�me ? { if ( !IsAlien(oType) && !IsSoft(oType) ) continue; } - else // dégats seulement aux ennemis ? + else // d�gats seulement aux ennemis ? { if ( !IsAlien(oType) ) continue; } @@ -3985,31 +3999,31 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos, { if ( !IsSoft(oType) ) continue; } - else if ( type == PARTIGUN3 ) // suicide araignée ? + else if ( type == PARTIGUN3 ) // suicide araign�e ? { if ( !IsSoft(oType) ) continue; } else if ( type == PARTIGUN4 ) // tir orgaball ? { if ( oType == OBJECT_MOTHER ) continue; - if ( bHimself ) // dégâts à soi-même ? + if ( bHimself ) // d�g�ts � soi-m�me ? { if ( !IsAlien(oType) && !IsSoft(oType) ) continue; } - else // dégats seulement aux ennemis ? + else // d�gats seulement aux ennemis ? { if ( !IsAlien(oType) ) continue; } } else if ( type == PARTITRACK11 ) // tir phazer ? { - if ( bHimself ) // dégâts à soi-même ? + if ( bHimself ) // d�g�ts � soi-m�me ? { if ( !IsAlien(oType) && !IsSoft(oType) ) continue; } - else // dégats seulement aux ennemis ? + else // d�gats seulement aux ennemis ? { if ( !IsAlien(oType) ) continue; } @@ -4022,9 +4036,9 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos, oPos = pObj->RetPosition(0); if ( type == PARTIGUN2 || // tir insecte ? - type == PARTIGUN3 ) // suicide araignée ? + type == PARTIGUN3 ) // suicide araign�e ? { - // Test si la balle est entrée dans la sphère d'un bouclier. + // Test si la balle est entr�e dans la sph�re d'un bouclier. shieldRadius = pObj->RetShieldRadius(); if ( shieldRadius > 0.0f ) { @@ -4038,19 +4052,19 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos, } if ( bShield ) continue; - // Test au centre de l'objet, ce qui est nécessaire pour - // les objets qui n'ont pas de sphère au centre (station). + // Test au centre de l'objet, ce qui est n�cessaire pour + // les objets qui n'ont pas de sph�re au centre (station). dist = Length(oPos, pos)-4.0f; if ( dist < min ) { pBest = pObj; } - // Test avec toutes les sphères de l'objet. + // Test avec toutes les sph�res de l'objet. j = 0; while ( pObj->GetCrashSphere(j++, oPos, oRadius) ) { - if ( oPos.x+oRadius < box1.x || oPos.x-oRadius > box2.x || // hors de la boîte ? + if ( oPos.x+oRadius < box1.x || oPos.x-oRadius > box2.x || // hors de la bo�te ? oPos.y+oRadius < box1.y || oPos.y-oRadius > box2.y || oPos.z+oRadius < box1.z || oPos.z-oRadius > box2.z ) continue; @@ -4118,7 +4132,7 @@ CObject* CParticule::SearchObjectRay(D3DVECTOR pos, D3DVECTOR goal, oPos = pObj->RetPosition(0); - if ( oPos.x < box1.x || oPos.x > box2.x || // hors de la boîte ? + if ( oPos.x < box1.x || oPos.x > box2.x || // hors de la bo�te ? oPos.y < box1.y || oPos.y > box2.y || oPos.z < box1.z || oPos.z > box2.z ) continue; -- cgit v1.2.3-1-g7c22