~flosoft/s25rttr/trunk

« back to all changes in this revision

Viewing changes to src/glAllocator.cpp

  • Committer: FloSoft
  • Date: 2014-04-25 15:35:50 UTC
  • Revision ID: flosoft@siedler25.org-20140425153550-9muu4vodhlqu58m0
committing subversion revision 9357 by FloSoft
astyle

modified:
s25client/trunk/
s25client/trunk/contrib/lua/lin32/include/
s25client/trunk/contrib/lua/lin64/include/
s25client/trunk/contrib/lua/mac/include/
s25client/trunk/contrib/lua/win32/include/
s25client/trunk/contrib/lua/win64/include/
s25client/trunk/driver/audio/SDL/src/
s25client/trunk/driver/src/
s25client/trunk/driver/video/GLFW/src/
s25client/trunk/driver/video/SDL/src/
s25client/trunk/driver/video/WinAPI/src/
s25client/trunk/src/
s25client/trunk/win32/
s25client/trunk/win32/prebuild-mutex/src/

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// $Id: glAllocator.cpp 7521 2011-09-08 20:45:55Z FloSoft $
 
1
// $Id: glAllocator.cpp 9357 2014-04-25 15:35:25Z FloSoft $
2
2
//
3
3
// Copyright (c) 2005 - 2011 Settlers Freaks (sf-team at siedler25.org)
4
4
//
25
25
///////////////////////////////////////////////////////////////////////////////
26
26
// Makros / Defines
27
27
#if defined _WIN32 && defined _DEBUG && defined _MSC_VER
28
 
        #define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)
29
 
        #undef THIS_FILE
30
 
        static char THIS_FILE[] = __FILE__;
 
28
#define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)
 
29
#undef THIS_FILE
 
30
static char THIS_FILE[] = __FILE__;
31
31
#endif
32
32
 
33
33
///////////////////////////////////////////////////////////////////////////////
34
 
/** 
 
34
/**
35
35
 *  Der GL-Item-Allocator.
36
36
 *
37
37
 *  @param[in] type    Der Typ des Items
40
40
 *
41
41
 *  @author FloSoft
42
42
 */
43
 
libsiedler2::ArchivItem *glAllocator(unsigned short type, unsigned short subtype, const libsiedler2::ArchivItem *item)
 
43
libsiedler2::ArchivItem* glAllocator(unsigned short type, unsigned short subtype, const libsiedler2::ArchivItem* item)
44
44
{
45
 
        if(item)
46
 
                type = item->getBobType();
47
 
 
48
 
        switch(type)
49
 
        {
50
 
        case libsiedler2::BOBTYPE_SOUND: // WAVs, MIDIs
51
 
                {
52
 
                        const libsiedler2::baseArchivItem_Sound *i = dynamic_cast<const libsiedler2::baseArchivItem_Sound*>(item);
53
 
                        if(item)
54
 
                                subtype = i->getType();
55
 
 
56
 
                        switch(subtype)
57
 
                        {
58
 
                        case libsiedler2::SOUNDTYPE_MIDI: // MIDI
59
 
                                {
60
 
                                        if(!item)
61
 
                                                return new glArchivItem_Sound_Midi();
62
 
                                        else
63
 
                                                return new glArchivItem_Sound_Midi( dynamic_cast<const glArchivItem_Sound_Midi*>(item) );
64
 
                                } break;
65
 
                        case libsiedler2::SOUNDTYPE_WAVE: // WAV
66
 
                                {
67
 
                                        if(!item)
68
 
                                                return new glArchivItem_Sound_Wave();
69
 
                                        else
70
 
                                                return new glArchivItem_Sound_Wave( dynamic_cast<const glArchivItem_Sound_Wave*>(item) );
71
 
                                } break;
72
 
                        case libsiedler2::SOUNDTYPE_XMIDI: // XMIDI
73
 
                                {
74
 
                                        if(!item)
75
 
                                                return new glArchivItem_Sound_XMidi();
76
 
                                        else
77
 
                                                return new glArchivItem_Sound_XMidi( dynamic_cast<const glArchivItem_Sound_XMidi*>(item) );
78
 
                                } break;
79
 
                        case libsiedler2::SOUNDTYPE_OTHER: // Andere
80
 
                                {
81
 
                                        if(!item)
82
 
                                                return new glArchivItem_Sound_Other();
83
 
                                        else
84
 
                                                return new glArchivItem_Sound_Other( dynamic_cast<const glArchivItem_Sound_Other*>(item) );
85
 
                                } break;
86
 
                        default:
87
 
                                {
88
 
                                        return libsiedler2::StandardAllocator(type, subtype, item);
89
 
                                } break;
90
 
                        }
91
 
                } break;
92
 
        case libsiedler2::BOBTYPE_BOB: // Bob-File
93
 
                {
94
 
                        if(!item)
95
 
                                return new glArchivItem_Bob();
96
 
                        else
97
 
                                return new glArchivItem_Bob( dynamic_cast<const glArchivItem_Bob*>(item) );
98
 
                } break;
99
 
        case libsiedler2::BOBTYPE_BITMAP_RLE: // RLE komprimiertes Bitmap
100
 
                {
101
 
                        if(!item)
102
 
                                return new glArchivItem_Bitmap_RLE();
103
 
                        else
104
 
                                return new glArchivItem_Bitmap_RLE( dynamic_cast<const glArchivItem_Bitmap_RLE*>(item) );
105
 
                } break;
106
 
        case libsiedler2::BOBTYPE_FONT: // Font
107
 
                {
108
 
                        if(!item)
109
 
                                return new glArchivItem_Font();
110
 
                        else
111
 
                                return new glArchivItem_Font( dynamic_cast<const glArchivItem_Font*>(item) );
112
 
                } break;
113
 
        case libsiedler2::BOBTYPE_BITMAP_PLAYER: // Bitmap mit spezifischer Spielerfarbe
114
 
                {
115
 
                        if(!item)
116
 
                                return new glArchivItem_Bitmap_Player();
117
 
                        else
118
 
                                return new glArchivItem_Bitmap_Player( dynamic_cast<const glArchivItem_Bitmap_Player*>(item) );
119
 
                } break;
120
 
        case libsiedler2::BOBTYPE_BITMAP_SHADOW: // Schatten
121
 
                {
122
 
                        if(!item)
123
 
                                return new glArchivItem_Bitmap_Shadow();
124
 
                        else
125
 
                                return new glArchivItem_Bitmap_Shadow( dynamic_cast<const glArchivItem_Bitmap_Shadow*>(item) );
126
 
                } break;
127
 
        case libsiedler2::BOBTYPE_MAP: // Map
128
 
                {
129
 
                        if(!item)
130
 
                                return new glArchivItem_Map();
131
 
                        else
132
 
                                return new glArchivItem_Map( dynamic_cast<const glArchivItem_Map*>(item) );
133
 
                } break;
134
 
        case libsiedler2::BOBTYPE_BITMAP_RAW: // unkomprimiertes Bitmap
135
 
                {
136
 
                        if(!item)
137
 
                                return new glArchivItem_Bitmap_Raw();
138
 
                        else
139
 
                                return new glArchivItem_Bitmap_Raw( dynamic_cast<const glArchivItem_Bitmap_Raw*>(item) );
140
 
                } break;
141
 
        default: 
142
 
                break;
143
 
        }
144
 
        return libsiedler2::StandardAllocator(type, subtype, item);
 
45
    if(item)
 
46
        type = item->getBobType();
 
47
 
 
48
    switch(type)
 
49
    {
 
50
        case libsiedler2::BOBTYPE_SOUND: // WAVs, MIDIs
 
51
        {
 
52
            const libsiedler2::baseArchivItem_Sound* i = dynamic_cast<const libsiedler2::baseArchivItem_Sound*>(item);
 
53
            if(item)
 
54
                subtype = i->getType();
 
55
 
 
56
            switch(subtype)
 
57
            {
 
58
                case libsiedler2::SOUNDTYPE_MIDI: // MIDI
 
59
                {
 
60
                    if(!item)
 
61
                        return new glArchivItem_Sound_Midi();
 
62
                    else
 
63
                        return new glArchivItem_Sound_Midi( dynamic_cast<const glArchivItem_Sound_Midi*>(item) );
 
64
                } break;
 
65
                case libsiedler2::SOUNDTYPE_WAVE: // WAV
 
66
                {
 
67
                    if(!item)
 
68
                        return new glArchivItem_Sound_Wave();
 
69
                    else
 
70
                        return new glArchivItem_Sound_Wave( dynamic_cast<const glArchivItem_Sound_Wave*>(item) );
 
71
                } break;
 
72
                case libsiedler2::SOUNDTYPE_XMIDI: // XMIDI
 
73
                {
 
74
                    if(!item)
 
75
                        return new glArchivItem_Sound_XMidi();
 
76
                    else
 
77
                        return new glArchivItem_Sound_XMidi( dynamic_cast<const glArchivItem_Sound_XMidi*>(item) );
 
78
                } break;
 
79
                case libsiedler2::SOUNDTYPE_OTHER: // Andere
 
80
                {
 
81
                    if(!item)
 
82
                        return new glArchivItem_Sound_Other();
 
83
                    else
 
84
                        return new glArchivItem_Sound_Other( dynamic_cast<const glArchivItem_Sound_Other*>(item) );
 
85
                } break;
 
86
                default:
 
87
                {
 
88
                    return libsiedler2::StandardAllocator(type, subtype, item);
 
89
                } break;
 
90
            }
 
91
        } break;
 
92
        case libsiedler2::BOBTYPE_BOB: // Bob-File
 
93
        {
 
94
            if(!item)
 
95
                return new glArchivItem_Bob();
 
96
            else
 
97
                return new glArchivItem_Bob( dynamic_cast<const glArchivItem_Bob*>(item) );
 
98
        } break;
 
99
        case libsiedler2::BOBTYPE_BITMAP_RLE: // RLE komprimiertes Bitmap
 
100
        {
 
101
            if(!item)
 
102
                return new glArchivItem_Bitmap_RLE();
 
103
            else
 
104
                return new glArchivItem_Bitmap_RLE( dynamic_cast<const glArchivItem_Bitmap_RLE*>(item) );
 
105
        } break;
 
106
        case libsiedler2::BOBTYPE_FONT: // Font
 
107
        {
 
108
            if(!item)
 
109
                return new glArchivItem_Font();
 
110
            else
 
111
                return new glArchivItem_Font( dynamic_cast<const glArchivItem_Font*>(item) );
 
112
        } break;
 
113
        case libsiedler2::BOBTYPE_BITMAP_PLAYER: // Bitmap mit spezifischer Spielerfarbe
 
114
        {
 
115
            if(!item)
 
116
                return new glArchivItem_Bitmap_Player();
 
117
            else
 
118
                return new glArchivItem_Bitmap_Player( dynamic_cast<const glArchivItem_Bitmap_Player*>(item) );
 
119
        } break;
 
120
        case libsiedler2::BOBTYPE_BITMAP_SHADOW: // Schatten
 
121
        {
 
122
            if(!item)
 
123
                return new glArchivItem_Bitmap_Shadow();
 
124
            else
 
125
                return new glArchivItem_Bitmap_Shadow( dynamic_cast<const glArchivItem_Bitmap_Shadow*>(item) );
 
126
        } break;
 
127
        case libsiedler2::BOBTYPE_MAP: // Map
 
128
        {
 
129
            if(!item)
 
130
                return new glArchivItem_Map();
 
131
            else
 
132
                return new glArchivItem_Map( dynamic_cast<const glArchivItem_Map*>(item) );
 
133
        } break;
 
134
        case libsiedler2::BOBTYPE_BITMAP_RAW: // unkomprimiertes Bitmap
 
135
        {
 
136
            if(!item)
 
137
                return new glArchivItem_Bitmap_Raw();
 
138
            else
 
139
                return new glArchivItem_Bitmap_Raw( dynamic_cast<const glArchivItem_Bitmap_Raw*>(item) );
 
140
        } break;
 
141
        default:
 
142
            break;
 
143
    }
 
144
    return libsiedler2::StandardAllocator(type, subtype, item);
145
145
}