#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "merc.h"
void do_religion(CHAR_DATA *ch, char *argument)
{
int i;
int x;
char chosen[MSL];
char diety[MAX_STRING_LENGTH];
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
char arg3[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
unsigned long int value = 0;
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
argument = one_argument( argument, arg3 );
save_gods();
if (arg1[0] == '\0')
{
send_to_char("Religion : Chosen : Souls \n\r",ch);
send_to_char("\n\r",ch);
for (i=0;i<22;i++)
{
if (i==0) sprintf(diety,"0 Athiest ");
if (i==1) sprintf(diety,"1 Astinus ");
if (i==2) sprintf(diety,"2 Chemosh ");
if (i==3) sprintf(diety,"3 Hiddukel ");
if (i==4) sprintf(diety,"4 Nuitari ");
if (i==5) sprintf(diety,"5 Sargonnas ");
if (i==6) sprintf(diety,"6 Zeboim ");
if (i==7) sprintf(diety,"7 Branchala ");
if (i==8) sprintf(diety,"8 Habbakuk ");
if (i==9) sprintf(diety,"9 Kiri-Jolith ");
if (i==10) sprintf(diety,"10 Majere ");
if (i==11) sprintf(diety,"11 Mishakal ");
if (i==12) sprintf(diety,"12 Solinari ");
if (i==13) sprintf(diety,"13 Chislev ");
if (i==14) sprintf(diety,"14 Gilean ");
if (i==15) sprintf(diety,"15 Lunitari ");
if (i==16) sprintf(diety,"16 Reorx ");
if (i==17) sprintf(diety,"17 Shinare ");
if (i==18) sprintf(diety,"18 Sirrion ");
if (i==19) sprintf(diety,"19 Zivilyn ");
if (i==20) sprintf(diety,"20 Takhisis ");
if (i==21) sprintf(diety,"21 Paladine ");
sprintf(buf,"%-12s : %-15s : %-12d -> \n\r", diety, // religion_data[i].godname,
religion_data[i].chosen, gods[i].souls); //religion_data[i].souls);
send_to_char(buf,ch);
}
}
return;
}
void load_religions()
{
int i;
FILE *fp;
if ((fp = fopen("../txt/religions.txt", "r")) == NULL)
{
log_string("Error: religions.txt not found!");
exit(1);
}
religion_data[0].godname = " ";
religion_data[0].chosen = " ";
religion_data[0].souls = 0;
for (i = 1; i <= MAX_RELIGION; i++)
{
religion_data[i].godname = fread_string(fp);
religion_data[i].chosen = fread_string(fp);
religion_data[i].souls = fread_number(fp);
}
fclose(fp);
}
void save_religions()
{
FILE *fp;
int i;
char buf[20];
if ((fp = fopen("../txt/religions.txt","w")) == NULL)
{
log_string("Error writing to religions.txt");
return;
}
for (i=1;i<=MAX_RELIGION;i++)
{
fprintf(fp, "%s~\n", religion_data[i].godname);
fprintf(fp, "%s~\n", religion_data[i].chosen);
fprintf(fp, "%d\n", religion_data[i].souls);
}
fclose (fp);
}
void update_religions( CHAR_DATA *ch )
{
int i,j;
bool changed = FALSE;
char buf[20];
if (IS_NPC(ch)) return;
if (ch->level > 6) return;
for (i = 1; i <= MAX_RELIGION && !changed; i++)
{
if (!str_cmp(ch->name,religion_data[i].chosen))
{
if (ch->relrank == 5) religion_data[i].chosen = ch->name;
changed = TRUE;
i = MAX_RELIGION +1;
}
}
for (i = 1; i <= MAX_RELIGION && !changed; i++)
{
if (ch->relrank == 5)
{
free_string(religion_data[i].chosen);
religion_data[i].chosen = str_dup(ch->name);
changed = TRUE;
i = MAX_RELIGION+1;
}
}
if (changed) save_religions();
return;
}
void do_relset(CHAR_DATA *ch, char *argument)
{
CHAR_DATA *victim;
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
char arg3[MAX_INPUT_LENGTH];
int i;
char relname[MSL];
char value[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
argument = one_argument(argument, arg1);
argument = one_argument(argument, arg2);
one_argument(argument, arg3);
if (arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0')
{
send_to_char("Syntax : relset <religion> <field> <value>\n\r", ch);
send_to_char("Valid fields : Godname, Chosen, Souls\n\r", ch);
return;
}
// for (i = 0; i < 22; i++)
// {
// religion_data[i].godname = relname;
// if (!str_cmp(arg1,relname))
if (!is_number(arg1))
{
send_to_char("Please pick a valid god.\n\r", ch);
return;
}
i = atoi(arg1);
if (i < 1 || i > MAX_RELIGION)
{
send_to_char("Please pick a real religion.\n\r", ch);
return;
}
if (!str_cmp(arg2, "godname"))
{
free_string(religion_data[i].godname);
arg3[0] = UPPER(arg3[0]);
religion_data[i].godname = str_dup(arg3);
}
if (!str_cmp(arg2, "chosen"))
{
if ( ( victim = get_char_world( ch, arg3 ) ) == NULL )
{
send_to_char("They aren't here.\n\r", ch );
return;
}
free_string(religion_data[i].chosen);
arg3[0] = UPPER(arg3[0]);
religion_data[i].chosen = str_dup(arg3);
victim->relrank = 5;
}
else
{
do_relset(ch, "");
return;
}
// } // end of the for loop
send_to_char("Done.\n\r", ch);
save_religions();
return;
}
void do_relpromote(CHAR_DATA *ch, char *argument)
{
CHAR_DATA *victim;
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
int i;
char relname[MSL];
char value[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
argument = one_argument(argument, arg1);
argument = one_argument(argument, arg2);
if (arg1[0] == '\0' || arg2[0] == '\0')
{
send_to_char("Syntax : relpromote name rank \n\r", ch);
return;
}
if (ch->relrank != 5)
{
send_to_char("You are not the Chosen of your religion.\n\r", ch);
return;
}
if ( ( victim = get_char_room( ch, arg1 ) ) == NULL )
{
send_to_char( "They aren't here.\n\r", ch );
return;
}
if (ch->god != victim->god)
{
send_to_char("They are not the same religion as you are.\n\r", ch);
return;
}
if (!str_cmp(arg2,"junior"))
{
victim->relrank = 1;
send_to_char("You are now a Junior member of the Religion.",victim);
return;
}
if (!str_cmp(arg2,"senior"))
{
victim->relrank = 2;
send_to_char("You now a Senior member of the Religion.",victim);
return;
}
if (!str_cmp(arg2,"deputy"))
{
victim->relrank = 3;
send_to_char("You now a deputy of the religion.",victim);
return;
}
if (!str_cmp(arg2,"second"))
{
victim->relrank = 4;
send_to_char("You now second in command of the reliigon.",victim);
return;
}
else
{
do_relpromote(ch, "");
return;
}
send_to_char("Done.\n\r", ch);
save_religions();
return;
}