Ejemplo n.º 1
0
//
// Z_Calloc
//
void *(Z_Calloc)(size_t n1, size_t n2, int tag, void **user, __string file, int line)
{
   if(!(n1 *= n2))
      return NULL;

   return memset_near((void __near *)(Z_Malloc)(n1, tag, user, file, line), 0, n1);
}
Ejemplo n.º 2
0
Archivo: seg004.c Proyecto: kees/SDLPoP
// seg004:0601
void __pascal far clear_coll_rooms() {
	memset_near(prev_coll_room, -1, sizeof(prev_coll_room));
	memset_near(curr_row_coll_room, -1, sizeof(curr_row_coll_room));
	memset_near(below_row_coll_room, -1, sizeof(below_row_coll_room));
	memset_near(above_row_coll_room, -1, sizeof(above_row_coll_room));
	// workaround
	memset_near(prev_coll_flags, 0, sizeof(prev_coll_flags));
	memset_near(curr_row_coll_flags, 0, sizeof(curr_row_coll_flags));
	memset_near(below_row_coll_flags, 0, sizeof(below_row_coll_flags));
	memset_near(above_row_coll_flags, 0, sizeof(above_row_coll_flags));
	prev_collision_row = -1;
}
Ejemplo n.º 3
0
// seg001:0156
void __pascal far draw_princess_room_bg() {
	memset_near(table_counts, 0, sizeof(table_counts));
	loadkid();
	if (Char.frame) {
		load_frame_to_obj();
		obj_tilepos = 30;
		add_objtable(0);
	}
	loadshad();
	if (Char.frame) {
		load_frame_to_obj();
		obj_tilepos = 30;
		add_objtable(0);
	}
	redraw_needed_tiles();
	add_foretable(id_chtab_8_princessroom, 2 /*pillar piece*/, 30, 0, 167, blitters_10h_transp, 0);
	princess_room_torch();
	draw_hourglass();
	draw_tables();
}
Ejemplo n.º 4
0
// seg000:09B6
void __pascal far draw_game_frame() {
	short var_2;
	if (need_full_redraw) {
		redraw_screen(0);
		need_full_redraw = 0;
	} else {
		if (different_room) {
			drawn_room = next_room;
			if (tbl_level_type[current_level]) {
				gen_palace_wall_colors();
			}
			redraw_screen(1);
		} else {
			if (need_redraw_because_flipped) {
				need_redraw_because_flipped = 0;
				redraw_screen(0);
			} else {
				memset_near(&table_counts, 0, sizeof(table_counts));
				draw_moving();
				draw_tables();
				if (is_blind_mode) {
					draw_rect(&rect_top, 0);
				}
				if (upside_down) {
					flip_screen(offscreen_surface);
				}
				while (drects_count--) {
					copy_screen_rect(&drects[drects_count]);
				}
				if (upside_down) {
					flip_screen(offscreen_surface);
				}
				drects_count = 0;
			}
		}
	}

	play_next_sound();
	// Note: texts are identified by their total time!
	if (text_time_remaining == 1) {
		// If the text's is about to expire:
		if (text_time_total == 36 || text_time_total == 288) {
			// 36: died on demo/potions level
			// 288: press button to continue
			// In this case, restart the game.
			start_level = 0;
			need_quotes = 1;
			start_game();
		} else {
			// Otherwise, just clear it.
			erase_bottom_text(1);
		}
	} else {
		if (text_time_remaining != 0 && text_time_total != 1188) {
			// 1188: potions level (page/line/word) -- this one does not disappear
			--text_time_remaining;
			if (text_time_total == 288 && text_time_remaining < 72) {
				// 288: press button to continue
				// Blink the message:
				var_2 = text_time_remaining % 12;
				if (var_2 > 3) {
					erase_bottom_text(0);
				} else {
					if (var_2 == 3) {
						display_text_bottom("Press Button to Continue");
						play_sound_from_buffer(sound_pointers[sound_38_blink]); // press button blink
					}
				}
			}
		}
	}
}