From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/a03534.html | 3804 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3804 insertions(+) create mode 100644 docs/doxygen/nel/a03534.html (limited to 'docs/doxygen/nel/a03534.html') diff --git a/docs/doxygen/nel/a03534.html b/docs/doxygen/nel/a03534.html new file mode 100644 index 00000000..d2e3a815 --- /dev/null +++ b/docs/doxygen/nel/a03534.html @@ -0,0 +1,3804 @@ + + +NeL: NL3D::CTileSet class Reference + + + +
+

NL3D::CTileSet Class Reference

#include <tile_bank.h> +

+


Detailed Description

+This class is a tile set. It handles all the tile of the same material.
Author:
Cyril Corvazier

+Nevrax France

+
Date:
2000
+ +

+ +

+Definition at line 277 of file tile_bank.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

enum  TBorder {
+  top = 0, +bottom, +left, +right, +
+  borderCount +
+ }
enum  TDisplacement { FirstDisplace = 0, +LastDisplace = 15, +CountDisplace = 16 + }
enum  TError {
+  ok = 0, +topInterfaceProblem, +bottomInterfaceProblem, +leftInterfaceProblem, +
+  rightInterfaceProblem, +addFirstA128128, +topBottomNotTheSame, +rightLeftNotTheSame, +
+  sizeInvalide, +errorCount +
+ }
enum  TFlagBorder {
+  _1111 = 0, +_0111, +_1110, +_0001, +
+  _1000, +_0000, +dontcare = -1 +
+ }
enum  TTransition { first = 0, +last = 47, +count = 48, +notfound = -1 + }

Public Member Functions

void addChild (const std::string &name)
void addTile128 (int &indexInTileSet, CTileBank &bank)
void addTile256 (int &indexInTileSet, CTileBank &bank)
TError checkTile128 (CTile::TBitmap type, const CTileBorder &border, int &pixel, int &composante)
TError checkTile256 (CTile::TBitmap type, const CTileBorder &border, int &pixel, int &composante)
TError checkTileTransition (TTransition transition, CTile::TBitmap type, const CTileBorder &border, int &indexError, int &pixel, int &composante)
void cleanUnusedData ()
void clearDisplacement (TDisplacement displacement, CTileBank &bank)
void clearTile128 (int indexInTileSet, CTile::TBitmap type, CTileBank &bank)
void clearTile256 (int indexInTileSet, CTile::TBitmap type, CTileBank &bank)
void clearTransition (TTransition transition, CTile::TBitmap type, CTileBank &bank)
 CTileSet ()
const CTileBordergetBorder128 (CTile::TBitmap bitmapType) const
const CTileBordergetBorder256 (CTile::TBitmap bitmapType) const
uint getDisplacementTile (TDisplacement displacement) const
TTransition getExistingTransitionTile (TFlagBorder _top, TFlagBorder _bottom, TFlagBorder _left, TFlagBorder _right, int reject, CTile::TBitmap type)
const std::string & getName () const
sint getNumTile128 () const
sint getNumTile256 () const
bool getOriented () const
sint32 getTile128 (sint index) const
sint32 getTile256 (sint index) const
const CTileVegetableDescgetTileVegetableDesc () const
CTileVegetableDescgetTileVegetableDesc ()
 return the TileVegetable

const std::string & getTileVegetableDescFileName () const
const CTileSetTransitiongetTransition (sint index) const
CTileSetTransitiongetTransition (sint index)
bool isChild (const std::string &name)
void loadTileVegetableDesc ()
void removeChild (const std::string &name)
void removeTile128 (int indexInTileSet, CTileBank &bank)
void removeTile256 (int indexInTileSet, CTileBank &bank)
void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
void setBorder (CTile::TBitmap type, const CTileBorder &border)
void setDisplacement (TDisplacement displacement, const std::string &fileName, CTileBank &bank)
void setName (const std::string &name)
void setOriented (bool oriented)
void setTile128 (int indexInTileSet, const std::string &name, CTile::TBitmap type, CTileBank &bank)
void setTile256 (int indexInTileSet, const std::string &name, CTile::TBitmap type, CTileBank &bank)
void setTileTransition (TTransition transition, const std::string &name, CTile::TBitmap type, CTileBank &bank, const CTileBorder &border)
void setTileTransitionAlpha (TTransition transition, const std::string &name, CTileBank &bank, const CTileBorder &border, uint8 rotAlpha)
void setTileVegetableDesc (const CTileVegetableDesc &tvd)
void setTileVegetableDescFileName (const std::string &fileName)

Static Public Member Functions

TTransition getComplementaryTransition (TTransition transition)
TFlagBorder getEdgeType (TTransition _what, TBorder _where)
const char * getErrorMessage (TError error)
TFlagBorder getInvertBorder (TFlagBorder border)
TFlagBorder getOrientedBorder (TBorder where, TFlagBorder border)
TTransition getTransitionTile (TFlagBorder top, TFlagBorder bottom, TFlagBorder left, TFlagBorder right)
TTransition rotateTransition (TTransition transition)

Data Fields

uint32 SurfaceData

Private Member Functions

void deleteBordersIfLast (const CTileBank &bank, CTile::TBitmap type)

Static Private Member Functions

TFlagBorder getComplementaryBorder (TFlagBorder border)

Private Attributes

CTileBorder _Border128 [2]
CTileBorder _Border256 [2]
CTileBorder _BorderTransition [count][CTile::bitmapCount]
std::set< std::string > _ChildName
uint32 _DisplacementBitmap [CTileSet::CountDisplace]
std::string _Name
bool _Oriented
std::vector< sint32_Tile128
std::vector< sint32_Tile256
CTileSetTransition _TileTransition [count]
CTileVegetableDesc _TileVegetableDesc
std::string _TileVegetableDescFileName

Static Private Attributes

const char * _ErrorMessage [CTileSet::errorCount]
const TFlagBorder _TransitionFlags [count][4]
const sint _Version = 5

Friends

class CTileBank
+


Member Enumeration Documentation

+

+ + + + +
+ + +
enum NL3D::CTileSet::TBorder +
+
+ + + + + +
+   + + +

+

Enumeration values:
+ + + + + + +
top  +
bottom  +
left  +
right  +
borderCount  +
+
+ +

+Definition at line 287 of file tile_bank.h. +

+

00287 { top=0, bottom, left, right, borderCount };
+
+

+ + + + +
+ + +
enum NL3D::CTileSet::TDisplacement +
+
+ + + + + +
+   + + +

+

Enumeration values:
+ + + + +
FirstDisplace  +
LastDisplace  +
CountDisplace  +
+
+ +

+Definition at line 286 of file tile_bank.h. +

+

+

+ + + + +
+ + +
enum NL3D::CTileSet::TError +
+
+ + + + + +
+   + + +

+

Enumeration values:
+ + + + + + + + + + + +
ok  +
topInterfaceProblem  +
bottomInterfaceProblem  +
leftInterfaceProblem  +
rightInterfaceProblem  +
addFirstA128128  +
topBottomNotTheSame  +
rightLeftNotTheSame  +
sizeInvalide  +
errorCount  +
+
+ +

+Definition at line 282 of file tile_bank.h. +

+

+

+ + + + +
+ + +
enum NL3D::CTileSet::TFlagBorder +
+
+ + + + + +
+   + + +

+

Enumeration values:
+ + + + + + + + +
_1111  +
_0111  +
_1110  +
_0001  +
_1000  +
_0000  +
dontcare  +
+
+ +

+Definition at line 288 of file tile_bank.h. +

+Referenced by checkTileTransition(), getEdgeType(), getExistingTransitionTile(), and getTransitionTile(). +

+

00288 { _1111=0,      _0111, _1110, _0001, _1000, _0000, dontcare=-1 };
+
+

+ + + + +
+ + +
enum NL3D::CTileSet::TTransition +
+
+ + + + + +
+   + + +

+

Enumeration values:
+ + + + + +
first  +
last  +
count  +
notfound  +
+
+ +

+Definition at line 285 of file tile_bank.h. +

+Referenced by getComplementaryTransition(), getExistingTransitionTile(), and getTransitionTile(). +

+

00285 { first=0, last=47, count=48, notfound=-1 };
+
+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
NL3D::CTileSet::CTileSet  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 898 of file tile_bank.cpp. +

+References _DisplacementBitmap, _Oriented, CountDisplace, FirstDisplace, SurfaceData, and uint. +

+

00899 {
+00900         // Default, tileset 0
+00901         _Oriented = false;
+00902         uint displace;
+00903         for (displace=FirstDisplace; displace<CountDisplace; displace++)
+00904                 _DisplacementBitmap[displace]=0;
+00905 
+00906         // Default user surface data
+00907         SurfaceData = 0;
+00908 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileSet::addChild const std::string &  name  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 1306 of file tile_bank.cpp. +

+References _ChildName. +

+

01307 {
+01308         _ChildName.insert (name);
+01309 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::addTile128 int &  indexInTileSet,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 998 of file tile_bank.cpp. +

+References _Tile128, NL3D::CTileBank::createTile(), index, and sint. +

+

00999 {
+01000         // Create a tile
+01001         sint index=bank.createTile ();
+01002 
+01003         // Index of the new tile
+01004         indexInTileSet=_Tile128.size();
+01005 
+01006         // Add to the end of the list
+01007         _Tile128.push_back (index);
+01008 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::addTile256 int &  indexInTileSet,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1057 of file tile_bank.cpp. +

+References _Tile256, NL3D::CTileBank::createTile(), index, and sint. +

+

01058 {
+01059         // Create a tile
+01060         sint index=bank.createTile ();
+01061 
+01062         // Index of the new tile
+01063         indexInTileSet=_Tile256.size();
+01064 
+01065         // Add to the end of the list
+01066         _Tile256.push_back (index);
+01067 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CTileSet::TError NL3D::CTileSet::checkTile128 CTile::TBitmap  type,
const CTileBorder border,
int &  pixel,
int &  composante
+
+ + + + + +
+   + + +

+ +

+Definition at line 1026 of file tile_bank.cpp. +

+References _Border128, addFirstA128128, border, bottomInterfaceProblem, NL3D::CTileBorder::isSet(), leftInterfaceProblem, ok, rightInterfaceProblem, rightLeftNotTheSame, sizeInvalide, topBottomNotTheSame, topInterfaceProblem, and type. +

+

01027 {
+01028         // Self check
+01029         if ((border.getWidth()!=128)||(border.getHeight()!=128))
+01030                 return sizeInvalide;
+01031         if (!CTileBorder::compare (border, border, CTileBorder::top, CTileBorder::bottom, pixel, composante))
+01032                 return topBottomNotTheSame;
+01033         if (!CTileBorder::compare (border, border, CTileBorder::left, CTileBorder::right, pixel, composante))
+01034                 return rightLeftNotTheSame;
+01035 
+01036         // Check
+01037         if (_Border128[type].isSet())
+01038         {
+01039                 // Other check
+01040                 if (!CTileBorder::compare (border, _Border128[type], CTileBorder::top, CTileBorder::top, pixel, composante))
+01041                         return topInterfaceProblem;
+01042                 if (!CTileBorder::compare (border, _Border128[type], CTileBorder::bottom, CTileBorder::bottom, pixel, composante))
+01043                         return bottomInterfaceProblem;
+01044                 if (!CTileBorder::compare (border, _Border128[type], CTileBorder::left, CTileBorder::left, pixel, composante))
+01045                         return leftInterfaceProblem;
+01046                 if (!CTileBorder::compare (border, _Border128[type], CTileBorder::right, CTileBorder::right, pixel, composante))
+01047                         return rightInterfaceProblem;
+01048         }
+01049         else
+01050         {               
+01051                 return addFirstA128128;
+01052         }
+01053 
+01054         return ok;
+01055 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CTileSet::TError NL3D::CTileSet::checkTile256 CTile::TBitmap  type,
const CTileBorder border,
int &  pixel,
int &  composante
+
+ + + + + +
+   + + +

+ +

+Definition at line 1069 of file tile_bank.cpp. +

+References _Border128, _Border256, addFirstA128128, border, bottomInterfaceProblem, NL3D::CTileBorder::doubleSize(), NL3D::CTileBorder::isSet(), leftInterfaceProblem, ok, rightInterfaceProblem, rightLeftNotTheSame, sizeInvalide, topBottomNotTheSame, topInterfaceProblem, and type. +

+

01070 {
+01071         // Self check
+01072         if ((border.getWidth()!=256)||(border.getHeight()!=256))
+01073                 return sizeInvalide;
+01074         if (!CTileBorder::compare (border, border, CTileBorder::top, CTileBorder::bottom, pixel, composante))
+01075                 return topBottomNotTheSame;
+01076         if (!CTileBorder::compare (border, border, CTileBorder::left, CTileBorder::right, pixel, composante))
+01077                 return rightLeftNotTheSame;
+01078         
+01079         // Check if prb
+01080         if ((!_Border256[type].isSet())&&(_Border128[type].isSet()))
+01081         {
+01082                 _Border256[type]=_Border128[type];
+01083                 _Border256[type].doubleSize ();
+01084         }
+01085 
+01086         // Check
+01087         if (_Border256[type].isSet())
+01088         {
+01089 
+01090                 // Other check
+01091                 if (!CTileBorder::compare (border, _Border256[type], CTileBorder::top, CTileBorder::top, pixel, composante))
+01092                         return topInterfaceProblem;
+01093                 if (!CTileBorder::compare (border, _Border256[type], CTileBorder::bottom, CTileBorder::bottom, pixel, composante))
+01094                         return bottomInterfaceProblem;
+01095                 if (!CTileBorder::compare (border, _Border256[type], CTileBorder::left, CTileBorder::left, pixel, composante))
+01096                         return leftInterfaceProblem;
+01097                 if (!CTileBorder::compare (border, _Border256[type], CTileBorder::right, CTileBorder::right, pixel, composante))
+01098                         return rightInterfaceProblem;
+01099         }
+01100         else
+01101         {
+01102                 return addFirstA128128;
+01103         }
+01104 
+01105         return ok;
+01106 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CTileSet::TError NL3D::CTileSet::checkTileTransition TTransition  transition,
CTile::TBitmap  type,
const CTileBorder border,
int &  indexError,
int &  pixel,
int &  composante
+
+ + + + + +
+   + + +

+ +

+Definition at line 1145 of file tile_bank.cpp. +

+References _1111, _BorderTransition, _TransitionFlags, border, bottomInterfaceProblem, count, dontcare, getExistingTransitionTile(), leftInterfaceProblem, nlassert, ok, rightInterfaceProblem, TFlagBorder, topInterfaceProblem, and type. +

+

01147 {
+01148         nlassert (transition>=0);
+01149         nlassert (transition<count);
+01150 
+01151         // Check
+01152         indexError=-1;
+01153 
+01154         // Top
+01155         indexError=getExistingTransitionTile ((TFlagBorder)_TransitionFlags[transition][top], dontcare, dontcare, dontcare, transition, type);
+01156         if (indexError!=-1)
+01157         {
+01158                 if (!CTileBorder::compare (border, _BorderTransition[indexError][type], CTileBorder::top, CTileBorder::top, pixel, composante))
+01159                         return topInterfaceProblem;
+01160         }
+01161         indexError=getExistingTransitionTile (dontcare, (TFlagBorder)_TransitionFlags[transition][top], dontcare, dontcare, transition, type);
+01162         if (indexError!=-1)
+01163         {
+01164                 if (!CTileBorder::compare (border, _BorderTransition[indexError][type], CTileBorder::top, CTileBorder::bottom, pixel, composante))
+01165                         return topInterfaceProblem;
+01166         }
+01167         indexError=-1;
+01168         if (_TransitionFlags[transition][top]==_1111)
+01169         {
+01170                 if (!CTileBorder::allAlphaSet (border, CTileBorder::top, pixel, composante))
+01171                         return topInterfaceProblem;
+01172         }
+01173 
+01174         // Bottom
+01175         indexError=getExistingTransitionTile (dontcare, (TFlagBorder)_TransitionFlags[transition][bottom], dontcare, dontcare, transition, type);
+01176         if (indexError!=-1)
+01177         {
+01178                 if (!CTileBorder::compare (border, _BorderTransition[indexError][type], CTileBorder::bottom, CTileBorder::bottom, pixel, composante))
+01179                         return bottomInterfaceProblem;
+01180         }
+01181         indexError=getExistingTransitionTile ((TFlagBorder)_TransitionFlags[transition][bottom], dontcare, dontcare, dontcare, transition, type);
+01182         if (indexError!=-1)
+01183         {
+01184                 if (!CTileBorder::compare (border, _BorderTransition[indexError][type], CTileBorder::bottom, CTileBorder::top, pixel, composante))
+01185                         return bottomInterfaceProblem;
+01186         }
+01187         indexError=-1;
+01188         if (_TransitionFlags[transition][bottom]==_1111)
+01189         {
+01190                 if (!CTileBorder::allAlphaSet (border, CTileBorder::bottom, pixel, composante))
+01191                         return bottomInterfaceProblem;
+01192         }
+01193 
+01194         // Left
+01195         indexError=getExistingTransitionTile (dontcare, dontcare, (TFlagBorder)_TransitionFlags[transition][left], dontcare, transition, type);
+01196         if (indexError!=-1)
+01197         {
+01198                 if (!CTileBorder::compare (border, _BorderTransition[indexError][type], CTileBorder::left, CTileBorder::left, pixel, composante))
+01199                         return leftInterfaceProblem;
+01200         }
+01201         indexError=getExistingTransitionTile (dontcare, dontcare, dontcare, (TFlagBorder)_TransitionFlags[transition][left], transition, type);
+01202         if (indexError!=-1)
+01203         {
+01204                 if (!CTileBorder::compare (border, _BorderTransition[indexError][type], CTileBorder::left, CTileBorder::right, pixel, composante))
+01205                         return leftInterfaceProblem;
+01206         }
+01207         indexError=-1;
+01208         if (_TransitionFlags[transition][left]==_1111)
+01209         {
+01210                 if (!CTileBorder::allAlphaSet (border, CTileBorder::left, pixel, composante))
+01211                         return leftInterfaceProblem;
+01212         }
+01213 
+01214         // Right
+01215         indexError=getExistingTransitionTile (dontcare, dontcare, dontcare, (TFlagBorder)_TransitionFlags[transition][right], transition, type);
+01216         if (indexError!=-1)
+01217         {
+01218                 if (!CTileBorder::compare (border, _BorderTransition[indexError][type], CTileBorder::right, CTileBorder::right, pixel, composante))
+01219                         return rightInterfaceProblem;
+01220         }
+01221         indexError=getExistingTransitionTile (dontcare, dontcare, (TFlagBorder)_TransitionFlags[transition][right], dontcare, transition, type);
+01222         if (indexError!=-1)
+01223         {
+01224                 if (!CTileBorder::compare (border, _BorderTransition[indexError][type], CTileBorder::right, CTileBorder::left, pixel, composante))
+01225                         return rightInterfaceProblem;
+01226         }
+01227         indexError=-1;
+01228         if (_TransitionFlags[transition][right]==_1111)
+01229         {
+01230                 if (!CTileBorder::allAlphaSet (border, CTileBorder::right, pixel, composante))
+01231                         return rightInterfaceProblem;
+01232         }
+01233         return ok;
+01234 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTileSet::cleanUnusedData  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 1527 of file tile_bank.cpp. +

+References _Border128, _Border256, _BorderTransition, _ChildName, count, NL3D::CTileBorder::reset(), and uint. +

+

01528 {
+01529         _Name="";
+01530         _ChildName.clear();
+01531         _Border128[0].reset ();
+01532         _Border128[1].reset ();
+01533         _Border256[0].reset ();
+01534         _Border256[1].reset ();
+01535         for (uint i=0; i<count; i++)
+01536         for (uint j=0; j<CTile::bitmapCount; j++)
+01537                 _BorderTransition[i][j].reset();
+01538 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::clearDisplacement TDisplacement  displacement,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1498 of file tile_bank.cpp. +

+References _DisplacementBitmap, FirstDisplace, LastDisplace, nlassert, and NL3D::CTileBank::removeDisplacementMap(). +

+

01499 {
+01500         // checks
+01501         nlassert (displacement>=FirstDisplace);
+01502         nlassert (displacement<=LastDisplace);
+01503 
+01504         // Backup the id
+01505         int id=_DisplacementBitmap[displacement];
+01506 
+01507         // Clear map id
+01508         _DisplacementBitmap[displacement]=0;
+01509 
+01510         // Tell the bank we remove it
+01511         bank.removeDisplacementMap (id);
+01512 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::clearTile128 int  indexInTileSet,
CTile::TBitmap  type,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1399 of file tile_bank.cpp. +

+References _Tile128, NL3D::CTile::clearTile(), deleteBordersIfLast(), NL3D::CTileBank::getTile(), and type. +

+

01400 {
+01401         int nTile=_Tile128[indexInTileSet];
+01402         bank.getTile (nTile)->clearTile(type);
+01403         
+01404         // Erase border if it is the last texture
+01405         deleteBordersIfLast (bank, type);
+01406 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::clearTile256 int  indexInTileSet,
CTile::TBitmap  type,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1408 of file tile_bank.cpp. +

+References _Tile256, NL3D::CTile::clearTile(), deleteBordersIfLast(), NL3D::CTileBank::getTile(), and type. +

+

01409 {
+01410         int nTile=_Tile256[indexInTileSet];
+01411         bank.getTile (nTile)->clearTile(type);
+01412         
+01413         // Erase border if it is the last texture
+01414         deleteBordersIfLast (bank, type);
+01415 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::clearTransition TTransition  transition,
CTile::TBitmap  type,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1417 of file tile_bank.cpp. +

+References _BorderTransition, NL3D::CTileSetTransition::_Tile, _TileTransition, NL3D::CTile::clearTile(), deleteBordersIfLast(), NL3D::CTileBank::getTile(), NL3D::CTileBorder::reset(), and type. +

+

01418 {
+01419         int nTile=_TileTransition[transition]._Tile;
+01420         if (nTile!=-1)
+01421                 bank.getTile (nTile)->clearTile(type);
+01422         _BorderTransition[transition][type].reset();
+01423         
+01424         // Erase border if it is the last texture
+01425         deleteBordersIfLast (bank, type);
+01426 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::deleteBordersIfLast const CTileBank bank,
CTile::TBitmap  type
[private]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1429 of file tile_bank.cpp. +

+References _Border128, _Border256, NL3D::CTileSetTransition::_Tile, _Tile128, _Tile256, _TileTransition, count, NL3D::CTile::getRelativeFileName(), NL3D::CTileBank::getTile(), NL3D::CTileBorder::reset(), sint, and type. +

+Referenced by clearTile128(), clearTile256(), clearTransition(), removeTile128(), and removeTile256(). +

+

01430 {
+01431         // delete is true
+01432         bool bDelete=true;
+01433 
+01434         // iterator..
+01435         std::vector<sint32>::iterator ite=_Tile128.begin();
+01436 
+01437         // Check all the 128x128 tiles
+01438         while (ite!=_Tile128.end())
+01439         {
+01440                 // If the file name is valid
+01441                 if (bank.getTile (*ite)->getRelativeFileName(type)!="")
+01442                 {
+01443                         // Don't delete, 
+01444                         bDelete=false;
+01445                         break;
+01446                 }
+01447                 ite++;
+01448         }
+01449         // If break, not empty, return
+01450         if (ite!=_Tile128.end())
+01451                 return;
+01452 
+01453         // Check all the 256x256 tiles
+01454         ite=_Tile256.begin();
+01455         while (ite!=_Tile256.end())
+01456         {
+01457                 // If the file name is valid
+01458                 if (bank.getTile (*ite)->getRelativeFileName(type)!="")
+01459                 {
+01460                         // Don't delete, 
+01461                         bDelete=false;
+01462                         break;
+01463                 }
+01464                 ite++;
+01465         }
+01466         // If break, not empty, return
+01467         if (ite!=_Tile256.end())
+01468                 return;
+01469 
+01470 
+01471         // Check all the transitions tiles
+01472         sint trans;
+01473         for (trans=0; trans<count; trans++)
+01474         {
+01475                 // Get the tile associed with the transition
+01476                 int nTile=_TileTransition[trans]._Tile;
+01477 
+01478                 // If it is not NULL..
+01479                 if (nTile!=-1)
+01480                 {
+01481                         // If the file name is valid
+01482                         if (bank.getTile (nTile)->getRelativeFileName(type)!="")
+01483                         {
+01484                                 // Don't delete, 
+01485                                 bDelete=false;
+01486                                 break;
+01487                         }
+01488                 }
+01489         }
+01490         if (trans!=count)
+01491                 return;
+01492 
+01493         // Ok, erase borders because no tile use it anymore
+01494         _Border128[type].reset();
+01495         _Border256[type].reset();
+01496 }
+
+

+ + + + +
+ + + + + + + + + + +
const CTileBorder* NL3D::CTileSet::getBorder128 CTile::TBitmap  bitmapType  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 361 of file tile_bank.h. +

+References _Border128. +

+

00362         {
+00363                 return &(_Border128[bitmapType]);
+00364         }
+
+

+ + + + +
+ + + + + + + + + + +
const CTileBorder* NL3D::CTileSet::getBorder256 CTile::TBitmap  bitmapType  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 365 of file tile_bank.h. +

+References _Border256. +

+

00366         {
+00367                 return &(_Border256[bitmapType]);
+00368         }
+
+

+ + + + +
+ + + + + + + + + + +
CTileSet::TFlagBorder NL3D::CTileSet::getComplementaryBorder TFlagBorder  border  )  [static, private]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1329 of file tile_bank.cpp. +

+References _0000, _0001, _0111, _1000, _1110, _1111, border, and nlassert. +

+Referenced by getComplementaryTransition(). +

+

01330 {
+01331         switch (border)
+01332         {
+01333         case _0000:
+01334                 return _1111;
+01335         case _0001:
+01336                 return _1110;
+01337         case _0111:
+01338                 return _1000;
+01339         case _1000:
+01340                 return _0111;
+01341         case _1110:
+01342                 return _0001;
+01343         case _1111:
+01344                 return _0000;
+01345         default:
+01346                 nlassert (0);   // no
+01347         }
+01348         return _0000;
+01349 }
+
+

+ + + + +
+ + + + + + + + + + +
CTileSet::TTransition NL3D::CTileSet::getComplementaryTransition TTransition  transition  )  [static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1316 of file tile_bank.cpp. +

+References _TransitionFlags, first, getComplementaryBorder(), getTransitionTile(), nlassert, notfound, and TTransition. +

+

01317 {
+01318         nlassert ((transition>=first)&&(transition<=last));
+01319         TTransition trans=getTransitionTile (getComplementaryBorder (_TransitionFlags[transition][top]),
+01320                 getComplementaryBorder (_TransitionFlags[transition][bottom]),
+01321                 getComplementaryBorder (_TransitionFlags[transition][left]),
+01322                 getComplementaryBorder (_TransitionFlags[transition][right]));
+01323         
+01324         nlassert (trans!=notfound);
+01325         
+01326         return trans;
+01327 }
+
+

+ + + + +
+ + + + + + + + + + +
uint NL3D::CTileSet::getDisplacementTile TDisplacement  displacement  )  const [inline]
+
+ + + + + +
+   + + +

+Return the file name of the displacement map for the map nb displacement. This file name is relative at the absolute path. +

+Definition at line 375 of file tile_bank.h. +

+References _DisplacementBitmap, FirstDisplace, LastDisplace, nlassert, and uint. +

+

00376         {
+00377                 // checks
+00378                 nlassert (displacement>=FirstDisplace);
+00379                 nlassert (displacement<=LastDisplace);
+00380 
+00381                 // return file name
+00382                 return _DisplacementBitmap[displacement];
+00383         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
TFlagBorder NL3D::CTileSet::getEdgeType TTransition  _what,
TBorder  _where
[inline, static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 401 of file tile_bank.h. +

+References _TransitionFlags, and TFlagBorder. +

+

00402         {
+00403                 return _TransitionFlags[_what][_where];
+00404         }
+
+

+ + + + +
+ + + + + + + + + + +
const char* NL3D::CTileSet::getErrorMessage TError  error  )  [inline, static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 391 of file tile_bank.h. +

+References _ErrorMessage. +

+

00392         {
+00393                 return _ErrorMessage[error];
+00394         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CTileSet::TTransition NL3D::CTileSet::getExistingTransitionTile TFlagBorder  _top,
TFlagBorder  _bottom,
TFlagBorder  _left,
TFlagBorder  _right,
int  reject,
CTile::TBitmap  type
+
+ + + + + +
+   + + +

+ +

+Definition at line 1289 of file tile_bank.cpp. +

+References _BorderTransition, _TransitionFlags, count, dontcare, first, NL3D::CTileBorder::isSet(), notfound, TFlagBorder, TTransition, and type. +

+Referenced by checkTileTransition(). +

+

01290 {
+01291         for (int n=first; n<count; n++)
+01292         {
+01293                 if ((n!=reject)&&
+01294                         (_BorderTransition[n][type].isSet ())&&
+01295                         ((_top==dontcare)||(_top==(TFlagBorder)_TransitionFlags[n][top]))&&
+01296                         ((_bottom==dontcare)||(_bottom==(TFlagBorder)_TransitionFlags[n][bottom]))&&
+01297                         ((_left==dontcare)||(_left==(TFlagBorder)_TransitionFlags[n][left]))&&
+01298                         ((_right==dontcare)||(_right==(TFlagBorder)_TransitionFlags[n][right])))
+01299                 {
+01300                         return (TTransition)n;
+01301                 }       
+01302         }
+01303         return notfound;
+01304 }
+
+

+ + + + +
+ + + + + + + + + + +
CTileSet::TFlagBorder NL3D::CTileSet::getInvertBorder TFlagBorder  border  )  [static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1351 of file tile_bank.cpp. +

+References _0000, _0001, _0111, _1000, _1110, _1111, border, and nlassert. +

+Referenced by getOrientedBorder(). +

+

01352 {
+01353         switch (border)
+01354         {
+01355         case _0000:
+01356                 return _0000;
+01357         case _0001:
+01358                 return _1000;
+01359         case _0111:
+01360                 return _1110;
+01361         case _1000:
+01362                 return _0001;
+01363         case _1110:
+01364                 return _0111;
+01365         case _1111:
+01366                 return _1111;
+01367         default:
+01368                 nlassert (0);   // no
+01369         }
+01370         return _0000;
+01371 }
+
+

+ + + + +
+ + + + + + + + + +
const std::string & NL3D::CTileSet::getName  )  const
+
+ + + + + +
+   + + +

+ +

+Definition at line 915 of file tile_bank.cpp. +

+

00916 {
+00917         return _Name;
+00918 }
+
+

+ + + + +
+ + + + + + + + + +
sint NL3D::CTileSet::getNumTile128  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 337 of file tile_bank.h. +

+References _Tile128, and sint. +

+Referenced by NL3D::CTileBank::computeXRef(), NL3D::CLandscapeUser::flushTiles(), and NL3D::CLandscape::initTileBanks(). +

+

00338         {
+00339                 return (sint)_Tile128.size();
+00340         }
+
+

+ + + + +
+ + + + + + + + + +
sint NL3D::CTileSet::getNumTile256  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 341 of file tile_bank.h. +

+References _Tile256, and sint. +

+Referenced by NL3D::CTileBank::computeXRef(), NL3D::CLandscapeUser::flushTiles(), and NL3D::CLandscape::initTileBanks(). +

+

00342         {
+00343                 return _Tile256.size();
+00344         }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CTileSet::getOriented  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 333 of file tile_bank.h. +

+References _Oriented. +

+Referenced by NL3D::CPatchInfo::getTileSymmetryRotate(), NL3D::CZoneSymmetrisation::propagateTileState(), NL3D::CZoneSymmetrisation::setOrientedTileState(), and NL3D::CZoneSymmetrisation::setTileState(). +

+

00334         {
+00335                 return _Oriented;
+00336         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
CTileSet::TFlagBorder NL3D::CTileSet::getOrientedBorder TBorder  where,
TFlagBorder  border
[static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1373 of file tile_bank.cpp. +

+References _0000, border, getInvertBorder(), and nlassert. +

+Referenced by rotateTransition(), and NL3D::CPatchInfo::transformTile(). +

+

01374 {
+01375         switch (where)
+01376         {
+01377         case left:
+01378         case bottom:
+01379                 return border;
+01380         case top:
+01381         case right:
+01382                 return getInvertBorder (border);
+01383         default:
+01384                 nlassert (0);   // no
+01385         }
+01386         return _0000;
+01387 }
+
+

+ + + + +
+ + + + + + + + + + +
sint32 NL3D::CTileSet::getTile128 sint  index  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 345 of file tile_bank.h. +

+References _Tile128, index, sint, and sint32. +

+Referenced by NL3D::CTileBank::computeXRef(), NL3D::CLandscapeUser::flushTiles(), and NL3D::CLandscape::initTileBanks(). +

+

00346         {
+00347                 return _Tile128[index];
+00348         }
+
+

+ + + + +
+ + + + + + + + + + +
sint32 NL3D::CTileSet::getTile256 sint  index  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 349 of file tile_bank.h. +

+References _Tile256, index, sint, and sint32. +

+Referenced by NL3D::CTileBank::computeXRef(), NL3D::CLandscapeUser::flushTiles(), and NL3D::CLandscape::initTileBanks(). +

+

00350         {
+00351                 return _Tile256[index];
+00352         }
+
+

+ + + + +
+ + + + + + + + + +
const CTileVegetableDesc & NL3D::CTileSet::getTileVegetableDesc  )  const
+
+ + + + + +
+   + + +

+ +

+Definition at line 1564 of file tile_bank.cpp. +

+References _TileVegetableDesc. +

+

01565 {
+01566         return _TileVegetableDesc;
+01567 }
+
+

+ + + + +
+ + + + + + + + + +
CTileVegetableDesc & NL3D::CTileSet::getTileVegetableDesc  ) 
+
+ + + + + +
+   + + +

+return the TileVegetable +

+ +

+Definition at line 1558 of file tile_bank.cpp. +

+References _TileVegetableDesc. +

+

01559 {
+01560         return _TileVegetableDesc;
+01561 }
+
+

+ + + + +
+ + + + + + + + + +
const std::string & NL3D::CTileSet::getTileVegetableDescFileName  )  const
+
+ + + + + +
+   + + +

+ +

+Definition at line 1547 of file tile_bank.cpp. +

+References _TileVegetableDescFileName. +

+

01548 {
+01549         return _TileVegetableDescFileName;
+01550 }
+
+

+ + + + +
+ + + + + + + + + + +
const CTileSetTransition* NL3D::CTileSet::getTransition sint  index  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 357 of file tile_bank.h. +

+References _TileTransition, index, and sint. +

+

00358         {
+00359                 return _TileTransition+index;
+00360         }
+
+

+ + + + +
+ + + + + + + + + + +
CTileSetTransition* NL3D::CTileSet::getTransition sint  index  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 353 of file tile_bank.h. +

+References _TileTransition, index, and sint. +

+Referenced by NL3D::CTileBank::computeXRef(), NL3D::CLandscapeUser::flushTiles(), NL3D::CLandscape::initTileBanks(), and NL3D::CPatchInfo::transformTile(). +

+

00354         {
+00355                 return _TileTransition+index;
+00356         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CTileSet::TTransition NL3D::CTileSet::getTransitionTile TFlagBorder  top,
TFlagBorder  bottom,
TFlagBorder  left,
TFlagBorder  right
[static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1274 of file tile_bank.cpp. +

+References _TransitionFlags, count, dontcare, first, notfound, TFlagBorder, and TTransition. +

+Referenced by getComplementaryTransition(), rotateTransition(), and NL3D::CPatchInfo::transformTile(). +

+

01275 {
+01276         for (int n=first; n<count; n++)
+01277         {
+01278                 if (((_top==dontcare)||(_top==(TFlagBorder)_TransitionFlags[n][top]))&&
+01279                         ((_bottom==dontcare)||(_bottom==(TFlagBorder)_TransitionFlags[n][bottom]))&&
+01280                         ((_left==dontcare)||(_left==(TFlagBorder)_TransitionFlags[n][left]))&&
+01281                         ((_right==dontcare)||(_right==(TFlagBorder)_TransitionFlags[n][right])))
+01282                 {
+01283                         return (TTransition)n;
+01284                 }       
+01285         }
+01286         return notfound;
+01287 }
+
+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CTileSet::isChild const std::string &  name  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 413 of file tile_bank.h. +

+References _ChildName. +

+

00414         {
+00415                 return _ChildName.find(name)!=_ChildName.end();
+00416         }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTileSet::loadTileVegetableDesc  ) 
+
+ + + + + +
+   + + +

+try to load the vegetable tile desc associated with the fileName (nlinfo() if can't) lookup into CPath. no-op if string=="". +

+Definition at line 1570 of file tile_bank.cpp. +

+References _TileVegetableDesc, _TileVegetableDescFileName, nlinfo, and NLMISC::IStream::serial(). +

+

01571 {
+01572         if(_TileVegetableDescFileName!="")
+01573         {
+01574                 try
+01575                 {
+01576                         string  fname= CPath::lookup(_TileVegetableDescFileName);
+01577                         CIFile  f(fname);
+01578                         // load the TileVegetableDesc
+01579                         f.serial(_TileVegetableDesc);
+01580                 }
+01581                 catch(Exception &e)
+01582                 {
+01583                         nlinfo("Error loading TileVegetableDesc: %s", e.what());
+01584                 }
+01585         }
+01586 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileSet::removeChild const std::string &  name  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 1311 of file tile_bank.cpp. +

+References _ChildName. +

+

01312 {
+01313         _ChildName.erase (name);
+01314 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::removeTile128 int  indexInTileSet,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1236 of file tile_bank.cpp. +

+References _Tile128, deleteBordersIfLast(), NL3D::CTileBank::freeTile(), index, nlassert, and sint. +

+

01237 {
+01238         // Check args
+01239         nlassert (indexInTileSet>=0);
+01240         nlassert (indexInTileSet<(sint)_Tile128.size());
+01241 
+01242         // Old index
+01243         int index=_Tile128[indexInTileSet];
+01244 
+01245         // Erase
+01246         _Tile128.erase (_Tile128.begin()+indexInTileSet);
+01247         bank.freeTile (index);
+01248 
+01249         // Erase border if it is the last texture
+01250         deleteBordersIfLast (bank, CTile::diffuse);
+01251         deleteBordersIfLast (bank, CTile::additive);
+01252         deleteBordersIfLast (bank, CTile::alpha);
+01253 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::removeTile256 int  indexInTileSet,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1255 of file tile_bank.cpp. +

+References _Tile256, deleteBordersIfLast(), NL3D::CTileBank::freeTile(), index, nlassert, and sint. +

+

01256 {
+01257         // Check args
+01258         nlassert (indexInTileSet>=0);
+01259         nlassert (indexInTileSet<(sint)_Tile256.size());
+01260 
+01261         // Old index
+01262         int index=_Tile256[indexInTileSet];
+01263 
+01264         // Erase
+01265         _Tile256.erase (_Tile256.begin()+indexInTileSet);
+01266         bank.freeTile (index);
+01267 
+01268         // Erase border if it is the last texture
+01269         deleteBordersIfLast (bank, CTile::diffuse);
+01270         deleteBordersIfLast (bank, CTile::additive);
+01271         deleteBordersIfLast (bank, CTile::alpha);
+01272 }
+
+

+ + + + +
+ + + + + + + + + + +
CTileSet::TTransition NL3D::CTileSet::rotateTransition TTransition  transition  )  [static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1389 of file tile_bank.cpp. +

+References _TransitionFlags, getOrientedBorder(), and getTransitionTile(). +

+

01390 {
+01391         return getTransitionTile (
+01392                 getOrientedBorder (top, getOrientedBorder (right, _TransitionFlags[transition][right])),        // top
+01393                 getOrientedBorder (bottom, getOrientedBorder (left, _TransitionFlags[transition][left])),       // bottom
+01394                 getOrientedBorder (left, getOrientedBorder (top, _TransitionFlags[transition][top])),           // left
+01395                 getOrientedBorder (right, getOrientedBorder (bottom, _TransitionFlags[transition][bottom])) // right
+01396                 );
+01397 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileSet::serial NLMISC::IStream f  )  throw (NLMISC::EStream)
+
+ + + + + +
+   + + +

+ +

+Definition at line 920 of file tile_bank.cpp. +

+References count, NL3D::CTileBorder::serial(), sint, and uint. +

+

00921 {
+00922         sint streamver = f.serialVersion(_Version);
+00923 
+00924         CTileBorder tmp;
+00925 
+00926         // serial the user surface data
+00927         if (streamver>=5)
+00928         {
+00929                 f.serial (SurfaceData);
+00930         }
+00931 
+00932         // serial the oriented info which tell if the tile has a special orientation
+00933         if (streamver>=4)
+00934         {
+00935                 f.serial (_Oriented);
+00936         }
+00937 
+00938         // serial vegetable info.
+00939         if (streamver>=3)
+00940         {
+00941                 // serialisze only the FileName, not the descrpitor
+00942                 f.serial(_TileVegetableDescFileName);
+00943         }
+00944 
+00945         // New version
+00946         if (streamver>=2)
+00947         {
+00948                 uint displace;
+00949                 for (displace=FirstDisplace; displace<CountDisplace; displace++)
+00950                         f.serial (_DisplacementBitmap[displace]);
+00951         }
+00952 
+00953         // Serial displacement map filename, obsolete
+00954         if (streamver==1)
+00955         {
+00956                 // Remove obsolete data
+00957                 string tmp;
+00958                 for (uint displace=FirstDisplace; displace<CountDisplace; displace++)
+00959                         f.serial (tmp);
+00960         }
+00961 
+00962         int i;
+00963         f.serial (_Name);
+00964         f.serialCont (_Tile128);
+00965         f.serialCont (_Tile256);
+00966         for (i=0; i<count; i++)
+00967                 f.serial (_TileTransition[i]);
+00968         f.serialCont (_ChildName);
+00969         f.serial (_Border128[CTile::diffuse]);
+00970         f.serial (_Border128[CTile::additive]);
+00971 
+00972         // old field, border bump 128
+00973         if (streamver==0)
+00974                 f.serial (tmp);
+00975 
+00976         f.serial (_Border256[CTile::diffuse]);
+00977         f.serial (_Border256[CTile::additive]);
+00978 
+00979         // old field, border bump 256
+00980         if (streamver==0)
+00981                 f.serial (tmp);
+00982 
+00983         for (i=0; i<count; i++)
+00984         {
+00985                 f.serial (_BorderTransition[i][CTile::diffuse]);
+00986                 f.serial (_BorderTransition[i][CTile::additive]);
+00987                 f.serial (_BorderTransition[i][CTile::alpha]);
+00988 
+00989                 // Reset the diffuse and alpha border if old version
+00990                 if (streamver==0)
+00991                 {
+00992                         _BorderTransition[i][CTile::diffuse].reset();
+00993                         _BorderTransition[i][CTile::alpha].reset();
+00994                 }
+00995         }
+00996 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::setBorder CTile::TBitmap  type,
const CTileBorder border
+
+ + + + + +
+   + + +

+ +

+Definition at line 1010 of file tile_bank.cpp. +

+References _Border128, _Border256, border, NL3D::CTileBorder::doubleSize(), and type. +

+

01011 {
+01012         // This is our new border desc
+01013         _Border128[type]=border;
+01014         _Border256[type]=border;
+01015         _Border256[type].doubleSize ();
+01016 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::setDisplacement TDisplacement  displacement,
const std::string &  fileName,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1514 of file tile_bank.cpp. +

+References _DisplacementBitmap, FirstDisplace, NL3D::CTileBank::getDisplacementMap(), LastDisplace, nlassert, and NL3D::CTileBank::removeDisplacementMap(). +

+

01515 {
+01516         // checks
+01517         nlassert (displacement>=FirstDisplace);
+01518         nlassert (displacement<=LastDisplace);
+01519 
+01520         // Clear it
+01521         bank.removeDisplacementMap (_DisplacementBitmap[displacement]);
+01522 
+01523         // Get displacement map
+01524         _DisplacementBitmap[displacement]=bank.getDisplacementMap (fileName);
+01525 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileSet::setName const std::string &  name  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 910 of file tile_bank.cpp. +

+

00911 {
+00912         _Name=name;
+00913 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileSet::setOriented bool  oriented  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 309 of file tile_bank.h. +

+References _Oriented. +

+

00309 { _Oriented = oriented; }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::setTile128 int  indexInTileSet,
const std::string &  name,
CTile::TBitmap  type,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1018 of file tile_bank.cpp. +

+References _Tile128, NL3D::CTileBank::getTile(), NL3D::CTile::setFileName(), NL3D::CTile::setRotAlpha(), and type. +

+

01019 {
+01020         // Edit a tile
+01021         CTile *tile=bank.getTile (_Tile128[indexInTileSet]);
+01022         tile->setFileName (type, name);
+01023         tile->setRotAlpha (0);
+01024 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::setTile256 int  indexInTileSet,
const std::string &  name,
CTile::TBitmap  type,
CTileBank bank
+
+ + + + + +
+   + + +

+ +

+Definition at line 1108 of file tile_bank.cpp. +

+References _Tile256, NL3D::CTileBank::getTile(), NL3D::CTile::setFileName(), NL3D::CTile::setRotAlpha(), and type. +

+

01109 {
+01110         // Edit a tile
+01111         CTile *tile=bank.getTile (_Tile256[indexInTileSet]);
+01112         tile->setFileName (type, name);
+01113         tile->setRotAlpha (0);
+01114 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::setTileTransition TTransition  transition,
const std::string &  name,
CTile::TBitmap  type,
CTileBank bank,
const CTileBorder border
+
+ + + + + +
+   + + +

+ +

+Definition at line 1116 of file tile_bank.cpp. +

+References _BorderTransition, _TileTransition, border, NL3D::CTileBank::getTile(), nlassert, NL3D::CTile::setFileName(), and type. +

+

01118 {
+01119         // Check is not an alpha channel
+01120         nlassert (type!=CTile::alpha);          // use setTileTransitionAlpha
+01121 
+01122         // Create a tile
+01123         _BorderTransition[transition][type]=border;
+01124 
+01125         // Set the tile file name
+01126         CTile *tile=bank.getTile (_TileTransition[transition]._Tile);
+01127         tile->setFileName (type, name);
+01128 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileSet::setTileTransitionAlpha TTransition  transition,
const std::string &  name,
CTileBank bank,
const CTileBorder border,
uint8  rotAlpha
+
+ + + + + +
+   + + +

+ +

+Definition at line 1130 of file tile_bank.cpp. +

+References _BorderTransition, _TileTransition, border, NL3D::CTileBank::getTile(), nlassert, NL3D::CTile::setFileName(), NL3D::CTile::setRotAlpha(), and uint8. +

+

01132 {
+01133         // Check some args
+01134         nlassert (rot<4);
+01135 
+01136         // Create a tile
+01137         _BorderTransition[transition][CTile::alpha]=border;
+01138 
+01139         // Set the tile file name
+01140         CTile *tile=bank.getTile (_TileTransition[transition]._Tile);
+01141         tile->setFileName (CTile::alpha, name);
+01142         tile->setRotAlpha (rot);
+01143 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileSet::setTileVegetableDesc const CTileVegetableDesc tvd  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 1552 of file tile_bank.cpp. +

+References _TileVegetableDesc. +

+

01553 {
+01554         _TileVegetableDesc= tvd;
+01555 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileSet::setTileVegetableDescFileName const std::string &  fileName  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 1542 of file tile_bank.cpp. +

+References _TileVegetableDescFileName. +

+

01543 {
+01544         _TileVegetableDescFileName= fileName;
+01545 }
+
+


Friends And Related Function Documentation

+

+ + + + +
+ + +
friend class CTileBank [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 279 of file tile_bank.h.

+


Field Documentation

+

+ + + + +
+ + +
CTileBorder NL3D::CTileSet::_Border128[2] [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 431 of file tile_bank.h. +

+Referenced by checkTile128(), checkTile256(), cleanUnusedData(), deleteBordersIfLast(), getBorder128(), and setBorder().

+

+ + + + +
+ + +
CTileBorder NL3D::CTileSet::_Border256[2] [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 432 of file tile_bank.h. +

+Referenced by checkTile256(), cleanUnusedData(), deleteBordersIfLast(), getBorder256(), and setBorder().

+

+ + + + +
+ + +
CTileBorder NL3D::CTileSet::_BorderTransition[count][CTile::bitmapCount] [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 433 of file tile_bank.h. +

+Referenced by checkTileTransition(), cleanUnusedData(), clearTransition(), getExistingTransitionTile(), setTileTransition(), and setTileTransitionAlpha().

+

+ + + + +
+ + +
std::set<std::string> NL3D::CTileSet::_ChildName [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 430 of file tile_bank.h. +

+Referenced by addChild(), cleanUnusedData(), isChild(), and removeChild().

+

+ + + + +
+ + +
uint32 NL3D::CTileSet::_DisplacementBitmap[CTileSet::CountDisplace] [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 434 of file tile_bank.h. +

+Referenced by clearDisplacement(), CTileSet(), getDisplacementTile(), and setDisplacement().

+

+ + + + +
+ + +
const char * NL3D::CTileSet::_ErrorMessage [static, private] +
+
+ + + + + +
+   + + +

+Initial value:

+{
+        "No error.",                                                            
+        "Top interface is incompatible.",                       
+        "Bottom interface is incompatible.",            
+        "Left interface is incompatible.",                      
+        "Right interface is incompatible.",                     
+        "Add first a 128x128 tile.",                            
+        "Top and bottom interface not the same.",       
+        "Right and left interface not the same.",       
+        "Invalide bitmap size.",                                        
+}
+
+

+Definition at line 826 of file tile_bank.cpp. +

+Referenced by getErrorMessage().

+

+ + + + +
+ + +
std::string NL3D::CTileSet::_Name [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 425 of file tile_bank.h.

+

+ + + + +
+ + +
bool NL3D::CTileSet::_Oriented [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 426 of file tile_bank.h. +

+Referenced by CTileSet(), getOriented(), and setOriented().

+

+ + + + +
+ + +
std::vector<sint32> NL3D::CTileSet::_Tile128 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 427 of file tile_bank.h. +

+Referenced by addTile128(), clearTile128(), deleteBordersIfLast(), getNumTile128(), getTile128(), removeTile128(), and setTile128().

+

+ + + + +
+ + +
std::vector<sint32> NL3D::CTileSet::_Tile256 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 428 of file tile_bank.h. +

+Referenced by addTile256(), clearTile256(), deleteBordersIfLast(), getNumTile256(), getTile256(), removeTile256(), and setTile256().

+

+ + + + +
+ + +
CTileSetTransition NL3D::CTileSet::_TileTransition[count] [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 429 of file tile_bank.h. +

+Referenced by clearTransition(), deleteBordersIfLast(), getTransition(), setTileTransition(), and setTileTransitionAlpha().

+

+ + + + +
+ + +
CTileVegetableDesc NL3D::CTileSet::_TileVegetableDesc [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 436 of file tile_bank.h. +

+Referenced by getTileVegetableDesc(), loadTileVegetableDesc(), and setTileVegetableDesc().

+

+ + + + +
+ + +
std::string NL3D::CTileSet::_TileVegetableDescFileName [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 437 of file tile_bank.h. +

+Referenced by getTileVegetableDescFileName(), loadTileVegetableDesc(), and setTileVegetableDescFileName().

+

+ + + + +
+ + +
const CTileSet::TFlagBorder NL3D::CTileSet::_TransitionFlags [static, private] +
+
+ + + + + +
+   + + +

+Initial value:

+{
+        {_0000,_1111,_0111,_0111},      
+        {_0111,_1111,_0111,_1111},      
+        {_0000,_0111,_0000,_0111},      
+        {_1110,_1110,_1111,_0000},      
+        {_1110,_1111,_1111,_0111},      
+        {_0000,_1110,_0111,_0000},      
+
+        {_0000,_1111,_0001,_0001},      
+        {_0000,_1000,_0001,_0000},      
+        {_1111,_1000,_1111,_1000},      
+        {_1000,_1000,_1111,_0000},      
+        {_1000,_0000,_1000,_0000},      
+        {_1111,_0001,_1000,_1111},      
+
+        {_0000,_1111,_0111,_0001},      
+        {_0000,_1111,_0001,_0111},      
+        {_0111,_1111,_0001,_1111},      
+        {_1110,_1000,_1111,_0000},      
+        {_1000,_1110,_1111,_0000},      
+        {_1111,_0001,_1110,_1111},      
+
+        {_1000,_0000,_1110,_0000},      
+        {_0000,_0111,_0000,_0001},      
+        {_1111,_1000,_1111,_1110},      
+        {_0111,_0000,_0000,_1000},      
+        {_0000,_1000,_0111,_0000},      
+        {_1111,_0111,_1000,_1111},      
+
+        {_1111,_0000,_1110,_1110},      
+        {_1111,_1110,_1111,_1110},      
+        {_1110,_0000,_1110,_0000},      
+        {_0111,_0111,_0000,_1111},      
+        {_1111,_0111,_1110,_1111},      
+        {_0111,_0000,_0000,_1110},      
+
+        {_1111,_0000,_1000,_1000},      
+        {_0001,_0000,_0000,_1000},      
+        {_0001,_1111,_0001,_1111},      
+        {_0001,_0001,_0000,_1111},      
+        {_0000,_0001,_0000,_0001},      
+        {_1000,_1111,_1111,_0001},      
+
+        {_1111,_0000,_1000,_1110},      
+        {_1111,_0000,_1110,_1000},      
+        {_1000,_1111,_1111,_0111},      
+        {_0001,_0111,_0000,_1111},      
+        {_0111,_0001,_0000,_1111},      
+        {_1111,_1110,_1111,_1000},      
+
+        {_0000,_0001,_0000,_0111},      
+        {_1110,_0000,_1000,_0000},      
+        {_0001,_1111,_0111,_1111},      
+        {_0000,_1110,_0001,_0000},      
+        {_0001,_0000,_0000,_1110},      
+        {_1110,_1111,_1111,_0001}       
+}
+
+

+Definition at line 839 of file tile_bank.cpp. +

+Referenced by checkTileTransition(), getComplementaryTransition(), getEdgeType(), getExistingTransitionTile(), getTransitionTile(), and rotateTransition().

+

+ + + + +
+ + +
const sint NL3D::CTileSet::_Version = 5 [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 824 of file tile_bank.cpp.

+

+ + + + +
+ + +
uint32 NL3D::CTileSet::SurfaceData +
+
+ + + + + +
+   + + +

+ +

+Definition at line 442 of file tile_bank.h. +

+Referenced by CTileSet(), and NL3D::CVisualCollisionEntity::getSurfaceInfo().

+


The documentation for this class was generated from the following files: +
Generated on Tue Mar 16 08:05:49 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1