2 * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #include "SQLStorage.h"
20 #include "SQLStorageImpl.h"
23 extern DatabasePostgre WorldDatabase
;
25 extern DatabaseMysql WorldDatabase
;
28 const char CreatureInfosrcfmt
[]="iiiiiisssiiiiiiiiiiffiffiiiiiiiiiiiffiiiiiiiiiiiiiiiiiiisiifflliiis";
29 const char CreatureInfodstfmt
[]="iiiiiisssiiiiiiiiiiffiffiiiiiiiiiiiffiiiiiiiiiiiiiiiiiiisiifflliiii";
30 const char CreatureDataAddonInfofmt
[]="iiiiiiis";
31 const char CreatureModelfmt
[]="iffbi";
32 const char CreatureInfoAddonInfofmt
[]="iiiiiiis";
33 const char EquipmentInfofmt
[]="iiii";
34 const char GameObjectInfosrcfmt
[]="iiisssiifiiiiiiiiiiiiiiiiiiiiiiiis";
35 const char GameObjectInfodstfmt
[]="iiisssiifiiiiiiiiiiiiiiiiiiiiiiiii";
36 const char ItemPrototypesrcfmt
[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiffiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifiisiiii";
37 const char ItemPrototypedstfmt
[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiffiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifiiiiiii";
38 const char PageTextfmt
[]="isi";
39 const char SpellThreatfmt
[]="ii";
40 const char InstanceTemplatesrcfmt
[]="iiiiiiiffffs";
41 const char InstanceTemplatedstfmt
[]="iiiiiiiffffi";
43 SQLStorage
sCreatureStorage(CreatureInfosrcfmt
, CreatureInfodstfmt
, "entry","creature_template");
44 SQLStorage
sCreatureDataAddonStorage(CreatureDataAddonInfofmt
,"guid","creature_addon");
45 SQLStorage
sCreatureModelStorage(CreatureModelfmt
,"modelid","creature_model_info");
46 SQLStorage
sCreatureInfoAddonStorage(CreatureInfoAddonInfofmt
,"entry","creature_template_addon");
47 SQLStorage
sEquipmentStorage(EquipmentInfofmt
,"entry","creature_equip_template");
48 SQLStorage
sGOStorage(GameObjectInfosrcfmt
, GameObjectInfodstfmt
, "entry","gameobject_template");
49 SQLStorage
sItemStorage(ItemPrototypesrcfmt
, ItemPrototypedstfmt
, "entry","item_template");
50 SQLStorage
sPageTextStore(PageTextfmt
,"entry","page_text");
51 SQLStorage
sSpellThreatStore(SpellThreatfmt
,"entry","spell_threat");
52 SQLStorage
sInstanceTemplate(InstanceTemplatesrcfmt
, InstanceTemplatedstfmt
, "map","instance_template");
54 void SQLStorage::Free ()
57 for(uint32 x
=0;x
<iNumFields
;x
++)
58 if (dst_format
[x
]==FT_STRING
)
60 for(uint32 y
=0;y
<MaxEntry
;y
++)
62 delete [] *(char**)((char*)(pIndex
[y
])+offset
);
64 offset
+= sizeof(char*);
66 else if (dst_format
[x
]==FT_LOGIC
)
67 offset
+= sizeof(bool);
68 else if (dst_format
[x
]==FT_BYTE
)
69 offset
+= sizeof(char);
77 void SQLStorage::Load()
79 SQLStorageLoader loader
;