Exemple #1
0
/*
 * SpellCast:  User wants to cast given spell.
 */
void SpellCast(spell *sp)
{
   if (GetPlayer()->viewID && (GetPlayer()->viewID != GetPlayer()->id))
   {
     if (!(GetPlayer()->viewFlags & REMOTE_VIEW_CAST))
       return;
   }

   /* If we don't need target, just cast spell */
   if (sp->num_targets == 0)
   {
      RequestCast(sp->obj.id, NULL);
      return;
   }

	if( GetUserTargetID() != INVALID_ID )
	{
    ID id = GetUserTargetID();
		//	User has target already selected.
		if (id == GetPlayer()->id || FindVisibleObjectById(id))
		{
			/* Make temporary list for sending to server */
			temp_obj.id = GetUserTargetID();
			temp_obj.temp_amount = 1;
			RequestCast( sp->obj.id, temp_list );
		}
		else	//	Target cannot be seen.
			GameMessage( GetString( hInst, IDS_TARGETNOTVISIBLEFORCAST ) );
		return;
	}

   /* Get target object from user */
   /* Save spell # */
   use_spell = sp->obj.id;
   
   /* Register callback & select item */
   GameSetState(GAME_SELECT);
   SetSelectCallback(CastCallback);

   if (UserMouselookIsEnabled())
   {
		while (ShowCursor(TRUE) < 0)
			ShowCursor(TRUE);
   }
}
Exemple #2
0
/*
 * ChooseCharacter:  Ask user to choose a character from the given characters.
 */
void ChooseCharacter(Character *characters, WORD num_characters, char *motd,
		     BYTE num_ads, Advertisement *ads, BOOL quickstart)
{
   int retval;
   PickCharStruct s;

   if ((num_characters == 1) && quickstart && (characters->flags != 1))
   {
      char_to_use = characters->id;
      GoToGame(char_to_use);
      return;
   }

   GameSetState(GAME_PICKCHAR);

   s.characters     = characters;
   s.num_characters = num_characters;
   s.motd           = motd;
   s.num_ads        = num_ads;
   s.ads            = ads;

   retval = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_CHARPICK), cinfo->hMain,PickCharDialogProc, (LPARAM) &s);

   CharactersDestroy(characters, num_characters);

   switch (retval)
   {
   case IDCANCEL:
      return;

   case IDOK:
      GoToGame(char_to_use);
      return;

   case IDC_RESET:
      /* Player wants to start a new character */
      RequestCharInfo(); 
      break;
   }
}
Exemple #3
0
/* character is id of character to use */
void GoToGame(ID character)
{
   RequestUseCharacter(character);
   GameSetState(GAME_INIT);  // Start up game interface
}