]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameTick.cpp
First refactoring of weapon dropping inside Weapon class
[lugaru.git] / Source / GameTick.cpp
index e1851c65da2fc128daeb616d95c0142d4268beb5..4235adc5630cc425e42c0808c41c33bb36fac4f2 100644 (file)
@@ -1,5 +1,6 @@
 /*
 Copyright (C) 2003, 2010 - Wolfire Games
+Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
 
 This file is part of Lugaru.
 
@@ -124,7 +125,7 @@ extern float damagedealt;
 extern int maptype;
 extern int editoractive;
 extern int editorpathtype;
-extern TGAImageRec texture;
+extern ImageRec texture;
 
 extern float hostiletime;
 
@@ -387,10 +388,7 @@ bool Game::AddClothes(const char *fileName, GLubyte *array)
 {
     LOGFUNC;
     //Load Image
-    unsigned char fileNamep[256];
-    CopyCStringToPascal(fileName, fileNamep);
-    bool opened;
-    opened = upload_image(fileNamep, 1);
+    bool opened = upload_image(fileName);
 
     float alphanum;
     //Is it valid?
@@ -473,7 +471,7 @@ static void cmd_dispatch(const string cmd)
 }
 
 /********************> Tick() <*****/
-extern bool save_image(const char * fname);
+extern bool save_screenshot(const char * fname);
 void Screenshot (void)
 {
     char filename[1024];
@@ -486,7 +484,7 @@ void Screenshot (void)
     mkdir("Screenshots");
 #endif
 
-    save_image(filename);
+    save_screenshot(filename);
 }
 
 void Game::SetUpLighting()
@@ -6578,15 +6576,10 @@ void Game::Tick()
                         if (Person::players[i]->weaponactive != -1 && Person::players[i]->aitype == playercontrolled) {
                             if (Person::players[i]->isCrouch() || Person::players[i]->animTarget == sneakanim) {
                                 Person::players[i]->throwtogglekeydown = 1;
-                                weapons[Person::players[i]->weaponids[0]].owner = -1;
-                                weapons[Person::players[i]->weaponids[0]].velocity = Person::players[i]->velocity * .2;
-                                if (weapons[Person::players[i]->weaponids[0]].velocity.x == 0)
-                                    weapons[Person::players[i]->weaponids[0]].velocity.x = .1;
-                                weapons[Person::players[i]->weaponids[0]].tipvelocity = weapons[Person::players[i]->weaponids[0]].velocity;
-                                weapons[Person::players[i]->weaponids[0]].missed = 1;
-                                weapons[Person::players[i]->weaponids[0]].freetime = 0;
-                                weapons[Person::players[i]->weaponids[0]].firstfree = 1;
-                                weapons[Person::players[i]->weaponids[0]].physics = 1;
+                                XYZ tempVelocity = Person::players[i]->velocity * .2;
+                                if (tempVelocity.x == 0)
+                                    tempVelocity.x = .1;
+                                weapons[Person::players[i]->weaponids[0]].drop(tempVelocity, tempVelocity, false);
                                 Person::players[i]->num_weapons--;
                                 if (Person::players[i]->num_weapons) {
                                     Person::players[i]->weaponids[0] = Person::players[i]->weaponids[Person::players[i]->num_weapons];