#include "row.h"
#include <iostream>

#ifndef ROW_CC
#define ROW_CC

int row::created = 0;
int row::deleted = 0;

row::row(int l) {
  for(int i = 0; i < l; i++) {
    sprites.push_back(NULL);
  }
  created++;
}

void row::extend(int a) {
  if(a == 0) return;
  if(a < 0) {
    for(int i = a; i < 0; i++) {
      sprites.insert(sprites.begin(), NULL);
    }
  } else {
    for(int i = 0; i < a; i++) {
      sprites.push_back(NULL);
    }
  }
}
void row::addspace(int x) {
  if(x < 0 || x >= sprites.size()) return;
  sprites.insert(sprites.begin() + x, NULL);
}
void row::remspace(int x) {
  if(x < 0 || x >= sprites.size()) return;
  sprites.erase(sprites.begin() + x);
}

sprite* row::spriteat(int x) {
  if(!inbounds(x)) return NULL;
  return sprites[x];
}
void row::setsprite(int x, sprite* s) {
  if(!inbounds(x)) return;
  sprites[x] = s;
}
bool row::inbounds(int x) {
  if(x < sprites.size() && x >= 0) return true;
  return false;
}

int row::print() {
	using std::cout;
	using std::endl;
	if(created == 0 && deleted == 0) return 0;
	cout << "--row--" << endl;
	cout << "  Created: " << created << endl;
	cout << "  Deleted: " << deleted << endl;
	cout << endl;
	return created != deleted;
}

row::~row() {
  deleted++;
}
#endif
