Person::players[pnum]->DoMipmaps();
}
+static void list_clothes(int pnum)
+{
+ printf("Clothes from player %d:\n", pnum);
+ for (int i = 0; i < Person::players[pnum]->numclothes; i++) {
+ printf("%s (%f %f %f)\n",
+ Person::players[pnum]->clothes[i],
+ Person::players[pnum]->clothestintr[i],
+ Person::players[pnum]->clothestintg[i],
+ Person::players[pnum]->clothestintb[i]);
+ }
+}
+
/* Console commands themselves */
void ch_quit(const char*)
fclose(tfile);
}
-void ch_cellar(const char*)
-{
- Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurDarko.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
-}
-
void ch_tint(const char* args)
{
sscanf(args, "%f%f%f", &tintr, &tintg, &tintb);
}
}
+void ch_clotheslist(const char*)
+{
+ list_clothes(0);
+}
+
+void ch_clotheslistnear(const char*)
+{
+ int closest = findClosestPlayer();
+ if (closest >= 0) {
+ list_clothes(closest);
+ }
+}
+
void ch_belt(const char*)
{
Person::players[0]->skeleton.clothes = !Person::players[0]->skeleton.clothes;
void ch_funnybunny(const char*)
{
- Person::players[0]->creature = rabbittype;
- Person::players[0]->skeletonLoad(true);
- Person::players[0]->scale = .2;
+ Person::players[0]->changeCreatureType(rabbittype);
Person::players[0]->headless = 0;
- Person::players[0]->damagetolerance = 200;
set_proportion(0, "1 1 1 1");
}
void ch_wolfie(const char*)
{
- Person::players[0]->creature = wolftype;
- Person::players[0]->skeletonLoad();
- Person::players[0]->scale = .23;
- Person::players[0]->damagetolerance = 300;
+ Person::players[0]->changeCreatureType(wolftype);
set_proportion(0, "1 1 1 1");
}
-void ch_wolf(const char*)
-{
- Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurWolfGrey.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
-}
-
-void ch_snowwolf(const char*)
-{
- Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurWolfSnow.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
-}
-
-void ch_darkwolf(const char*)
-{
- Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurWolfDark.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
-}
-
void ch_lizardwolf(const char*)
{
Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurWolfLizard.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
}
-void ch_white(const char*)
-{
- Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurWhite.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
-}
-
-void ch_brown(const char*)
+void ch_darko(const char*)
{
- Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurBrown.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
-}
-
-void ch_black(const char*)
-{
- Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurBlack.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
+ Person::players[0]->skeleton.drawmodel.textureptr.load("Textures/FurDarko.jpg", 1, &Person::players[0]->skeleton.skinText[0], &Person::players[0]->skeleton.skinsize);
}
void ch_sizemin(const char*)
strcat(Hotspot::hotspots.back().text, "\n");
}
-void ch_dialogue(const char* args)
+void ch_dialog(const char* args)
{
int type;
char buf1[32];
Dialog::whichdialogue = Dialog::dialogs.size();
}
-void ch_fixdialogue(const char* args)
+void ch_fixdialog(const char* args)
{
char buf1[32];
- int whichdi;
+ int whichdlg = 0;
- sscanf(args, "%d %31s", &whichdi, buf1);
+ sscanf(args, "%d %31s", &whichdlg, buf1);
std::string filename = std::string("Dialogues/") + buf1 + ".txt";
- Dialog::dialogs[whichdi] = Dialog(Dialog::dialogs[whichdi].type, filename);
+ Dialog::dialogs[whichdlg] = Dialog(Dialog::dialogs[whichdlg].type, filename);
}
void ch_fixtype(const char* args)
{
- int dlg;
- sscanf(args, "%d", &dlg);
- Dialog::dialogs[0].type = dlg;
+ int whichdlg = 0;
+ int type = 0;
+ sscanf(args, "%d %d", &whichdlg, &type);
+ Dialog::dialogs[whichdlg].type = type;
}
void ch_fixrotation(const char*)
Dialog::currentDialog().participantyaw[playerId] = Person::players[playerId]->yaw;
}
-void ch_ddialogue(const char*)
+void ch_ddialog(const char* args)
{
- if (!Dialog::dialogs.empty()) {
+ if (Dialog::dialogs.empty() || Dialog::inDialog()) {
+ return;
+ }
+
+ int dlg = -1;
+ sscanf(args, "%d", &dlg);
+ if (dlg == -1) {
+ // Remove last entry
Dialog::dialogs.pop_back();
+ return;
}
+
+ if (dlg >= int(Dialog::dialogs.size())) {
+ // Invalid index, abort
+ return;
+ }
+
+ // Erase given index, higher indexes will be decreased by 1
+ Dialog::dialogs.erase(Dialog::dialogs.begin() + dlg);
}
void ch_dhs(const char*)
Person::players[0]->metallow = 1;
Person::players[0]->power = 1;
Person::players[0]->speedmult = 1;
- if (Person::players[0]->creature == wolftype) {
- Person::players[0]->scale = .23;
- } else if (Person::players[0]->creature == rabbittype) {
- Person::players[0]->scale = .2;
- }
+ Person::players[0]->scale = PersonType::types[Person::players[0]->creature].defaultScale;
Person::players[0]->setProportions(1, 1, 1, 1);