All pastes #631085 Raw Edit

Someone

public cpp v1 · immutable
#631085 ·published 2007-07-23 18:23 UTC
rendered paste body
#include <allegro.h>#include <fstream>#include <string>#include <sstream>using namespace std;volatile bool close_button_pressed = false;int playerx = 5;int playery = 5;int tilex = 32;int tiley = 32;int gamespeed = 12;int mapsizex = 20;int mapsizey = 11;char map[20][12];BITMAP *buffer;BITMAP *mainhud;BITMAP *grass;BITMAP *water;BITMAP *lava;BITMAP *tree;BITMAP *deadtree;void close_button_handler() {     close_button_pressed = true;     simulate_keypress(KEY_ESC);}END_OF_FUNCTION(close_button_handler);void load_allegro() {    allegro_init();    install_keyboard();    install_timer();        LOCK_FUNCTION(close_button_handler);        set_color_depth(16);    set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640,480,0,0);    set_window_title("MMORPG Client");     set_close_button_callback(close_button_handler);}void load_map(char mapx, char mapy) {     ostringstream out;     out << "maps/map" << mapx << mapy << ".txt";     string mappath = out.str();     ifstream mapfile(mappath.c_str());     int y = 1;     string mapline;     if (mapfile.is_open()) {        while (!mapfile.eof() && y <= 12) {            getline(mapfile,mapline);            for(int i = 1; i <= 20; i++) {                    map[i][y] = mapline[i];                    }            y++;        }        mapfile.close();     }}void draw_tiles() {     for(int x=0; x <= mapsizex; x++) {         for(int y=0; y <= mapsizey; y++) {             if(map[x][y] == "g") {                  draw_sprite(buffer, grass, x*tilex, y*tiley);             } else if (map[x][y] == "t") {                 draw_sprite(buffer, grass, x*tilex, y*tiley);                   draw_sprite(buffer, tree, x*tilex, y*tiley);                                          } else if (map[x][y] == "d") {                 draw_sprite(buffer, grass, x*tilex, y*tiley);                   draw_sprite(buffer, deadtree, x*tilex, y*tiley);                                          }         }          }}void draw_hud() {     draw_sprite(buffer, mainhud, 1, 384);    }int main(int argc, char *argv[]) {    load_allegro();    BITMAP *playerpic;    playerpic = load_bitmap("data/images/players/player.bmp", NULL);    grass = load_bitmap("data/images/ground/grass.bmp", NULL);    water = load_bitmap("data/images/ground/water.bmp", NULL);    lava = load_bitmap("data/images/ground/lava.bmp", NULL);    tree = load_bitmap("data/images/plants/tree.bmp", NULL);    deadtree = load_bitmap("data/images/plants/deadtree.bmp", NULL);    mainhud = load_bitmap("data/images/gui/hud.bmp", NULL);    buffer = create_bitmap(640,480);    load_map("1","1"); 	while(!close_button_pressed) {		if(key[KEY_RIGHT] && map[playery][playerx+1] == "g") { 			if(playerx < 19) { playerx++; }			clear_keybuf();		}		else if(key[KEY_LEFT]) {			if(playerx >= 1 && map[playery][playerx-1] == "g") { playerx--; }			clear_keybuf();		}		else if(key[KEY_UP]) {			if(playery >= 1 && map[playery-1][playerx] == "g") { playery--; }			clear_keybuf();		}		else if(key[KEY_DOWN] && map[playery+1][playerx] == "g") {			if(playery <= 13) { playery++; }			clear_keybuf();        }		draw_tiles();		draw_hud();		draw_sprite(buffer, playerpic, playerx*tilex, playery*tiley);		blit(buffer, screen, 0,0,0,0,640,480);		clear_bitmap(buffer);        readkey();        	}    release_screen();	destroy_bitmap(playerpic);	destroy_bitmap(buffer);	return 0;}END_OF_MAIN()