From 486066e02dd7b8c78508eacb67dc3da6e6bf1c84 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 14 Nov 2021 18:23:08 +0100 Subject: [PATCH] - attack() --- source/games/whaven/src/ai.cpp | 3 +-- source/games/whaven/src/ai.h | 2 +- source/games/whaven/src/aidragon.cpp | 25 +++++++++++++------------ source/games/whaven/src/aifish.cpp | 2 +- source/games/whaven/src/aifred.cpp | 2 +- source/games/whaven/src/aigoblin.cpp | 2 +- source/games/whaven/src/aigonzo.cpp | 4 ++-- source/games/whaven/src/aigron.cpp | 2 +- source/games/whaven/src/aiimp.cpp | 2 +- source/games/whaven/src/aikobold.cpp | 2 +- source/games/whaven/src/aiminotaur.cpp | 2 +- source/games/whaven/src/ainewguy.cpp | 2 +- source/games/whaven/src/aiskeleton.cpp | 2 +- source/games/whaven/src/aispider.cpp | 2 +- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/source/games/whaven/src/ai.cpp b/source/games/whaven/src/ai.cpp index 823399724..6fb06a3c3 100644 --- a/source/games/whaven/src/ai.cpp +++ b/source/games/whaven/src/ai.cpp @@ -678,7 +678,7 @@ void skullycastspell(PLAYER& plr, int i) { spawned.backuploc(); } -void attack(PLAYER& plr, int const i) { +void attack(PLAYER& plr, DWHActor* actor) { int s = 0; if (plr.invincibletime > 0 || plr.godMode) return; @@ -688,7 +688,6 @@ void attack(PLAYER& plr, int const i) { // if ((krand() & (15 < plr.armortype ? 11 : 10)) != 0) // return; - auto actor = &whActors[i]; auto& spr = actor->s(); auto& pspr = sprite[plr.spritenum]; diff --git a/source/games/whaven/src/ai.h b/source/games/whaven/src/ai.h index 1366fbe91..a0a2f26db 100644 --- a/source/games/whaven/src/ai.h +++ b/source/games/whaven/src/ai.h @@ -128,7 +128,7 @@ int checkfluid(DWHActor* i, Collision& florhit); void processfluid(DWHActor* i, Collision& florHit, boolean fly); void castspell(PLAYER& plr, DWHActor* i); void skullycastspell(PLAYER& plr, int i); -void attack(PLAYER& plr, int i); +void attack(PLAYER& plr, DWHActor* i); int checkmove(DWHActor* actor, int dax, int day); boolean checkdist(PLAYER& plr, DWHActor* i); boolean checkdist(DWHActor* i, int x, int y, int z); diff --git a/source/games/whaven/src/aidragon.cpp b/source/games/whaven/src/aidragon.cpp index 28200399e..37323c121 100644 --- a/source/games/whaven/src/aidragon.cpp +++ b/source/games/whaven/src/aidragon.cpp @@ -6,7 +6,7 @@ BEGIN_WH_NS static int checksight_x, checksight_y = 0; static void dragonAttack2(PLAYER& plr, DWHActor* i); -static void firebreath(PLAYER& plr, int i, int a, int b, int c); +static void firebreath(PLAYER& plr, DWHActor*, int a, int b, int c); static void chasedragon(PLAYER& plr, DWHActor* actor) { @@ -143,7 +143,7 @@ static void castdragon(PLAYER& plr, DWHActor* actor) else spritesound(S_FIREBALL, actor); - firebreath(plr, i, 1, 2, LOW); + firebreath(plr, actor, 1, 2, LOW); break; case DRAGONATTACK + 18: case DRAGONATTACK + 5: @@ -152,7 +152,7 @@ static void castdragon(PLAYER& plr, DWHActor* actor) else spritesound(S_FIREBALL, actor); - firebreath(plr, i, 2, 1, LOW); + firebreath(plr, actor, 2, 1, LOW); break; case DRAGONATTACK + 19: case DRAGONATTACK + 6: @@ -161,15 +161,15 @@ static void castdragon(PLAYER& plr, DWHActor* actor) else spritesound(S_FIREBALL, actor); - firebreath(plr, i, 4, 0, LOW); + firebreath(plr, actor, 4, 0, LOW); break; case DRAGONATTACK + 20: case DRAGONATTACK + 7: - firebreath(plr, i, 2, -1, LOW); + firebreath(plr, actor, 2, -1, LOW); break; case DRAGONATTACK + 21: case DRAGONATTACK + 8: - firebreath(plr, i, 1, -2, LOW); + firebreath(plr, actor, 1, -2, LOW); break; case DRAGONATTACK2 + 2: @@ -178,10 +178,10 @@ static void castdragon(PLAYER& plr, DWHActor* actor) else spritesound(S_FIREBALL, actor); - firebreath(plr, i, 1, -1, HIGH); + firebreath(plr, actor, 1, -1, HIGH); break; case DRAGONATTACK2 + 3: - firebreath(plr, i, 2, 0, HIGH); + firebreath(plr, actor, 2, 0, HIGH); break; case DRAGONATTACK2 + 5: @@ -337,14 +337,15 @@ static void dragonAttack2(PLAYER& plr, DWHActor* actor) checksector6(actor); } -static void firebreath(PLAYER& plr, int i, int a, int b, int c) +static void firebreath(PLAYER& plr, DWHActor* actor, int a, int b, int c) { - auto& spr = sprite[i]; + auto& spr = actor->s(); for (int k = 0; k <= a; k++) { int j = insertsprite(spr.sectnum, MISSILE); if (j == -1) return; - auto& spawned = sprite[j]; + auto spawnedactor = &whActors[j]; + auto& spawned = spawnedactor->s(); spawned.x = spr.x; spawned.y = spr.y; @@ -370,7 +371,7 @@ static void firebreath(PLAYER& plr, int i, int a, int b, int c) else spawned.zvel = (short)((((plr.z + (8 << 8)) - spawned.z) << 7) / discrim);// NEW - spawned.owner = (short)i; + spawned.owner = actor->GetSpriteIndex(); spawned.clipdist = 16; spawned.lotag = 512; spawned.hitag = 0; diff --git a/source/games/whaven/src/aifish.cpp b/source/games/whaven/src/aifish.cpp index 31dabdb40..9d72d20be 100644 --- a/source/games/whaven/src/aifish.cpp +++ b/source/games/whaven/src/aifish.cpp @@ -105,7 +105,7 @@ static void attackfish(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aifred.cpp b/source/games/whaven/src/aifred.cpp index 293360d2e..9b10f83bd 100644 --- a/source/games/whaven/src/aifred.cpp +++ b/source/games/whaven/src/aifred.cpp @@ -205,7 +205,7 @@ static void attackfred(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aigoblin.cpp b/source/games/whaven/src/aigoblin.cpp index 73e73feb8..3b6c56b96 100644 --- a/source/games/whaven/src/aigoblin.cpp +++ b/source/games/whaven/src/aigoblin.cpp @@ -250,7 +250,7 @@ static void attackgoblin(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aigonzo.cpp b/source/games/whaven/src/aigonzo.cpp index 072a79de4..ea558985c 100644 --- a/source/games/whaven/src/aigonzo.cpp +++ b/source/games/whaven/src/aigonzo.cpp @@ -388,7 +388,7 @@ static void attackgonzo(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { @@ -420,7 +420,7 @@ static void attackgonzo(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aigron.cpp b/source/games/whaven/src/aigron.cpp index 00d9f61d8..d1e8c0d96 100644 --- a/source/games/whaven/src/aigron.cpp +++ b/source/games/whaven/src/aigron.cpp @@ -305,7 +305,7 @@ static void attackgron(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aiimp.cpp b/source/games/whaven/src/aiimp.cpp index 7a6ae4424..e4e550a91 100644 --- a/source/games/whaven/src/aiimp.cpp +++ b/source/games/whaven/src/aiimp.cpp @@ -254,7 +254,7 @@ static void attackimp(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aikobold.cpp b/source/games/whaven/src/aikobold.cpp index 3b8686bbc..ecfdcc1b1 100644 --- a/source/games/whaven/src/aikobold.cpp +++ b/source/games/whaven/src/aikobold.cpp @@ -223,7 +223,7 @@ static void attackkobold(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aiminotaur.cpp b/source/games/whaven/src/aiminotaur.cpp index fc28b8450..40affc1f5 100644 --- a/source/games/whaven/src/aiminotaur.cpp +++ b/source/games/whaven/src/aiminotaur.cpp @@ -227,7 +227,7 @@ static void attackminotaur(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/ainewguy.cpp b/source/games/whaven/src/ainewguy.cpp index b487ded19..2f75fc650 100644 --- a/source/games/whaven/src/ainewguy.cpp +++ b/source/games/whaven/src/ainewguy.cpp @@ -294,7 +294,7 @@ static void attacknewguy(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aiskeleton.cpp b/source/games/whaven/src/aiskeleton.cpp index 01e25efb6..a66e55431 100644 --- a/source/games/whaven/src/aiskeleton.cpp +++ b/source/games/whaven/src/aiskeleton.cpp @@ -231,7 +231,7 @@ static void attackskeleton(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); } } else if (spr.lotag < 0) { diff --git a/source/games/whaven/src/aispider.cpp b/source/games/whaven/src/aispider.cpp index f44b8eac4..a431d0c40 100644 --- a/source/games/whaven/src/aispider.cpp +++ b/source/games/whaven/src/aispider.cpp @@ -204,7 +204,7 @@ static void attackspider(PLAYER& plr, DWHActor* actor) if (checksight(plr, actor)) if (checkdist(plr, actor)) { spr.ang = (short)checksight_ang; - attack(plr, i); + attack(plr, actor); if (krand() % 100 > ((plr.lvl * 7) + 20)) { spritesound(S_SPIDERBITE, actor); plr.poisoned = 1;