Example #1
0
TbBool set_pointer_graphic_menu(void)
{
  if (frontend_sprite == NULL)
  {
    WARNLOG("Frontend sprites not loaded, setting pointer to none");
    LbMouseChangeSpriteAndHotspot(NULL, 0, 0);
    return false;
  }
  LbMouseChangeSpriteAndHotspot(&frontend_sprite[1], 0, 0);
  return true;
}
Example #2
0
TbBool set_pointer_graphic_spell(long group_idx, long frame)
{
  long i,x,y;
  struct TbSprite *spr;
  SYNCDBG(8,"Setting to group %d",(int)group_idx);
  if (pointer_sprites == NULL)
  {
    WARNLOG("Pointer sprites not loaded, setting to none");
    LbMouseChangeSpriteAndHotspot(NULL, 0, 0);
    return false;
  }
  if ((group_idx < 0) || (group_idx >= SPELL_POINTER_GROUPS))
  {
    WARNLOG("Group index out of range, setting pointer to none");
    LbMouseChangeSpriteAndHotspot(NULL, 0, 0);
    return false;
  }
  if (is_feature_on(Ft_BigPointer))
  {
    y = 32;
    x = 32;
    i = 8*group_idx + (frame%8);
  } else
  {
    y = 78;
    x = 26;
    i = group_idx;
  }
  spr = &pointer_sprites[40+i];
  SYNCDBG(8,"Activating pointer %d",40+i);
  if ((spr >= pointer_sprites) && (spr < end_pointer_sprites))
  {
    LbMouseChangeSpriteAndHotspot(spr, x/2, y/2);
  } else
  {
    WARNLOG("Sprite %d exceeds buffer, setting pointer to none",(int)i);
    LbMouseChangeSpriteAndHotspot(NULL, 0, 0);
  }
  return true;
}
Example #3
0
void fronttorture_load(void)
{
    struct PlayerInfo *player;
    char *fname;
    unsigned char *ptr;
    long i,k;
    wait_for_cd_to_be_available();
    frontend_load_data_from_cd();
    memcpy(frontend_backup_palette, &frontend_palette, PALETTE_SIZE);
    // Texture blocks memory isn't used here, so reuse it instead of allocating
    ptr = block_mem;
    // Load RAW/PAL background
    fname = prepare_file_path(FGrp_LoData,"torture.raw");
    torture_background = ptr;
    i = LbFileLoadAt(fname, ptr);
    ptr += i;
    fname = prepare_file_path(FGrp_LoData,"torture.pal");
    torture_palette = ptr;
    i = LbFileLoadAt(fname, ptr);
    ptr += i;

    // Load DAT/TAB sprites for doors
    k = 0;
    {
        fname = prepare_file_fmtpath(FGrp_LoData,"door%02d.dat",k+1);
        i = LbFileLoadAt(fname, ptr);
        doors[k].data = ptr;
        ptr += i;
        doors[k].data_end = ptr;

        fname = prepare_file_fmtpath(FGrp_LoData,"door%02d.tab",k+1);
        i = LbFileLoadAt(fname, ptr);
        doors[k].sprites = (struct TbSprite *)ptr;
        ptr += i;
        doors[k].sprites_end =(struct TbSprite *) ptr;
    }
    ptr = &game.land_map_start;
    for (k=1; k < 8; k++)
    {
        fname = prepare_file_fmtpath(FGrp_LoData,"door%02d.dat",k+1);
        i = LbFileLoadAt(fname, ptr);
        doors[k].data = ptr;
        ptr += i;
        doors[k].data_end = ptr;
        fname = prepare_file_fmtpath(FGrp_LoData,"door%02d.tab",k+1);
        i = LbFileLoadAt(fname, ptr);
        doors[k].sprites = (struct TbSprite *)ptr;
        ptr += i;
        doors[k].sprites_end = (struct TbSprite *)ptr;
    }
    ptr = poly_pool;
    k = 8;
    {
        fname = prepare_file_fmtpath(FGrp_LoData,"door%02d.dat",k+1);
        i = LbFileLoadAt(fname, ptr);
        doors[k].data = ptr;
        ptr += i;
        doors[k].data_end = ptr;
        fname = prepare_file_fmtpath(FGrp_LoData,"door%02d.tab",k+1);
        i = LbFileLoadAt(fname, ptr);
        doors[k].sprites = (struct TbSprite *)ptr;
        ptr += i;
        doors[k].sprites_end = (struct TbSprite *)ptr;
    }

    if ( LbDataLoadAll(torture_load_files) )
        ERRORLOG("Unable to load torture load files");
    LbSpriteSetupAll(setup_torture_sprites);
    frontend_load_data_reset();
    memcpy(&frontend_palette, torture_palette, PALETTE_SIZE);
    torture_state.action = 0;
    torture_door_selected = -1;
    torture_end_sprite = -1;
    torture_sprite_direction = 0;
    LbMemorySet(door_sound_state, 0, TORTURE_DOORS_COUNT*sizeof(struct DoorSoundState));

    player = get_my_player();
    if (player->victory_state == VicS_WonLevel)
    {
        LbMouseChangeSpriteAndHotspot(&fronttor_sprites[1], 0, 0);
    } else
    {
        LbMouseChangeSpriteAndHotspot(0, 0, 0);
    }
    torture_left_button = 0;
}
Example #4
0
TbBool set_pointer_graphic(long ptr_idx)
{
  long x,y;
  struct TbSprite *spr;
  SYNCDBG(8,"Setting to %d",(int)ptr_idx);
  if (pointer_sprites == NULL)
  {
    WARNLOG("Pointer sprites not loaded, setting to none");
    LbMouseChangeSpriteAndHotspot(NULL, 0, 0);
    return false;
  }
  switch (ptr_idx)
  {
  case   0:
  case   1:
  case   2:
  case   4:
  case  15:
      spr = &pointer_sprites[ptr_idx];
      x = 12; y = 15;
      break;
  case   3:
      spr = &pointer_sprites[ptr_idx];
      x = 17; y = 29;
      break;
  case   5:
  case   6:
  case   7:
  case   8:
  case   9:
  case  10:
  case  11:
  case  12:
  case  13:
  case  14:
      spr = &pointer_sprites[ptr_idx];
      x = 12; y = 38;
      break;
  case  16:
  case  17:
  case  18:
  case  19:
  case  20:
  case  21:
  case  22:
  case  23:
  case  24:
      spr = &pointer_sprites[ptr_idx];
      x = 20; y = 20;
      break;
  case  25:
  case  26:
  case  27:
  case  28:
  case  29:
  case  30:
  case  31:
  case  32:
  case  33:
  case  34:
  case  35:
  case  36:
  case  37:
  case  38:
      spr = &pointer_sprites[ptr_idx];
      x = 12; y = 38;
      break;
  case  39:
  // 40..144 are spell pointers
  case  47:
      spr = &pointer_sprites[ptr_idx];
      x = 12; y = 15;
      break;
  case  96:
  case  97:
  case  98:
  case  99:
  case 100:
  case 101:
  case 102:
  case 103:
      spr = &pointer_sprites[ptr_idx];
      x = 12; y = 15;
      break;
  default:
    WARNLOG("Unrecognized Mouse Pointer index, %d",ptr_idx);
    LbMouseChangeSpriteAndHotspot(NULL, 0, 0);
    return false;
  }
  if ((spr >= pointer_sprites) && (spr < end_pointer_sprites))
  {
    LbMouseChangeSpriteAndHotspot(spr, x, y);
  } else
  {
    WARNLOG("Sprite %d exceeds buffer, setting pointer to none",(int)ptr_idx);
    LbMouseChangeSpriteAndHotspot(NULL, 0, 0);
  }
  return true;
}
Example #5
0
TbBool set_pointer_graphic_none(void)
{
  LbMouseChangeSpriteAndHotspot(NULL, 0, 0);
  return true;
}