X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameTick.cpp;h=dbd6f0e3977541aba323b8ae2e6668b188aecd7f;hb=a99778b1da1ea16a6a87a00461cd2c4e36ab13a3;hp=4ff18e8b1be9e78e881c231c58c8b421dfcecb0e;hpb=be5fc624393b132863a7d9a97c811bc695b86e5b;p=lugaru.git diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index 4ff18e8..dbd6f0e 100644 --- a/Source/GameTick.cpp +++ b/Source/GameTick.cpp @@ -1472,6 +1472,9 @@ void Game::ProcessDevInput() Person::players.back()->power = Person::players[0]->power; Person::players.back()->speedmult = Person::players[0]->speedmult; + if (Input::isKeyDown(SDL_SCANCODE_RSHIFT)) + Person::players.back()->isplayerfriend = true; + Person::players.back()->loaded = true; } @@ -1585,7 +1588,7 @@ void Game::ProcessDevInput() } /* Decrease size for next object */ - if (Input::isKeyDown(SDL_SCANCODE_DOWN) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) { + if (Input::isKeyDown(SDL_SCANCODE_DOWN) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) { editorsize -= multiplier; if (editorsize < .1) { editorsize = .1; @@ -1593,7 +1596,7 @@ void Game::ProcessDevInput() } /* Increase size for next object */ - if (Input::isKeyDown(SDL_SCANCODE_UP) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) { + if (Input::isKeyDown(SDL_SCANCODE_UP) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) { editorsize += multiplier; } @@ -2190,7 +2193,23 @@ void doAttacks() } if (Person::players[k]->animTarget != rabbitrunninganim && Person::players[k]->animTarget != wolfrunninganim) { if (!Person::players[k]->isPlayerControlled()) { - Person::players[k]->victim = Person::players[0]; + if (Person::players[k]->isPlayerFriend()) { + bool found = false; + for (unsigned k2 = 1; k2 < Person::players.size(); k2++) { + if (k != k2 && + !Person::players[k2]->dead && + Person::players[k2]->aitype == attacktypecutoff) { + Person::players[k]->victim = Person::players[k2]; + found = true; + break; + } + } + if (!found) { + Person::players[k]->attackkeydown = 0; + } + } else { + Person::players[k]->victim = Person::players[0]; + } } //attack key pressed if (Person::players[k]->attackkeydown) { @@ -4484,6 +4503,7 @@ void Game::TickOnceAfter() Person::players[i]->aitype == gethelptype || Person::players[i]->aitype == searchtype) && !Person::players[i]->dead && + !Person::players[i]->isPlayerFriend() && (Person::players[i]->animTarget != sneakattackedanim && Person::players[i]->animTarget != knifesneakattackedanim && Person::players[i]->animTarget != swordsneakattackedanim)) { @@ -4634,7 +4654,7 @@ void Game::TickOnceAfter() } alldead = true; for (unsigned i = 1; i < Person::players.size(); i++) { - if (!Person::players[i]->dead && Person::players[i]->howactive < typedead1) { + if (!Person::players[i]->dead && Person::players[i]->howactive < typedead1 && !Person::players[i]->isPlayerFriend()) { alldead = false; break; }