void draw_loose_floor_01_left (ALLEGRO_BITMAP *bitmap, struct pos *p, enum em em, enum vm vm) { ALLEGRO_BITMAP *loose_floor_left_01 = NULL; switch (em) { case DUNGEON: switch (vm) { case CGA: loose_floor_left_01 = dc_loose_floor_left_01; break; case EGA: loose_floor_left_01 = de_loose_floor_left_01; break; case VGA: loose_floor_left_01 = dv_loose_floor_left_01; break; } break; case PALACE: switch (vm) { case CGA: loose_floor_left_01 = pc_loose_floor_left_01; break; case EGA: loose_floor_left_01 = pe_loose_floor_left_01; break; case VGA: loose_floor_left_01 = pv_loose_floor_left_01; break; } break; } if (hgc) loose_floor_left_01 = apply_palette (loose_floor_left_01, hgc_palette); struct coord c; draw_bitmapc (loose_floor_left_01, bitmap, floor_left_coord (p, &c), 0); }
void draw_broken_floor_left (ALLEGRO_BITMAP *bitmap, struct pos *p, enum em em, enum vm vm) { ALLEGRO_BITMAP *broken_floor_left = NULL; switch (em) { case DUNGEON: switch (vm) { case CGA: broken_floor_left = dc_broken_floor_left; break; case EGA: broken_floor_left = de_broken_floor_left; break; case VGA: broken_floor_left = dv_broken_floor_left; break; } break; case PALACE: switch (vm) { case CGA: broken_floor_left = pc_broken_floor_left; break; case EGA: broken_floor_left = pe_broken_floor_left; break; case VGA: broken_floor_left = pv_broken_floor_left; break; } break; } if (vm == VGA) broken_floor_left = apply_hue_palette (broken_floor_left); if (hgc) broken_floor_left = apply_palette (broken_floor_left, hgc_palette); if (peq (p, &mouse_pos)) broken_floor_left = apply_palette (broken_floor_left, selection_palette); struct coord c; draw_bitmapc (broken_floor_left, bitmap, floor_left_coord (p, &c), 0); }
void register_loose_floor (struct pos *p) { struct loose_floor l; l.p = *p; l.i = 0; l.resist = LOOSE_FLOOR_RESISTENCE; l.action = NO_LOOSE_FLOOR_ACTION; l.state = 0; l.cant_fall = con (p)->ext.cant_fall; struct coord c; floor_left_coord (p, &c); l.f.b = get_correct_falling_loose_floor_bitmap (dv_loose_floor_01); l.f.c.room = p->room; l.f.c.x = c.x; l.f.c.y = c.y + 3; l.f.flip = 0; loose_floor = add_to_array (&l, 1, loose_floor, &loose_floor_nmemb, loose_floor_nmemb, sizeof (l)); sort_loose_floors (); }