/*************************************************************************** * Port of ROM 2.4b6 to Windows by TAKA * * * * I call this "NEW ROM" Ghost since it has changed extensively. * * This version runs as a native console application * * windows NT 4 service patch 3, Windows 95 software version release 2 * * and windows 98. * * * * Ghost to my knowledge is the first ROM port to windows to be 100% * * stable. * * * * I compiled it using MS Vissual C++ 5.0 * * THE FOLLOWING MODULES WERE MODIFIED TO ALLOW STABLE WINDOWS OPERATION * * - merc.h * * - comm.c * * - db.c * * BE SURE TO INCLUDE IN THE LINK LIST * * - wsock32.lib * * * * Other source files are straight from the ROM24b6 distribution. * * * * ALL I ASK FOR MY WORK: * * 1) Is that you do not remove or modify this comment block. * * 2) You must state on the entry screen that this is GHOST a ROM code * * base designed and ported to windows by TAKA . * * 3) The latest version number from you source listing must be must be * * in the help file as well as my name TAKA * * and my email a_ghost_dancer@excite.com * * < < Simplist way is to leave my help entry supplied > > * * 4) You must abid by all other ROM and MERC licences * * 5) Finally any improvements or snippets you make please forward them * * to me so we can imcorperate them into the latest version. I will * * post all snippets with the authors named and credited. * * * * Last thank you to all the ROM amd MERC folks for this wounderful code * * base know as ROM. * * * * TAKA * * a_ghost_dancer@excite.com * * * *************************************************************************** *************************************************************************** * 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. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * **************************************************************************/ /*************************************************************************** * ROM 2.4 is copyright 1993-1996 Russ Taylor * * ROM has been brought to you by the ROM consortium * * Russ Taylor (rtaylor@pacinfo.com) * * Gabrielle Taylor (gtaylor@pacinfo.com) * * Brian Moore (rom@rom.efn.org) * * By using this code, you have agreed to follow the terms of the * * ROM license, in the file Rom24/doc/rom.license * ***************************************************************************/ #if defined(macintosh) #include <types.h> #else #include <sys/types.h> #include <sys/time.h> #endif #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #include "merc.h" extern void do_save (CHAR_DATA * ch, char *argument); void do_remor (CHAR_DATA * ch, char *argument) { send_to_char ("If you want to REMORT, you must spell it out.\n\r", ch); return; } void do_remort (CHAR_DATA * ch, char *argument) { DESCRIPTOR_DATA *d; char strsave[MAX_INPUT_LENGTH], player_name[MAX_INPUT_LENGTH]; char player_pwd[MAX_STRING_LENGTH], buf[MAX_STRING_LENGTH]; int player_incarnations = 0; if (IS_NPC (ch) || (d = ch->desc) == NULL) return; if ((ch->level < LEVEL_HERO && !IS_SET (ch->act, PLR_REMORT)) || (IS_SET (ch->act, PLR_REMORT) && (ch->level <= 10))) { sprintf (buf, "You must be level %d or already have remorted to remort.\n\rAnd you can not remort after level 10.\n\r", LEVEL_HERO); send_to_char (buf, ch); return; } if (ch->pcdata->confirm_remort) { if (argument[0] != '\0') { send_to_char ("Remort status removed.\n\r", ch); ch->pcdata->confirm_remort = FALSE; return; } else { /* * Get ready to delete the pfile, send a nice informational message. * Save the pfile as .rmt first. */ do_save (ch, ""); sprintf (strsave, "%s%s", PLAYER_DIR, capitalize (ch->name)); stop_fighting (ch, TRUE); send_to_char ("You have chosen to remort. You will now be dropped in at the race\n\r", ch); send_to_char ("selection section of character creation, and will be allowed to choose from\n\r", ch); send_to_char ("a wider selection of races and classes.\n\r\n\r", ch); send_to_char ("In the unlikely event that you are disconnected or the MUD\n\r", ch); send_to_char ("crashes while you are creating your character, create a new character\n\r", ch); send_to_char ("as normal and write a note to 'immortal'.\n\r", ch); send_to_char ("\n\r[Hit Enter to Continue]\n\r", ch); wiznet ("$N has remorted.", ch, NULL, 0, 0, 0); /* * I quote: * "After extract_char the ch is no longer valid!" */ sprintf (player_name, "%s", capitalize (ch->name)); sprintf (player_pwd, "%s", ch->pcdata->pwd); if (ch->level == LEVEL_HERO) player_incarnations = ++ch->pcdata->incarnations; extract_char (ch, TRUE); /* * Delete the pfile, but don't boot the character. * Instead, do a load_char_obj to get a new ch, * saving the password, and the incarnations. Then, * set the PLR_REMORT bit and drop the player in at * CON_BEGIN_REMORT. */ unlink (strsave); load_char_obj (d, player_name); d->character->pcdata->pwd = str_dup (player_pwd); d->character->pcdata->incarnations = player_incarnations; if ((!IS_SET (ch->act, PLR_REMORT)) && (ch->level == LEVEL_HERO)) SET_BIT (ch->act, PLR_REMORT); else SET_BIT (ch->act, PLR_REMORT2); d->connected = CON_BEGIN_REMORT; return; } } if (argument[0] != '\0') { send_to_char ("Just type remort. No argument.\n\r", ch); return; } send_to_char ("Type remort again to confirm this command.\n\r", ch); send_to_char ("WARNING: This command is irreversible.\n\r", ch); send_to_char ("Typing remort with an argument will undo remort status.\n\r", ch); ch->pcdata->confirm_remort = TRUE; wiznet ("$N is contemplating remorting.", ch, NULL, 0, 0, get_trust (ch)); }