#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; }