ObjArray *Chr::getWeapons(bool includeMagic) { ObjArray *list = new ObjArray; if (_weapon1) list->push_back(_weapon1); if (_weapon2) list->push_back(_weapon2); for (uint i = 0; i < _inventory.size(); i++) switch (_inventory[i]->_type) { case Obj::REGULAR_WEAPON: case Obj::THROW_WEAPON: list->push_back(_inventory[i]); break; case Obj::MAGICAL_OBJECT: if (includeMagic) list->push_back(_inventory[i]); break; default: break; } return list; }
ObjArray *Chr::getMagicalObjects() { ObjArray *list = new ObjArray; for (uint i = 0; i < _inventory.size(); i++) if (_inventory[i]->_type == Obj::MAGICAL_OBJECT) list->push_back(_inventory[i]); return list; }
int main(int argc, char **argv) { std::string filename; if (argc == 2) filename = argv[1]; else filename = "image.bmp"; ObjArray objects; ////objects.push_back(new Sphere(vec3(0.0, 0, -20), 4, vec3(1.00, 0.32, 0.36), 1.0, 1.0)); //objects.push_back(new Sphere(vec3(0.0, 0, -20), 4, vec3(0, 0, 0), 1.0, 0.8)); //objects.push_back(new Sphere(vec3(5.0, -1, -15), 2, vec3(0.90, 0.76, 0.46), 1.0, 1)); //objects.push_back(new Sphere(vec3(5.0, 0, -25), 3, vec3(0.35, 0.97, 0.37), 1.0, 1)); //objects.push_back(new Sphere(vec3(-6, 0, -5), 3, vec3(0.9, 0.9, 0.9), 1.0, 1)); //objects.push_back(new Sphere(vec3(0, 5, -15), 1.0, vec3(0.2, 0.32, 0.9), 1.0, 1)); objects.push_back(new Sphere(vec3(-6, 4, 0), 4, vec3(0.7, 0.2, 0.2), 1.0, 0.8)); objects.push_back(new Sphere(vec3(6, 4, 0), 4, vec3(0.2, 0.7, 0.2), 1.0, 0.8)); objects.push_back(new Sphere(vec3(0, 4, 6), 4, vec3(0.2, 0.2, 0.7), 1.0, 0.8)); objects.push_back(new Disk(vec3(0, 0, 0), 40.0, glm::normalize(vec3(0, 1, 0)), vec3(0.2, 0.2, 0.25), 0.2, 1)); lights.push_back(vec3(10, 10, 10)); lights.push_back(vec3(-10, 10, 10)); render(objects, filename.c_str()); for (auto obj : objects) { delete obj; } return EXIT_SUCCESS; }