-Fixed an issue allowing the server to not have a dictionary.ZRO (which
   would
   cause a crash when a dictionary entry was called with no language)
  -Fixed an issue causing the server to puke when it attempted a restart
  -Moved SpawnRandomItem() into cItem class
  -Moved SpawnRandomMonster() into cCharHandle class
  -Broke necro.dfn into fishing.dfn and digging.dfn
  -Made better use of SpawnRandomItem() and SpawnRandomMonster()
  -Moved many global vars into the CWorldMain() class
  -Cleaned ResetVars() in uox3.cpp as ResetDefaults() in CWorldMain() now
   handles  much of that
  -Added a check to ensure text wasn't sent twice in talking(), should fix
   double-speech
  -Cleaned up cmdtable.cpp removing a couple duplicate entries, etc
  -Changed target() to only require 4 values (as the first two were always 0
   and 1)
  -Removed many unneeded typedefs and globals
  -Went through cServerData() and noted unused server.ini entries
  -Moved title1(), title2(), and title3() to cClick.cpp since that is their only
   usage, made use of MAX_TITLE to ensure we wouldn't overrun the buffers,
   and renamed them matching what title they were

Added:
  -CPOpenGump and CPSpeech packet class to remove some global vars
   (Note these are pretty basic classes and someone with a better
   understanding of how we handle sending/recieving packets could       probably expand these to make better use of    them)
This commit is contained in:
Matthew Randall 2003-03-14 23:23:37 +00:00
parent 1225d2f467
commit 071d628994
70 changed files with 2806 additions and 2323 deletions

View file

@ -100,7 +100,7 @@ void cHTMLTemplate::Process( void )
try
{
if( tChar == NULL )
continue;
continue;
if( tChar->IsGM() )
gm++;
@ -121,7 +121,7 @@ void cHTMLTemplate::Process( void )
sprintf( GMCount, "%d", gm );
for( Pos = ParsedContent.find( "%online_gms" ); Pos >= 0; Pos = ParsedContent.find( "%online_gms" ) )
{
(keeprun)?ParsedContent.replace( Pos, 11, GMCount ):ParsedContent.replace( Pos, 11, "0" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, 11, GMCount ):ParsedContent.replace( Pos, 11, "0" );
}
// Counselor
@ -129,7 +129,7 @@ void cHTMLTemplate::Process( void )
sprintf( CounsiCount, "%d", cns );
for( Pos = ParsedContent.find( "%online_couns" ); Pos >= 0; Pos = ParsedContent.find( "%online_couns" ) )
{
(keeprun)?ParsedContent.replace( Pos, 13, CounsiCount ):ParsedContent.replace( Pos, 13, "0");
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, 13, CounsiCount ):ParsedContent.replace( Pos, 13, "0");
}
// Player
@ -137,7 +137,7 @@ void cHTMLTemplate::Process( void )
sprintf( PlayerCount, "%d", ccount );
for( Pos = ParsedContent.find( "%online_player" ); Pos >= 0; Pos = ParsedContent.find( "%online_player" ) )
{
(keeprun)?ParsedContent.replace( Pos, 14, PlayerCount ):ParsedContent.replace( Pos, 14, "0" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, 14, PlayerCount ):ParsedContent.replace( Pos, 14, "0" );
}
// Total
@ -145,7 +145,7 @@ void cHTMLTemplate::Process( void )
sprintf( AllCount, "%d", (ccount + gm + cns) );
for( Pos = ParsedContent.find( "%online_all" ); Pos >= 0; Pos = ParsedContent.find( "%online_all" ) )
{
(keeprun)?ParsedContent.replace( Pos, 11, AllCount ):ParsedContent.replace( Pos, 11, "0" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, 11, AllCount ):ParsedContent.replace( Pos, 11, "0" );
}
//RealTime( time_str )
@ -153,7 +153,7 @@ void cHTMLTemplate::Process( void )
RealTime( time_str );
for( Pos = ParsedContent.find( "%time" ); Pos >= 0; Pos = ParsedContent.find( "%time" ) )
{
(keeprun)?ParsedContent.replace( Pos, 5, time_str ):ParsedContent.replace( Pos, 5, "Down" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, 5, time_str ):ParsedContent.replace( Pos, 5, "Down" );
}
// IP(s) + PORT(s)
@ -170,7 +170,7 @@ void cHTMLTemplate::Process( void )
{
for( Pos = ParsedContent.find( ipToken ); Pos >= 0; Pos = ParsedContent.find( ipToken ) )
{
(keeprun)?ParsedContent.replace( Pos, strlen(ipToken), mServ->getIP().c_str()):ParsedContent.replace( Pos, strlen(ipToken), "Down" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, strlen(ipToken), mServ->getIP().c_str()):ParsedContent.replace( Pos, strlen(ipToken), "Down" );
}
}
@ -183,7 +183,7 @@ void cHTMLTemplate::Process( void )
{
char myPort[5];
sprintf( myPort, "%i", mServ->getPort() );
(keeprun)?ParsedContent.replace( Pos, strlen( portToken ), myPort ):ParsedContent.replace( Pos, strlen( portToken ), "NA" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, strlen( portToken ), myPort ):ParsedContent.replace( Pos, strlen( portToken ), "NA" );
}
}
char serverToken[10]; // i think we'll never get higher than 2 digits, anyway...
@ -193,7 +193,7 @@ void cHTMLTemplate::Process( void )
{
for( Pos = ParsedContent.find( serverToken ); Pos >= 0; Pos = ParsedContent.find( serverToken ) )
{
(keeprun)?ParsedContent.replace( Pos, strlen( serverToken ), mServ->getName().c_str() ):ParsedContent.replace( Pos, strlen( serverToken ), "Down" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, strlen( serverToken ), mServ->getName().c_str() ):ParsedContent.replace( Pos, strlen( serverToken ), "Down" );
}
}
}
@ -234,13 +234,13 @@ void cHTMLTemplate::Process( void )
SI32 sPos;
for( sPos = parsedInline.find( "%playername" ); sPos >= 0; sPos = parsedInline.find( "%playername" ) )
{
(keeprun)?parsedInline.replace( sPos, 11, tChar->GetName() ):parsedInline.replace( sPos, 11, "" );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 11, tChar->GetName() ):parsedInline.replace( sPos, 11, "" );
}
// PlayerTitle
for( sPos = parsedInline.find( "%playertitle" ); sPos >= 0; sPos = parsedInline.find( "%playertitle" ) )
{
(keeprun)?parsedInline.replace( sPos, 12, tChar->GetTitle() ):parsedInline.replace( sPos, 12, "" );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 12, tChar->GetTitle() ):parsedInline.replace( sPos, 12, "" );
}
// PlayerIP
@ -249,7 +249,7 @@ void cHTMLTemplate::Process( void )
cSocket *mySock = calcSocketObjFromChar( tChar );
char ClientIP[32];
sprintf( ClientIP, "%i.%i.%i.%i", mySock->ClientIP4(), mySock->ClientIP3(), mySock->ClientIP3(), mySock->ClientIP1() );
(keeprun)?parsedInline.replace( sPos, 9, ClientIP ):parsedInline.replace( sPos, 9, "" );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 9, ClientIP ):parsedInline.replace( sPos, 9, "" );
}
// PlayerAccount
@ -258,7 +258,7 @@ void cHTMLTemplate::Process( void )
ACCOUNTSBLOCK toScan;
toScan=tChar->GetAccount();
if( toScan.wAccountIndex!=AB_INVALID_ID)
(keeprun)?parsedInline.replace( sPos, 14, toScan.sUsername):parsedInline.replace( sPos, 14, "" );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 14, toScan.sUsername):parsedInline.replace( sPos, 14, "" );
}
// PlayerX
@ -266,7 +266,7 @@ void cHTMLTemplate::Process( void )
{
char myX[5];
sprintf( myX, "%i", tChar->GetX() );
(keeprun)?parsedInline.replace( sPos, 8, myX ):parsedInline.replace( sPos, 8, "" );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 8, myX ):parsedInline.replace( sPos, 8, "" );
}
// PlayerY
@ -274,7 +274,7 @@ void cHTMLTemplate::Process( void )
{
char myY[5];
sprintf( myY, "%i", tChar->GetY() );
(keeprun)?parsedInline.replace( sPos, 8, myY ):parsedInline.replace( sPos, 8, myY );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 8, myY ):parsedInline.replace( sPos, 8, myY );
}
// PlayerZ
@ -282,7 +282,7 @@ void cHTMLTemplate::Process( void )
{
char myZ[3];
sprintf( myZ, "%i", tChar->GetZ() );
(keeprun)?parsedInline.replace( sPos, 8, myZ ):parsedInline.replace( sPos, 8, "" );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 8, myZ ):parsedInline.replace( sPos, 8, "" );
}
// PlayerRace -- needs testing
@ -295,14 +295,14 @@ void cHTMLTemplate::Process( void )
strcpy( myRaceName, rName );
if( myRaceName != NULL )
(keeprun)?parsedInline.replace( sPos, 11, myRaceName ):parsedInline.replace( sPos, 11, "");
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 11, myRaceName ):parsedInline.replace( sPos, 11, "");
delete [] myRaceName;
}
// PlayerRegion
for( sPos = parsedInline.find( "%playerregion" ); sPos >= 0; sPos = parsedInline.find( "%playerregion" ) )
{
(keeprun)?parsedInline.replace( sPos, 13, region[tChar->GetRegion()]->GetName() ):parsedInline.replace( sPos, 13, "");
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 13, region[tChar->GetRegion()]->GetName() ):parsedInline.replace( sPos, 13, "");
}
PlayerList += parsedInline;
@ -316,7 +316,7 @@ void cHTMLTemplate::Process( void )
}
Network->PopConn();
(keeprun)?ParsedContent.replace( Pos, myInline.length(), PlayerList ):ParsedContent.replace( Pos, myInline.length(), "");
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, myInline.length(), PlayerList ):ParsedContent.replace( Pos, myInline.length(), "");
}
// GuildCount
@ -324,7 +324,7 @@ void cHTMLTemplate::Process( void )
sprintf( GuildCount, "%d", GuildSys->NumGuilds() );
for( Pos = ParsedContent.find( "%guildcount" ); Pos >= 0; Pos = ParsedContent.find( "%guildcount" ) )
{
(keeprun)?ParsedContent.replace( Pos, 11, PlayerCount ):ParsedContent.replace( Pos, 11, "" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, 11, PlayerCount ):ParsedContent.replace( Pos, 11, "" );
}
// GUILDLIST
@ -355,19 +355,19 @@ void cHTMLTemplate::Process( void )
sprintf( GuildID, "%d", i );
for( sPos = parsedInline.find( "%guildid" ); sPos >= 0; sPos = parsedInline.find( "%guildid" ) )
{
(keeprun)?parsedInline.replace( sPos, 8, GuildID ):parsedInline.replace( sPos, 8, "" );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 8, GuildID ):parsedInline.replace( sPos, 8, "" );
}
// GuildName
for( sPos = parsedInline.find( "%guildname" ); sPos >= 0; sPos = parsedInline.find( "%guildname" ) )
{
(keeprun)?parsedInline.replace( sPos, 10, myGuild->Name() ):parsedInline.replace( sPos, 10, "" );
(cwmWorldState->GetKeepRun())?parsedInline.replace( sPos, 10, myGuild->Name() ):parsedInline.replace( sPos, 10, "" );
}
GuildList += parsedInline;
}
(keeprun)?ParsedContent.replace( Pos, myInline.length(), GuildList ):ParsedContent.replace( Pos, myInline.length(), "" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, myInline.length(), GuildList ):ParsedContent.replace( Pos, myInline.length(), "" );
}
//NPCCount
@ -389,7 +389,7 @@ void cHTMLTemplate::Process( void )
for( Pos = ParsedContent.find( "%npcs" ); Pos >= 0; Pos = ParsedContent.find( "%npcs" ) )
{
(keeprun)?ParsedContent.replace( Pos, 5, npcs ):ParsedContent.replace( Pos, 5, "0" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, 5, npcs ):ParsedContent.replace( Pos, 5, "0" );
}
// Performance Dump
@ -398,7 +398,7 @@ void cHTMLTemplate::Process( void )
{
std::string performance;
std::ostringstream myStream( performance );
if(keeprun)
if(cwmWorldState->GetKeepRun())
{
myStream << "Network code: " << (R32)((R32)networkTime/(R32)networkTimeCount) << "msec [" << networkTimeCount << " samples] <BR>";
myStream << "Timer code: " << (R32)((R32)timerTime/(R32)timerTimeCount) << "msec [" << timerTimeCount << " samples] <BR>";
@ -430,7 +430,7 @@ void cHTMLTemplate::Process( void )
UI32 total, hr, min, sec;
total = (uiCurrentTime - starttime ) / CLOCKS_PER_SEC;
total = (cwmWorldState->GetUICurrentTime() - cwmWorldState->GetStartTime() ) / CLOCKS_PER_SEC;
hr = total / 3600;
if( hr < 10 && hr <= 60 )
sprintf( sh,"0%i",hr );
@ -459,7 +459,7 @@ void cHTMLTemplate::Process( void )
std::string simcycles;
std::ostringstream myStream( simcycles );
if(keeprun)
if(cwmWorldState->GetKeepRun())
{
if( !( loopTime < eps || loopTimeCount < eps ) )
myStream << "Simulation Cycles: " << (1000.0*(1.0/(R32)((R32)loopTime/(R32)loopTimeCount))) << " per sec <BR>";
@ -479,7 +479,7 @@ void cHTMLTemplate::Process( void )
char strUpdateTimer[32]; // Could be a big value...
sprintf( strUpdateTimer, "%i", UpdateTimer );
(keeprun)?ParsedContent.replace( Pos, 11, strUpdateTimer ):ParsedContent.replace( Pos, 11, "0" );
(cwmWorldState->GetKeepRun())?ParsedContent.replace( Pos, 11, strUpdateTimer ):ParsedContent.replace( Pos, 11, "0" );
}
//***************************************/
@ -507,7 +507,7 @@ void cHTMLTemplate::Process( void )
//o---------------------------------------------------------------------------o
void cHTMLTemplate::Poll( bool Force )
{
if( ( Force ) || ( ScheduledUpdate < uiCurrentTime ) )
if( ( Force ) || ( ScheduledUpdate < cwmWorldState->GetUICurrentTime() ) )
{
Process();
ScheduledUpdate = BuildTimeValue( (R32)UpdateTimer );