diff --git a/source/games/sw/src/ai.cpp b/source/games/sw/src/ai.cpp
index c6f81fc86..9e182c8aa 100644
--- a/source/games/sw/src/ai.cpp
+++ b/source/games/sw/src/ai.cpp
@@ -55,8 +55,7 @@ short AttackOrRun = 200;
 
 #define CHOOSE2(value) (RANDOM_P2(1024) < (value))
 
-int
-Distance(int x1, int y1, int x2, int y2)
+int Distance(int x1, int y1, int x2, int y2)
 {
     int min;
 
@@ -183,8 +182,7 @@ void DoActorSetSpeed(DSWActor* actor, uint8_t speed)
   goro.c etc.
 */
 
-ANIMATORp
-ChooseAction(DECISION decision[])
+ANIMATORp ChooseAction(DECISION decision[])
 {
     short random_value;
     short i;
@@ -207,8 +205,7 @@ ChooseAction(DECISION decision[])
   !AIC - Sometimes just want the offset of the action
 */
 
-short
-ChooseActionNumber(short decision[])
+short ChooseActionNumber(short decision[])
 {
     short random_value;
     short i;
@@ -224,10 +221,10 @@ ChooseActionNumber(short decision[])
     }
 }
 
-int
-DoActorNoise(ANIMATORp Action, short SpriteNum)
+int DoActorNoise(ANIMATORp Action, DSWActor* actor)
 {
-    USERp u = User[SpriteNum].Data();
+    USERp u = actor->u();
+    int SpriteNum = actor->GetSpriteIndex();
 
     if (Action == InitActorAmbientNoise)
     {
@@ -769,7 +766,7 @@ DoActorActionDecide(short SpriteNum)
                 //CON_Message("Surprised");
                 if (!u->DidAlert && ICanSee)
                 {
-                    DoActorNoise(InitActorAlertNoise, SpriteNum);
+                    DoActorNoise(InitActorAlertNoise, actor);
                     u->DidAlert = true;
                 }
                 return action;
@@ -779,7 +776,7 @@ DoActorActionDecide(short SpriteNum)
             {
                 // Player has not seen actor, to be fair let him know actor
                 // are there
-                DoActorNoise(ChooseAction(u->Personality->Broadcast),SpriteNum);
+                DoActorNoise(ChooseAction(u->Personality->Broadcast),actor);
                 //CON_Message("Actor Noise");
                 return action;
             }
@@ -1133,7 +1130,7 @@ DoActorMoveCloser(DSWActor* actor)
     }
 
     // Do a noise if ok
-    DoActorNoise(ChooseAction(u->Personality->Broadcast),SpriteNum);
+    DoActorNoise(ChooseAction(u->Personality->Broadcast), actor);
 
 #if 0
     // evasion if targeted
@@ -1526,7 +1523,7 @@ DoActorAttack(DSWActor* actor)
     short rand_num;
     int dist,a,b,c;
 
-    DoActorNoise(ChooseAction(u->Personality->Broadcast),SpriteNum);
+    DoActorNoise(ChooseAction(u->Personality->Broadcast),actor);
 
     DISTANCE(sp->x, sp->y, u->tgt_sp->x, u->tgt_sp->y, dist, a, b, c);
 
diff --git a/source/games/sw/src/ai.h b/source/games/sw/src/ai.h
index 8f02815f6..1b7edb717 100644
--- a/source/games/sw/src/ai.h
+++ b/source/games/sw/src/ai.h
@@ -73,7 +73,6 @@ extern ATTRIBUTE DefaultAttrib;
 void DebugMoveHit(DSWActor* actor);
 bool ActorMoveHitReact(DSWActor* actor);
 short ChooseActionNumber(short decision[]);
-int DoActorNoise(ANIMATORp Action,short SpriteNum);
 bool CanSeePlayer(short SpriteNum);
 int CanHitPlayer(short SpriteNum);
 int DoActorPickClosePlayer(short SpriteNum);