#include <glib.h> #include <check.h> #include <sys/types.h> #include <sys/time.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <merc.h> #include <recycle.h> #include <player.h> #include "lurfcheck.h" ROOM_INDEX_DATA *create_room1(){ ROOM_INDEX_DATA *pRoomIndex; pRoomIndex = g_new0(ROOM_INDEX_DATA,1); pRoomIndex->vnum = 100; return pRoomIndex; } CHAR_DATA *setup_avatar(int class, int obf_level){ CHAR_DATA *ch; ch = new_char(); clear_char( ch ); ch->pcdata = new_pcdata(); ch->in_room = create_room1(); ch->plane = 1; ch->level = LEVEL_AVATAR; SET_BIT(ch->act,PLR_WIZINVIS); switch (class){ default: break; case CLASS_MAGE: ch->pcdata->discipline[SPHERE_CORRESPONDENCE] = obf_level; break; case CLASS_VAMPIRE: ch->pcdata->disc[DISC_OBFUSCATE] = obf_level; break; case CLASS_SWWF: ch->pcdata->auspice[AUSPICE_RAGABASH] = obf_level; break; } return ch; } CHAR_DATA *setup_mortal(){ CHAR_DATA *ch; ch = new_char(); clear_char( ch ); ch->pcdata = new_pcdata(); ch->in_room = create_room1(); ch->plane = 1; ch->level = LEVEL_MORTAL; return ch; } void tear_down_char(CHAR_DATA *ch) { g_free(ch->in_room); free_pcdata(ch->pcdata); free_char(ch); return; } START_TEST(avatar_unclassed_vanish_test) { CHAR_DATA *unclassed,*mage,*wwf,*vamp; bool fCanSee; mage = setup_avatar(CLASS_MAGE,6); wwf = setup_avatar(CLASS_SWWF,6); vamp = setup_avatar(CLASS_VAMPIRE,6); unclassed = setup_mortal(); fCanSee = can_see(unclassed,mage); fail_unless( fCanSee == FALSE,"Unclassed Avatar seen Mage!"); fCanSee = can_see(unclassed,wwf); fail_unless( fCanSee == FALSE,"Unclassed Avatar seen Werewolf!"); fCanSee = can_see(unclassed,vamp); fail_unless( fCanSee == FALSE,"Unclassed Avatar seen Vampire!"); tear_down_char(mage); tear_down_char(wwf); tear_down_char(vamp); tear_down_char(unclassed); return; } END_TEST START_TEST(avatar_o_immortal_wizinvs_test) { CHAR_DATA *mortal,*avatar; bool fCanSee = FALSE; avatar = setup_avatar(CLASS_MAGE,6); mortal = setup_mortal(); avatar->level = LEVEL_AVATAR; mortal->level = LEVEL_IMPLEMENTOR; SET_BIT(mortal->act,PLR_WIZINVIS); mortal->invis_level = LEVEL_IMPLEMENTOR; avatar->trust = LEVEL_AVATAR; mortal->trust = LEVEL_IMPLEMENTOR; fCanSee = can_see(avatar,mortal); fail_unless( fCanSee == FALSE,"Avatar cannot see mortal!"); tear_down_char(avatar); tear_down_char(mortal); return; } END_TEST Suite *sighttest_suite (void) { Suite *Sight_Test = suite_create ("Lurking Fear"); TCase *tc_core = tcase_create ("Sight"); suite_add_tcase (Sight_Test, tc_core); tcase_add_test (tc_core, avatar_unclassed_vanish_test); tcase_add_test (tc_core, avatar_o_immortal_wizinvs_test); return Sight_Test; }