/*******************************************************************************
* _ | File Name: wedding.c
* / \ _-' | Description: Wedding Code
* _/| \-''- _ / |
* __-' | \ |
* / \ |
* / "o. |o | |
* | \ ; |
* ', |
* \_ __\ | (c) 2000-2001 TAKA
* ''-_ \.// | (c) 2000-2001 The GhostMud Project Team
* / '-____' |
* / | You may use this code under GNU license restriction
* _' The Wolf | 1) This header block remains in the code.
* _-' strikes! | 2) You email me at a_ghost_dancer@excite.com
*_________________________| letting me know you are using this code
* please incluse your name, your mud name
* All rights reserved your mud address, your email and this file
* GhostMud is copyrighted name.
* by TAKA 3) In your help files mention me where appropriate
* IE: help snippets.
*********************************************************************************/
#include <sys/types.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "merc.h"
void do_marry( CHAR_DATA *ch, char *argument)
{
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
CHAR_DATA *victim;
CHAR_DATA *victim2;
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
/* check if marry code is used */
if(USE_MARRY != 1)
{
send_to_char("{RMArriage options are disabled!{x", ch);
return;
}
/* did we name both paries to marry */
if ( arg1[0] == '\0' || arg2[0] == '\0' )
{
send_to_char("{RSyntax: {Wmarry {M<char1> <char2>{x\n\r",ch);
return;
}
/* Do not allow marry to self so names must be different */
if (!strcmp(arg1, arg2))
{
send_to_char("{RYou can not marry anyone to themselves!{x", ch);
return;
}
/* check if they are both available to be married */
if ( ((victim = get_char_world(ch,arg1)) == NULL) ||
((victim2 = get_char_world(ch,arg2)) == NULL))
{
send_to_char("{RBoth characters must be playing!{x\n\r", ch );
return;
}
/* do not marry mobs */
if ( IS_NPC(victim) || IS_NPC(victim2))
{
send_to_char("{RSorry! Mobs can't get married!{x\n\r", ch);
return;
}
/* check if minimum level is set */
if (victim->level < MIN_LEVEL_MARRY || victim2->level < MIN_LEVEL_MARRY)
{
send_to_char("{RThey are not of the proper level to marry.{x\n\r", ch);
return;
}
if (victim->pcdata->spouse[0] == '\0' && victim2->pcdata->spouse[0] == '\0')
{
send_to_char("{GYou proclaim they are married!{x\n\r", ch);
send_to_char("{GYou say 'I do.'{x\n\r", victim);
send_to_char("{GYou say 'I do.'{x\n\r", victim2);
act("{W$n {Gand {W$N {Gare now joined as one!{x\n\r", victim, NULL, victim2, TO_ROOM);
victim->pcdata->spouse = str_dup(victim2->name);
victim2->pcdata->spouse = str_dup(victim->name);
return;
}
else
{
send_to_char("{ROne or the other are already wedded!{x\n\r", ch);
return;
}
return;
}
void do_divorce( CHAR_DATA *ch, char *argument)
{
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
CHAR_DATA *victim;
CHAR_DATA *victim2;
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
/*check names */
if ( arg1[0] == '\0' || arg2[0] == '\0' )
{
send_to_char("{RSyntax: {Wdivorce {M<char1> <char2>{x\n\r",ch);
return;
}
/* make sure both are playing */
if ( ((victim = get_char_world(ch,arg1)) == NULL) ||
((victim2 = get_char_world(ch,arg2)) == NULL))
{
send_to_char("{RBoth characters must be playing!{x\n\r", ch );
return;
}
/* check if either is a mob */
if ( IS_NPC(victim) || IS_NPC(victim2))
{
send_to_char("{RI don't think they're Married to the Mob!{x\n\r", ch);
return;
}
if ( !str_cmp( victim->pcdata->spouse, victim2->name ) && !str_cmp( victim2->pcdata->spouse, victim->name ) )
{
send_to_char("{RYou give them their divorce decree.{x\n\r", ch);
send_to_char("{RYour divorce is final.{x\n\r", victim);
send_to_char("{RYour divorce is final.{x\n\r", victim2);
act("{W$n {Gand {W$N {Gswap divorce decrees, they are no-longer married.{x",victim, NULL, victim2, TO_NOTVICT);
free_string( victim->pcdata->spouse );
free_string( victim2->pcdata->spouse );
victim->pcdata->spouse = str_dup( "" );
victim2->pcdata->spouse = str_dup( "" );
return;
}
else
{
send_to_char("{RThey aren't married, so how can they divorce!{x", ch);
return;
}
}
void do_make_rings ( CHAR_DATA *ch, char *argument )
{
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
CHAR_DATA *victim;
CHAR_DATA *victim2;
char buf [ MAX_STRING_LENGTH ];
OBJ_DATA * ring;
EXTRA_DESCR_DATA * ed;
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
/* check for players playing */
if ( ((victim = get_char_world(ch,arg1)) == NULL) ||
((victim2 = get_char_world(ch,arg2)) == NULL))
{
send_to_char("{RBoth characters must be playing!{x\n\r", ch );
return;
}
switch( victim2->sex )
{
case SEX_FEMALE:
{
ring = create_object( get_obj_index( OBJ_VNUM_DIAMOND_RING ), 0 );
switch( victim->sex )
{
case SEX_FEMALE:
{
sprintf( buf, "{GThis is the beautiful {Wdiamond ring{G given to you by your lovely{x\n\r{Gwife {W%s {Gat your wedding. It signifies your eternal love for eachother.{x\n\r",victim->name );
ring->description = str_dup( buf );
break;
}
case SEX_MALE:
{
sprintf( buf, "{GThis is the beautiful {Wdiamond ring{G given to you by your handsome{x\n\r{Ghusband {W%s {Gat your wedding. It signifies your eternal love for eachother.{x\n\r", victim->name );
ring->description = str_dup( buf );
break;
}
case SEX_NEUTRAL:
default:
{
sprintf( buf, "{GThis is the beautiful {Wdiamond ring{G given to you by your{x\n\r{Gspouse {W%s at your wedding. It signifies your eternal love for eachother.{x\n\r", victim->name );
ring->description = str_dup( buf );
break;
}
}
ed = alloc_perm( sizeof( *ed ) );
ed->keyword = str_dup( "inscription" );
sprintf( buf, "{GThe inscription reads:{x\n\r{MTo my lovely wife, yours forever, {W%s{x\n\r", victim->name );
ed->description = str_dup( buf );
ed->next = ring->extra_descr;
ring->extra_descr = ed;
break;
}
case SEX_MALE:
case SEX_NEUTRAL:
default:
{
ring = create_object( get_obj_index( OBJ_VNUM_DIAMOND_RING ), 0 );
switch( victim->sex )
{
case SEX_FEMALE:
{
sprintf( buf, "{GThis is the ring given to you by your beautifull wife {W%s{x\n\r{Gat your wedding. It signifies your eternal love for eachother.{x\n\r", victim->name );
ring->description = str_dup( buf );
break;
}
case SEX_MALE:
{
sprintf( buf, "{GThis is the ring given to you by your handsome husband {W%s\n\r{Gat your wedding. It signifies your eternal love for eachother.{x\n\r", victim->name );
ring->description = str_dup( buf );
break;
}
case SEX_NEUTRAL:
default:
{
sprintf( buf, "{WThis is the ring given to you by your spouse {W%s{G at\n\ryour wedding. It signifies your eternal love for eachother.{x\n\r", victim->name );
ring->description = str_dup( buf );
break;
}
}
ed = alloc_perm( sizeof( *ed ) );
ed->keyword = str_dup( "inscription" );
ed->next = ring->extra_descr;
ring->extra_descr = ed;
switch( victim->sex )
{
default:
case SEX_MALE:
{
sprintf( buf, "{GThe inscription reads:{x\n\r{MTo my handsome husband... Forever yours, {W%s{x\n\r", victim->name );
ed->description = str_dup( buf );
break;
}
case SEX_NEUTRAL:
{
sprintf( buf,"{GThe inscription reads:{x\n\r{MForever love, {W%s{x\n\r", victim->name );
ed->description = str_dup( buf );
break;
}
}
}
}
obj_to_char ( ring, victim );
return;
}
void do_spouse_chat( CHAR_DATA *ch, char *argument )
{
char buf[MAX_STRING_LENGTH];
CHAR_DATA *spouse;
if(ch->pcdata->spouse == NULL)
{
send_to_char("{RYou are NOT married.{x\n\r", ch);
return;
}
if(argument[0] == '\0' )
{
send_to_char("{RWhat do you wish to tell your other half?{x\n\r", ch);
return;
}
else /* Message to be sent */
{
/*if((spouse = get_char_world(ch, ch->pcdata->spouse)) != NULL)*/
for(spouse = char_list; spouse != NULL; spouse = spouse->next)
{
if (is_name(ch->pcdata->spouse, spouse->name))
{
sprintf(buf, "{GYou say to {W%s{G, '{C%s{G'{x\n\r", ch->pcdata->spouse, argument );
send_to_char(buf, ch);
sprintf(buf, "{W%s {Gsays to you '{C%s{G'{x\n\r", ch->name, argument );
send_to_char(buf, spouse);
return;
}
}
send_to_char("{RYour spouse doesn't seem to be here!{x", ch);
}
}
/* end of file here */
/* wedding code adapted from emperia mud project another ghostmud code base originally 3.0 but now */
/* it has advanced since i've been helping them along these dam comments are so the entire file will load */
/* else i get parse errors*/
/*********************************************************************************************************/