Ejemplo n.º 1
0
void draw_resurrect_creature(struct GuiButton *gbtn)
{
    unsigned short flg_mem;
    flg_mem = lbDisplay.DrawFlags;
    lbDisplay.DrawFlags = Lb_SPRITE_TRANSPAR4;
    LbDrawBox(gbtn->scr_pos_x, gbtn->scr_pos_y, gbtn->width, gbtn->height, 0);
    LbTextSetFont(winfont);
    LbTextSetWindow(gbtn->scr_pos_x, gbtn->scr_pos_y, gbtn->width, gbtn->height);
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    int i;
    i = selected_resurrect_creature(dungeon, gbtn);
    int tx_units_per_px;
    tx_units_per_px = ((gbtn->height*22/26) * 16) / LbTextLineHeight();
    if (i != -1)
    {
        struct CreatureStorage *cstore;
        cstore = &dungeon->dead_creatures[i];
        struct CreatureData *crdata;
        crdata = creature_data_get(cstore->model);
        lbDisplay.DrawFlags = Lb_TEXT_HALIGN_LEFT;
        LbTextDrawResizedFmt(0, 0, tx_units_per_px, " %s", get_string(crdata->namestr_idx));
        lbDisplay.DrawFlags = Lb_TEXT_HALIGN_RIGHT;
        LbTextDrawResizedFmt(0, 0, tx_units_per_px, "%s %d ", get_string(GUIStr_MnuLevel), (int)(cstore->explevel + 1));
    }
    lbDisplay.DrawFlags = flg_mem;
}
Ejemplo n.º 2
0
void update_chosen_tendencies(void)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    game.my.creatures_tend_imprison = ((dungeon->creature_tendencies & 0x01) != 0);
    game.my.creatures_tend_flee = ((dungeon->creature_tendencies & 0x02) != 0);
}
Ejemplo n.º 3
0
void maintain_resurrect_creature_select(struct GuiButton *gbtn)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    long listitm_idx;
    listitm_idx = resurrect_creature_scroll_offset + gbtn->btype_value;
    set_flag_byte(&gbtn->flags, LbBtnFlag_Enabled, (listitm_idx < dungeon->dead_creatures_count));
}
Ejemplo n.º 4
0
void select_transfer_creature_down(struct GuiButton *gbtn)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    if (transfer_creature_scroll_offset < dungeon->num_active_creatrs-transfer_creature_items_visible+1) {
        transfer_creature_scroll_offset++;
    }
}
Ejemplo n.º 5
0
void select_resurrect_creature_down(struct GuiButton *gbtn)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    if (resurrect_creature_scroll_offset < dungeon->dead_creatures_count-resurrect_creature_items_visible+1) {
        resurrect_creature_scroll_offset++;
    }
}
Ejemplo n.º 6
0
void maintain_transfer_creature_select(struct GuiButton *gbtn)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    long listitm_idx;
    listitm_idx = transfer_creature_scroll_offset + gbtn->btype_value;

    set_flag_byte(&gbtn->flags, LbBtnFlag_Enabled,  (listitm_idx < dungeon->num_active_creatrs));
}
Ejemplo n.º 7
0
void select_resurrect_creature(struct GuiButton *gbtn)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    int i;
    i = selected_resurrect_creature(dungeon, gbtn);
    if (i != -1)
    {
        struct CreatureStorage *cstore;
        cstore = &dungeon->dead_creatures[i];
        struct Packet *pckt;
        pckt = get_packet(my_player_number);
        set_packet_action(pckt, PckA_ResurrectCrtr, dungeon_special_selected, dungeon->owner | (cstore->model << 4) | (cstore->explevel << 12));
        turn_off_menu(GMnu_RESURRECT_CREATURE);
    }
}
Ejemplo n.º 8
0
void select_transfer_creature(struct GuiButton *gbtn)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    struct Thing *thing;
    thing = INVALID_THING;
    int listitm_idx;
    listitm_idx = selected_transfer_creature(dungeon, gbtn);
    if (listitm_idx != -1)
    {
        thing = get_player_list_nth_creature_of_model(dungeon->creatr_list_start, 0, listitm_idx);
    }
    if (thing_exists(thing))
    {
        struct Packet *pckt;
        pckt = get_packet(my_player_number);
        set_packet_action(pckt, PckA_TransferCreatr, dungeon_special_selected, thing->index);
        turn_off_menu(GMnu_TRANSFER_CREATURE);
    }
}
Ejemplo n.º 9
0
void draw_transfer_creature(struct GuiButton *gbtn)
{
    unsigned long flgmem;
    if (gbtn == NULL)
      return;
    SYNCDBG(7,"Starting");
    flgmem = lbDisplay.DrawFlags;
    lbDisplay.DrawFlags = Lb_SPRITE_TRANSPAR4;
    LbTextSetFont(winfont);
    LbDrawBox(gbtn->scr_pos_x, gbtn->scr_pos_y,
        gbtn->width, gbtn->height, 0); // The 0 means black color
    LbTextSetWindow(gbtn->scr_pos_x, gbtn->scr_pos_y,
        gbtn->width, gbtn->height);
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    struct Thing *thing;
    thing = INVALID_THING;
    int listitm_idx;
    listitm_idx = selected_transfer_creature(dungeon, gbtn);
    int tx_units_per_px;
    tx_units_per_px = ((gbtn->height*22/26) * 16) / LbTextLineHeight();
    if (listitm_idx != -1)
    {
        thing = get_player_list_nth_creature_of_model(dungeon->creatr_list_start, 0, listitm_idx);
    }
    if (!thing_is_invalid(thing))
    {
        const struct CreatureControl *cctrl;
        cctrl = creature_control_get_from_thing(thing);
        const struct CreatureData *crdata;
        crdata = creature_data_get_from_thing(thing);
        lbDisplay.DrawFlags = Lb_TEXT_HALIGN_LEFT;
        LbTextDrawResizedFmt(0, 0, tx_units_per_px, " %s", get_string(crdata->namestr_idx));
        lbDisplay.DrawFlags = Lb_TEXT_HALIGN_RIGHT;
        LbTextDrawResizedFmt(0, 0, tx_units_per_px, "%s %d ", get_string(GUIStr_MnuLevel), (int)(cctrl->explevel+1));
    }
    lbDisplay.DrawFlags = flgmem;
}
Ejemplo n.º 10
0
void maintain_transfer_creature_scroll(struct GuiButton *gbtn)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    int count;
    count = dungeon->num_active_creatrs;
    if (transfer_creature_scroll_offset > count-transfer_creature_items_visible+1)
    {
        if (count > transfer_creature_items_visible) {
            transfer_creature_scroll_offset = count-transfer_creature_items_visible+1;
        } else {
            transfer_creature_scroll_offset = 0;
        }
    }
    if (gbtn->btype_value == 1)
    {
        set_flag_byte(&gbtn->flags, LbBtnFlag_Enabled, (transfer_creature_scroll_offset > 0));
    }
    else
    {
        set_flag_byte(&gbtn->flags, LbBtnFlag_Enabled, (transfer_creature_scroll_offset < count-transfer_creature_items_visible+1));
    }
}
Ejemplo n.º 11
0
void maintain_resurrect_creature_scroll(struct GuiButton *gbtn)
{
    struct Dungeon *dungeon;
    dungeon = get_my_dungeon();
    int count;
    count = dungeon->dead_creatures_count;
    if (resurrect_creature_scroll_offset >= count-resurrect_creature_items_visible+1)
    {
        if (count+1 > resurrect_creature_items_visible) {
            resurrect_creature_scroll_offset = count-resurrect_creature_items_visible+1;
        } else {
            resurrect_creature_scroll_offset = 0;
        }
    }
    if (gbtn->btype_value == 1)
    {
        set_flag_byte(&gbtn->flags, LbBtnFlag_Enabled, (resurrect_creature_scroll_offset > 0));
    }
    else
    {
        set_flag_byte(&gbtn->flags, LbBtnFlag_Enabled, (resurrect_creature_scroll_offset < count-resurrect_creature_items_visible+1));
    }
}