Changeset 262

Show
Ignore:
Timestamp:
11/21/08 08:48:19 (17 years ago)
Author:
yumileroy
Message:

Some missing changes. This should fix the bug that loading char causes crash.

Original author: megamage
Date: 2008-11-20 17:18:23-06:00

Location:
trunk/src
Files:
12 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/CharacterHandler.cpp

    r230 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
     
    6565    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADGROUP,           "SELECT leaderGuid FROM group_member WHERE memberGuid ='%u'", GUID_LOPART(m_guid)); 
    6666    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADBOUNDINSTANCES,  "SELECT id, permanent, map, difficulty, resettime FROM character_instance LEFT JOIN instance ON instance = id WHERE guid = '%u'", GUID_LOPART(m_guid)); 
    67     res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADAURAS,           "SELECT caster_guid,spell,effect_index,amount,maxduration,remaintime,remaincharges FROM character_aura WHERE guid = '%u'", GUID_LOPART(m_guid)); 
     67    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADAURAS,           "SELECT caster_guid,spell,effect_index,stackcount,amount,maxduration,remaintime,remaincharges FROM character_aura WHERE guid = '%u'", GUID_LOPART(m_guid)); 
    6868    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADSPELLS,          "SELECT spell,slot,active,disabled FROM character_spell WHERE guid = '%u'", GUID_LOPART(m_guid)); 
    6969    res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADQUESTSTATUS,     "SELECT quest,status,rewarded,explored,timer,mobcount1,mobcount2,mobcount3,mobcount4,itemcount1,itemcount2,itemcount3,itemcount4 FROM character_queststatus WHERE guid = '%u'", GUID_LOPART(m_guid)); 
     
    181181    std::string name; 
    182182    uint8 race_,class_; 
     183 
    183184    recv_data >> name; 
    184185 
     
    215216    ChrClassesEntry const* classEntry = sChrClassesStore.LookupEntry(class_); 
    216217    ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(race_); 
     218 
    217219    if( !classEntry || !raceEntry ) 
    218220    { 
     
    608610    } 
    609611 
    610     if (!MapManager::Instance().GetMap(pCurrChar->GetMapId(), pCurrChar)->Add(pCurrChar)) 
     612    if (!pCurrChar->GetMap()->Add(pCurrChar)) 
    611613    { 
    612614        AreaTrigger const* at = objmgr.GetGoBackTrigger(pCurrChar->GetMapId()); 
     
    10001002    uint64 guid; 
    10011003 
    1002     CHECK_PACKET_SIZE(recv_data, 8+6); 
     1004    CHECK_PACKET_SIZE(recv_data, 8); 
    10031005    recv_data >> guid; 
    10041006 
    10051007    // not accept declined names for unsupported languages 
    10061008    std::string name; 
    1007     if(!objmgr.GetPlayerNameByGUID(guid,name)) 
    1008     { 
    1009         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
    1010         data << (uint32)1; 
    1011         data << guid; 
     1009    if(!objmgr.GetPlayerNameByGUID(guid, name)) 
     1010    { 
     1011        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
     1012        data << uint32(1); 
     1013        data << uint64(guid); 
    10121014        SendPacket(&data); 
    10131015        return; 
     
    10151017 
    10161018    std::wstring wname; 
    1017     if(!Utf8toWStr(name,wname)) 
    1018     { 
    1019         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
    1020         data << (uint32)1; 
    1021         data << guid; 
     1019    if(!Utf8toWStr(name, wname)) 
     1020    { 
     1021        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
     1022        data << uint32(1); 
     1023        data << uint64(guid); 
    10221024        SendPacket(&data); 
    10231025        return; 
     
    10261028    if(!isCyrillicCharacter(wname[0]))                      // name already stored as only single alphabet using 
    10271029    { 
    1028         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
    1029         data << (uint32)1; 
    1030         data << guid; 
     1030        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
     1031        data << uint32(1); 
     1032        data << uint64(guid); 
    10311033        SendPacket(&data); 
    10321034        return; 
     
    10361038    DeclinedName declinedname; 
    10371039 
     1040    CHECK_PACKET_SIZE(recv_data, recv_data.rpos() + 1); 
    10381041    recv_data >> name2; 
    10391042 
    1040     if(name2!=name)                                         // character have different name 
    1041     { 
    1042         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
    1043         data << (uint32)1; 
    1044         data << guid; 
     1043    if(name2 != name)                                       // character have different name 
     1044    { 
     1045        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
     1046        data << uint32(1); 
     1047        data << uint64(guid); 
    10451048        SendPacket(&data); 
    10461049        return; 
     
    10491052    for(int i = 0; i < MAX_DECLINED_NAME_CASES; ++i) 
    10501053    { 
     1054        CHECK_PACKET_SIZE(recv_data, recv_data.rpos() + 1); 
    10511055        recv_data >> declinedname.name[i]; 
    10521056        if(!normalizePlayerName(declinedname.name[i])) 
    10531057        { 
    1054             WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
    1055             data << (uint32)1; 
    1056             data << guid; 
     1058            WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
     1059            data << uint32(1); 
     1060            data << uint64(guid); 
    10571061            SendPacket(&data); 
    10581062            return; 
     
    10601064    } 
    10611065 
    1062     if(!ObjectMgr::CheckDeclinedNames(GetMainPartOfName(wname,0),declinedname)) 
    1063     { 
    1064         WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
    1065         data << (uint32)1; 
    1066         data << guid; 
     1066    if(!ObjectMgr::CheckDeclinedNames(GetMainPartOfName(wname, 0), declinedname)) 
     1067    { 
     1068        WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
     1069        data << uint32(1); 
     1070        data << uint64(guid); 
    10671071        SendPacket(&data); 
    10681072        return; 
     
    10751079    CharacterDatabase.PExecute("DELETE FROM character_declinedname WHERE guid = '%u'", GUID_LOPART(guid)); 
    10761080    CharacterDatabase.PExecute("INSERT INTO character_declinedname (guid, genitive, dative, accusative, instrumental, prepositional) VALUES ('%u','%s','%s','%s','%s','%s')", 
    1077         GUID_LOPART(guid), declinedname.name[0].c_str(),declinedname.name[1].c_str(),declinedname.name[2].c_str(),declinedname.name[3].c_str(),declinedname.name[4].c_str()); 
     1081        GUID_LOPART(guid), declinedname.name[0].c_str(), declinedname.name[1].c_str(), declinedname.name[2].c_str(), declinedname.name[3].c_str(), declinedname.name[4].c_str()); 
    10781082    CharacterDatabase.CommitTransaction(); 
    10791083 
    1080     WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,4+8); 
    1081     data << (uint32)0;                                      // OK 
    1082     data << guid; 
     1084    WorldPacket data(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, 4+8); 
     1085    data << uint32(0);                                      // OK 
     1086    data << uint64(guid); 
    10831087    SendPacket(&data); 
    10841088} 
  • trunk/src/game/Pet.cpp

    r253 r262  
    287287            ++iter; 
    288288            m_charmInfo->GetActionBarEntry(index)->SpellOrAction = atol((*iter).c_str()); 
     289 
     290            // patch for old data where some spells have ACT_DECIDE but should have ACT_CAST 
     291            // so overwrite old state  
     292            SpellEntry const *spellInfo = sSpellStore.LookupEntry(m_charmInfo->GetActionBarEntry(index)->SpellOrAction); 
     293            if (spellInfo && spellInfo->AttributesEx & SPELL_ATTR_EX_UNAUTOCASTABLE_BY_PET) m_charmInfo->GetActionBarEntry(index)->Type = ACT_CAST; 
    289294        } 
    290295 
     
    13231328        SetUInt32Value(i, 0); 
    13241329 
    1325     QueryResult *result = CharacterDatabase.PQuery("SELECT caster_guid,spell,effect_index,amount,maxduration,remaintime,remaincharges FROM pet_aura WHERE guid = '%u'",m_charmInfo->GetPetNumber()); 
     1330    QueryResult *result = CharacterDatabase.PQuery("SELECT caster_guid,spell,effect_index,stackcount,amount,maxduration,remaintime,remaincharges FROM pet_aura WHERE guid = '%u'",m_charmInfo->GetPetNumber()); 
    13261331 
    13271332    if(result) 
     
    13331338            uint32 spellid = fields[1].GetUInt32(); 
    13341339            uint32 effindex = fields[2].GetUInt32(); 
    1335             int32 damage     = (int32)fields[3].GetUInt32(); 
    1336             int32 maxduration = (int32)fields[4].GetUInt32(); 
    1337             int32 remaintime = (int32)fields[5].GetUInt32(); 
    1338             int32 remaincharges = (int32)fields[6].GetUInt32(); 
     1340            uint32 stackcount= fields[3].GetUInt32(); 
     1341            int32 damage     = (int32)fields[4].GetUInt32(); 
     1342            int32 maxduration = (int32)fields[5].GetUInt32(); 
     1343            int32 remaintime = (int32)fields[6].GetUInt32(); 
     1344            int32 remaincharges = (int32)fields[7].GetUInt32(); 
    13391345 
    13401346            SpellEntry const* spellproto = sSpellStore.LookupEntry(spellid); 
     
    13731379                continue; 
    13741380 
    1375             Aura* aura = CreateAura(spellproto, effindex, NULL, this, NULL); 
    1376  
    1377             if(!damage) 
    1378                 damage = aura->GetModifier()->m_amount; 
    1379             aura->SetLoadedState(caster_guid,damage,maxduration,remaintime,remaincharges); 
    1380             AddAura(aura); 
     1381            for(uint32 i=0; i<stackcount; i++) 
     1382            { 
     1383                Aura* aura = CreateAura(spellproto, effindex, NULL, this, NULL); 
     1384 
     1385                if(!damage) 
     1386                    damage = aura->GetModifier()->m_amount; 
     1387                aura->SetLoadedState(caster_guid,damage,maxduration,remaintime,remaincharges); 
     1388                AddAura(aura); 
     1389            } 
    13811390        } 
    13821391        while( result->NextRow() ); 
     
    13911400 
    13921401    AuraMap const& auras = GetAuras(); 
    1393     for(AuraMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr) 
    1394     { 
    1395         // skip all auras from spell that apply at cast SPELL_AURA_MOD_SHAPESHIFT or pet area auras. 
    1396         SpellEntry const *spellInfo = itr->second->GetSpellProto(); 
    1397         uint8 i; 
    1398         for (i = 0; i < 3; i++) 
    1399             if (spellInfo->EffectApplyAuraName[i] == SPELL_AURA_MOD_STEALTH || 
    1400                 spellInfo->Effect[i] == SPELL_EFFECT_APPLY_AREA_AURA_OWNER || 
    1401                 spellInfo->Effect[i] == SPELL_EFFECT_APPLY_AREA_AURA_PET ) 
     1402    if (auras.empty()) 
     1403        return; 
     1404 
     1405    spellEffectPair lastEffectPair = auras.begin()->first; 
     1406    uint32 stackCounter = 1; 
     1407 
     1408    for(AuraMap::const_iterator itr = auras.begin(); ; ++itr) 
     1409    { 
     1410        if(itr == auras.end() || lastEffectPair != itr->first) 
     1411        { 
     1412            AuraMap::const_iterator itr2 = itr; 
     1413            // save previous spellEffectPair to db 
     1414            itr2--; 
     1415            SpellEntry const *spellInfo = itr2->second->GetSpellProto(); 
     1416            /// do not save single target auras (unless they were cast by the player) 
     1417            if (!(itr2->second->GetCasterGUID() != GetGUID() && IsSingleTargetSpell(spellInfo))) 
     1418            { 
     1419                if(!itr2->second->IsPassive()) 
     1420                { 
     1421                    // skip all auras from spell that apply at cast SPELL_AURA_MOD_SHAPESHIFT or pet area auras. 
     1422                    uint8 i; 
     1423                    for (i = 0; i < 3; i++) 
     1424                        if (spellInfo->EffectApplyAuraName[i] == SPELL_AURA_MOD_STEALTH || 
     1425                            spellInfo->Effect[i] == SPELL_EFFECT_APPLY_AREA_AURA_OWNER || 
     1426                            spellInfo->Effect[i] == SPELL_EFFECT_APPLY_AREA_AURA_PET ) 
     1427                            break; 
     1428 
     1429                    if (i == 3) 
     1430                    { 
     1431                        CharacterDatabase.PExecute("INSERT INTO pet_aura (guid,caster_guid,spell,effect_index,stackcount,amount,maxduration,remaintime,remaincharges) " 
     1432                            "VALUES ('%u', '" I64FMTD "', '%u', '%u', '%u', '%d', '%d', '%d', '%d')", 
     1433                            m_charmInfo->GetPetNumber(), itr2->second->GetCasterGUID(),(uint32)itr2->second->GetId(), (uint32)itr2->second->GetEffIndex(), stackCounter, itr2->second->GetModifier()->m_amount,int(itr2->second->GetAuraMaxDuration()),int(itr2->second->GetAuraDuration()),int(itr2->second->m_procCharges)); 
     1434                    } 
     1435                } 
     1436            } 
     1437            if(itr == auras.end()) 
    14021438                break; 
    1403  
    1404         if (i != 3) 
    1405             continue; 
    1406          
    1407         if(itr->second->IsPassive()) 
    1408             continue; 
    1409  
    1410         /// do not save single target auras (unless they were cast by the player) 
    1411         if (itr->second->GetCasterGUID() != GetGUID() && IsSingleTargetSpell(spellInfo)) 
    1412             continue; 
    1413  
    1414         CharacterDatabase.PExecute("INSERT INTO pet_aura (guid,caster_guid,spell,effect_index,amount,maxduration,remaintime,remaincharges) " 
    1415             "VALUES ('%u', '" I64FMTD "', '%u', '%u', '%d', '%d', '%d', '%d')", 
    1416             m_charmInfo->GetPetNumber(), itr->second->GetCasterGUID(),(uint32)(*itr).second->GetId(), (uint32)(*itr).second->GetEffIndex(),(*itr).second->GetModifier()->m_amount,int((*itr).second->GetAuraMaxDuration()),int((*itr).second->GetAuraDuration()),int((*itr).second->m_procCharges)); 
     1439        } 
     1440 
     1441        if (lastEffectPair == itr->first) 
     1442            stackCounter++; 
     1443        else 
     1444        { 
     1445            lastEffectPair = itr->first; 
     1446            stackCounter = 1; 
     1447        } 
    14171448    } 
    14181449} 
     
    14341465        return false; 
    14351466    } 
     1467 
     1468    // same spells don't have autocast option 
     1469    if (spellInfo->AttributesEx & SPELL_ATTR_EX_UNAUTOCASTABLE_BY_PET) active = ACT_CAST; 
    14361470 
    14371471    PetSpellMap::iterator itr = m_spells.find(spell_id); 
     
    15091543        CastSpell(this, spell_id, true); 
    15101544    else if(state == PETSPELL_NEW) 
    1511         m_charmInfo->AddSpellToAB(oldspell_id, spell_id); 
     1545        m_charmInfo->AddSpellToAB(oldspell_id, spell_id, active); 
    15121546 
    15131547    if(newspell->active == ACT_ENABLED) 
     
    16591693        return; 
    16601694 
    1661     if(const SpellEntry *tempSpell = GetSpellStore()->LookupEntry(spellid)) 
    1662         if(tempSpell->EffectImplicitTargetA[0] != TARGET_ALL_AROUND_CASTER 
    1663             && tempSpell->EffectImplicitTargetA[0] != TARGET_CHAIN_DAMAGE) 
    1664             return;     
     1695    //if(const SpellEntry *tempSpell = GetSpellStore()->LookupEntry(spellid)) 
     1696    //    if(tempSpell->EffectImplicitTargetA[0] != TARGET_ALL_AROUND_CASTER 
     1697    //        && tempSpell->EffectImplicitTargetA[0] != TARGET_CHAIN_DAMAGE) 
     1698    //        return;     
    16651699 
    16661700    PetSpellMap::const_iterator itr = m_spells.find((uint16)spellid); 
  • trunk/src/game/SharedDefines.h

    r253 r262  
    249249#define SPELL_ATTR_EX_DISPEL_AURAS_ON_IMMUNITY    0x00008000            // 15 remove auras on immunity 
    250250#define SPELL_ATTR_EX_UNAFFECTED_BY_SCHOOL_IMMUNE 0x00010000            // 16 unaffected by school immunity 
    251 #define SPELL_ATTR_EX_UNK17                       0x00020000            // 17 
     251#define SPELL_ATTR_EX_UNAUTOCASTABLE_BY_PET       0x00020000            // 17 
    252252#define SPELL_ATTR_EX_UNK18                       0x00040000            // 18 
    253253#define SPELL_ATTR_EX_UNK19                       0x00080000            // 19 
  • trunk/src/shared/Database/DatabaseEnv.h

    r149 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
  • trunk/src/shared/Database/DatabaseImpl.h

    r173 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
  • trunk/src/shared/Database/DatabaseMysql.cpp

    r102 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
  • trunk/src/shared/Database/DatabaseMysql.h

    r102 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
  • trunk/src/shared/Database/Field.cpp

    r102 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
  • trunk/src/shared/Database/Field.h

    r102 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
  • trunk/src/shared/Database/QueryResult.h

    r102 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
  • trunk/src/shared/Database/SqlOperations.cpp

    r230 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020 
  • trunk/src/shared/Database/SqlOperations.h

    r102 r262  
    1111 * This program is distributed in the hope that it will be useful, 
    1212 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1414 * GNU General Public License for more details. 
    1515 * 
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
    1919 */ 
    2020