/*~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~ Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, ~
~ Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. ~
~ ~
~ Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael ~
~ Chastain, Michael Quan, and Mitchell Tse. ~
~ ~
~ Ack 2.2 improvements copyright (C) 1994 by Stephen Dooley ~
~ ACK!MUD is modified Merc2.0/2.1/2.2 code (c)Stephen Zepp 1998 Ver: 4.3 ~
~ ~
~ In order to use any part of this PA Diku Mud, you must comply with ~
~ both the original Diku license in 'license.doc' as well the Merc ~
~ license in 'license.txt', and the Ack!Mud license in 'ack_license.txt'.~
~ In particular, you may not remove any of these copyright notices. ~
~ ~
~ _______ _____ ~
~ / __ /\ / ___ \ 222222 PA_MUD by Amnon Kruvi ~
~ /______/ / / /___\ \ 2 PA_MUD is modified ~
~ / _______/ / _______ \ 2 Ack!Mud, v4.3 ~
~ /_/ /_/ \_\ 2 ~
~ 2 ~
~ 2222222 ~
~ ~
~ ~
~ Years of work have been invested to create DIKU, Merc, Ack and PA. ~
~ Please show your respect by following the licenses, and issuing ~
~ credits where due. ~
~ ~
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-*/
#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <assert.h>
#include <unistd.h>
#include <string.h>
#include "ack.h"
#include "tables.h"
// Local Functions
void generate_basic_page( FILE * fp );
void generate_basic_page_end( FILE * fp );
void add_affiliates ( FILE *fp );
void save_web_data();
char *format_web( char *str );
struct web_data web_data;
void generate_basic_page( FILE * fp )
{
fprintf( fp, "<HTML><HEAD><LINK HREF=tgh.css TYPE=text/css REL=stylesheet></HEAD><BODY bgcolor=\"#ffffff\">" );
return;
}
void generate_basic_page_end( FILE * fp )
{
fprintf(fp,"</body></html>");
return;
}
void add_affiliates( FILE *fp )
{
return;
}
void generate_webpage( void )
{
FILE * fp;
char file_name[MAX_STRING_LENGTH];
char buf[MSL];
fclose( fpReserve );
sprintf( file_name, "%s", STAT_WEB_FILE );
if ( ( fp = fopen( file_name, "w" ) ) != NULL )
{
sprintf( buf, "<?php\n" );
sprintf( buf+strlen(buf), "$last_killed_in_pit = \"%s\";\n" , web_data.last_killed_in_pit );
sprintf( buf+strlen(buf), "$last_kills_in_pit = \"%s\";\n" , web_data.last_kills_in_pit );
sprintf( buf+strlen(buf), "$num_players = %d;\n" , web_data.num_players );
sprintf( buf+strlen(buf), "$tot_players = %d;\n" , web_data.tot_players );
sprintf( buf+strlen(buf), "$highest_rank = \"%s\";\n" , web_data.highest_ranking_player );
sprintf( buf+strlen(buf), "$highest_rank2 = %d;\n" , web_data.highest_rank );
sprintf( buf+strlen(buf), "$newest_player = \"%s\";\n" , web_data.newest_player );
sprintf( buf+strlen(buf), "$num_buildings = %ld;\n" , building_count );
sprintf( buf+strlen(buf), "?>" );
fprintf( fp, buf );
}
fflush( fp );
fclose( fp );
fpReserve = fopen( NULL_FILE, "r" );
return;
}
char *format_web( char * str )
{
int i;
for ( i=0;str[i] != '\0';i++ )
{
if ( i + 8 > strlen(str) )
break;
if ( str[i] == '*'
&& str[i+1] == '*'
&& str[i+2] == '*'
&& str[i+3] == '*'
&& str[i+4] == '*'
&& str[i+5] == '*'
&& str[i+6] == '*'
&& str[i+7] == '*' )
{
str[i] = '<';
str[i+1] = 'b';
str[i+2] = 'r';
str[i+3] = '>';
str[i+4] = '<';
str[i+5] = 'l';
str[i+6] = 'i';
str[i+7] = '>';
}
i += 8;
}
return str;
}
void update_web_data(int type,char *value)
{
if ( type == WEB_DATA_KILLED_PIT )
{
if ( web_data.last_killed_in_pit != NULL )
free_string(web_data.last_killed_in_pit);
web_data.last_killed_in_pit = str_dup(value);
}
else if ( type == WEB_DATA_KILLS_PIT )
{
if ( web_data.last_kills_in_pit != NULL )
free_string(web_data.last_kills_in_pit);
web_data.last_kills_in_pit = str_dup(value);
}
else if ( type == WEB_DATA_HIGHEST_RANK )
{
if ( web_data.highest_ranking_player != NULL )
free_string(web_data.highest_ranking_player);
web_data.highest_ranking_player = str_dup(value);
}
else if ( type == WEB_DATA_NEWEST_PLAYER )
{
if ( web_data.newest_player != NULL )
free_string(web_data.newest_player);
web_data.newest_player = str_dup(value);
}
else if ( type == WEB_DATA_NUM_PLAYERS )
{
web_data.num_players = atoi(value);
}
else if ( type == WEB_DATA_TOT_PLAYERS )
{
web_data.tot_players = atoi(value);
}
else
return;
generate_webpage();
save_web_data();
return;
}
void save_web_data( )
{
FILE * fp;
fclose( fpReserve );
if ( ( fp = fopen( WEB_DATA_FILE, "w" ) ) != NULL )
{
fprintf( fp, "%s~\n%s~\n%s~\n%s~\n%d\n%d\n", web_data.last_killed_in_pit, web_data.last_kills_in_pit, web_data.highest_ranking_player, web_data.newest_player, web_data.highest_rank, web_data.tot_players );
}
fflush( fp );
fclose( fp );
fpReserve = fopen( NULL_FILE, "r" );
return;
}