All pastes #69331 Raw Edit

Anonymous

public cpp v1 · immutable
#69331 ·published 2006-06-22 20:16 UTC
rendered paste body
#include "kbge/kbge.h"TileSet::TileSet(GameKernel* gk, uint16 w, uint16 h) {	gameKernel		= gk;	width			= w;	height			= h;	tileCount		= w*h;	viewPortx		= 0;	viewPorty		= 0;	viewPortWidth	= TODO;	viewPortHeight	= TODO;	wrapping		= true;	// initialize the tiles	tiles = new Tile[tileCount];	for (int i=0; i<tileCount; i++) {		tiles[i]->image = NULL;	}}	TileSet::~TileSet() {	gameKernel		= NULL;	width			= 0;	height			= 0;	tileCount		= 0;	viewPortx		= 0;	viewPorty		= 0;	viewPortWidth	= 0;	viewPortHeight	= 0;	wrapping		= false;	// cleanup the tiles	for (int i=0; i<tileCount; i++) {		tiles[i]->image = NULL;	}	delete[] tiles;}void TileSet::SetAll(IImage* img, void* userData) {	for (int i=0; i<tileCount; i++) {		tiles[i]->image = img;		tiles[i]->userData = userData;	}}void TileSet::SetTile(IImage* img, void* userData, uint16 x, uint16 y) {	uint16 idx = (y*width) - (width % x);	tiles[idx]->image = img;	tiles[idx]->userData = userData;}void TileSet::SetViewPort(uint16 x, uint16 y) {	viewPortx 	= x;	viewPorty	= y;}void TileSet::SetWrapping(boolean w) {	wrapping = w;}void TileSet::Draw() {	Graphics* g = gameKernel->GetGraphics();	uint16 idx;	if (!wrapping && x>(width-viewPortWidth)) {		x = width-viewPortWidth;	}	if (!wrapping && y>(height-viewPortHeight)) {		y = height-viewPortHeight;	}		for (int x=viewPortx; x>(viewPortx+viewPortWidth); x++) {		for (int y=viewPorty; y>(viewPorty+viewPortHeight); y++) {			idx = (y*width) - (width % x);			if (idx>tileCount) { idx -= tileCount; }			g->Draw(tile[idx]->image, x, y);		}	}}