DB-Schema/Characters: Store game_event_save.next_start as unix timestamp and remove runtime typecasts for this field.

--HG--
branch : trunk
This commit is contained in:
Machiavelli
2010-09-04 18:01:03 +02:00
parent a9ca3d5ed1
commit e3957bd6de
3 changed files with 9 additions and 5 deletions

View File

@@ -1213,7 +1213,7 @@ DROP TABLE IF EXISTS `game_event_save`;
CREATE TABLE `game_event_save` (
`event_id` mediumint(8) unsigned NOT NULL,
`state` tinyint(3) unsigned NOT NULL default '1',
`next_start` timestamp NOT NULL default '0000-00-00 00:00:00',
`next_start` BIGINT(11) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`event_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

View File

@@ -0,0 +1,4 @@
ALTER TABLE `game_event_save` ADD `next_start_timestamp` BIGINT(11) UNSIGNED NOT NULL DEFAULT '0';
UPDATE `game_event_save` SET `next_start_timestamp` = UNIX_TIMESTAMP(`next_start`);
ALTER TABLE `game_event_save` DROP `next_start`;
ALTER TABLE `game_event_save` CHANGE `next_start_timestamp` `next_start` BIGINT(11) UNSIGNED NOT NULL DEFAULT '0';

View File

@@ -278,8 +278,8 @@ void GameEventMgr::LoadFromDB()
sLog.outString("Loading Game Event Saves Data...");
// 0 1 2
result = CharacterDatabase.Query("SELECT event_id, state, UNIX_TIMESTAMP(next_start) FROM game_event_save");
// 0 1 2
result = CharacterDatabase.Query("SELECT event_id, state, next_start FROM game_event_save");
count = 0;
if (!result)
@@ -1676,9 +1676,9 @@ void GameEventMgr::SaveWorldEventStateToDB(uint16 event_id)
SQLTransaction trans = CharacterDatabase.BeginTransaction();
trans->PAppend("DELETE FROM game_event_save WHERE event_id = '%u'",event_id);
if (mGameEvent[event_id].nextstart)
trans->PAppend("INSERT INTO game_event_save (event_id, state, next_start) VALUES ('%u','%u',FROM_UNIXTIME("UI64FMTD"))",event_id,mGameEvent[event_id].state,(uint64)(mGameEvent[event_id].nextstart));
trans->PAppend("INSERT INTO game_event_save (event_id, state, next_start) VALUES ('%u','%u', "UI64FMTD")",event_id,mGameEvent[event_id].state,(uint64)(mGameEvent[event_id].nextstart));
else
trans->PAppend("INSERT INTO game_event_save (event_id, state, next_start) VALUES ('%u','%u','0000-00-00 00:00:00')",event_id,mGameEvent[event_id].state);
trans->PAppend("INSERT INTO game_event_save (event_id, state, next_start) VALUES ('%u','%u','0')",event_id,mGameEvent[event_id].state);
CharacterDatabase.CommitTransaction(trans);
}