# HG changeset patch
# User Ru5tK1ng
# Date 1704853644 21600
#      Tue Jan 09 20:27:24 2024 -0600
# Branch clericfire
# Node ID 7c67c04bbb112b3be2a7565f59f6aa7fa6d1501d
# Parent  17757ad8e820f40edf930d64f27b5641c62d1fa6
Fixed: Cleric's CircleFlame projectile did not rotate properly online (addresses 2101).

diff -r 17757ad8e820 -r 7c67c04bbb11 docs/zandronum-history.txt
--- a/docs/zandronum-history.txt	Thu Jan 04 17:01:19 2024 -0600
+++ b/docs/zandronum-history.txt	Tue Jan 09 20:27:24 2024 -0600
@@ -111,6 +111,7 @@
 -	- Fixed: opening the text scaling menu sometimes changed the user's con_virtualwidth and/or con_virtualheight CVars when it shouldn't. [Kaminsky]
 -	- Fixed: the coop info wasn't getting drawn in clientside demos. [Kaminsky]
 -	- Fixed: Floatbob items having incorrect z-height after a map reset and glitchy GL floor clipping (addresses 2361). [Ru5tK1ng]
+-   - Fixed: Cleric's CircleFlame projectile did not rotate properly online (addresses 2101). [Ru5tK1ng]
 !	- The result value of GAMEEVENT_MEDALS event scripts can now be used to determine whether or not the player receives the medal. [Kaminsky]
 !	- GAMEMODE flags are now validated after all GAMEMODE lumps have been parsed instead of after each one. The internal game mode name (e.g. "TeamLMS") is now printed with the error message instead of the actual name. [Kaminsky]
 !	- Added an extra check to ensure that game modes have a (short) name. [Kaminsky]
diff -r 17757ad8e820 -r 7c67c04bbb11 src/g_hexen/a_clericflame.cpp
--- a/src/g_hexen/a_clericflame.cpp	Thu Jan 04 17:01:19 2024 -0600
+++ b/src/g_hexen/a_clericflame.cpp	Tue Jan 09 20:27:24 2024 -0600
@@ -189,8 +189,15 @@
 {
 	int an;
 
+	// [RK] The server does this.
+	if (NETWORK_InClientMode())
+		return;
+
 	an = (self->angle+ANG90)>>ANGLETOFINESHIFT;
 	self->velx = self->special1+FixedMul(FLAMEROTSPEED, finecosine[an]);
 	self->vely = self->special2+FixedMul(FLAMEROTSPEED, finesine[an]);
 	self->angle += ANG90/15;
+
+	// [RK] Send the updated actor position to the clients
+	SERVERCOMMANDS_MoveThingExact(self, CM_ANGLE|CM_X|CM_Y|CM_VELX|CM_VELY);
 }
