Skip to content

Commit b5adbf5

Browse files
authored
Merge pull request #160 from Jameskmonger/more-refactors-for-camera
refactor: renaming and reorganising methods
2 parents 0b0e9d2 + 8a285ad commit b5adbf5

22 files changed

+515
-417
lines changed

src/main/java/org/runejs/client/Class37.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
import org.runejs.client.media.renderable.actor.Npc;
1414
import org.runejs.client.media.renderable.actor.Player;
1515
import org.runejs.client.net.IncomingPackets;
16-
import org.runejs.client.scene.GroundItemTile;
17-
import org.runejs.client.scene.SceneCamera;
1816
import org.runejs.client.scene.SceneCluster;
1917
import org.runejs.client.scene.tile.FloorDecoration;
2018
import org.runejs.client.scene.tile.SceneTile;
@@ -30,22 +28,6 @@ public class Class37 {
3028
anInt874 = 0;
3129
}
3230

33-
public static int getFloorDrawHeight(int plane, int x, int y) {
34-
int groundX = x >> 7;
35-
int groundY = y >> 7;
36-
if(groundX < 0 || groundY < 0 || groundX > 103 || groundY > 103)
37-
return 0;
38-
int groundZ = plane;
39-
if(groundZ < 3 && (OverlayDefinition.tile_flags[1][groundX][groundY] & 0x2) == 2)
40-
groundZ++;
41-
int _x = 0x7f & x;
42-
int _y = y & 0x7f;
43-
int i2 = (-_x + 128) * MovedStatics.tile_height[groundZ][groundX][groundY] + _x * MovedStatics.tile_height[groundZ][groundX + 1][groundY] >> 7;
44-
int j2 = _x * MovedStatics.tile_height[groundZ][1 + groundX][1 + groundY] + MovedStatics.tile_height[groundZ][groundX][1 + groundY] * (128 + -_x) >> 7;
45-
return (128 + -_y) * i2 + j2 * _y >> 7;
46-
}
47-
48-
4931
public static void method434() {
5032
MovedStatics.menuOpen = false;
5133
IncomingPackets.opcode = -1;

src/main/java/org/runejs/client/Class65.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void method1020() {
2525
SceneTile.blendedLightness = new int[104];
2626
AnimationSequence.tileLightIntensity = new int[105][105];
2727
MouseHandler.tile_overlayids = new byte[4][104][104];
28-
Class40_Sub5_Sub17_Sub6.blendedHue = new int[104];
28+
SpotAnim.blendedHue = new int[104];
2929
Class35.tile_overlay_rotation = new byte[4][104][104];
3030
MovedStatics.tile_underlayids = new byte[4][104][104];
3131
}

src/main/java/org/runejs/client/Main.java

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -590,11 +590,11 @@ public static void renderFlames() {
590590
if (IdentityKit.anInt2613 > 0) {
591591
for (int i = 0; i < 256; i++) {
592592
if (IdentityKit.anInt2613 > 768)
593-
MovedStatics.anIntArray1013[i] = MovedStatics.method614(Class51.anIntArray1198[i], Class40_Sub5_Sub17_Sub6.anIntArray3248[i], -IdentityKit.anInt2613 + 1024);
593+
MovedStatics.anIntArray1013[i] = MovedStatics.method614(Class51.anIntArray1198[i], SpotAnim.anIntArray3248[i], -IdentityKit.anInt2613 + 1024);
594594
else if (IdentityKit.anInt2613 > 256)
595-
MovedStatics.anIntArray1013[i] = Class40_Sub5_Sub17_Sub6.anIntArray3248[i];
595+
MovedStatics.anIntArray1013[i] = SpotAnim.anIntArray3248[i];
596596
else
597-
MovedStatics.anIntArray1013[i] = MovedStatics.method614(Class40_Sub5_Sub17_Sub6.anIntArray3248[i], Class51.anIntArray1198[i], -IdentityKit.anInt2613 + 256);
597+
MovedStatics.anIntArray1013[i] = MovedStatics.method614(SpotAnim.anIntArray3248[i], Class51.anIntArray1198[i], -IdentityKit.anInt2613 + 256);
598598
}
599599
} else {
600600
System.arraycopy(Class51.anIntArray1198, 0, MovedStatics.anIntArray1013, 0, 256);
@@ -803,12 +803,12 @@ public static void setConfigToDefaults() {
803803

804804
public static void method353() {
805805
MovedStatics.anInt2628++;
806-
Class40_Sub5_Sub17_Sub6.method833(0, true);
807-
ItemDefinition.method749(true);
808-
Class40_Sub5_Sub17_Sub6.method833(0, false);
809-
ItemDefinition.method749(false);
810-
MovedStatics.method335();
811-
MovedStatics.method1000();
806+
SpotAnim.renderPlayers(0, true);
807+
ItemDefinition.renderNPCs(true);
808+
SpotAnim.renderPlayers(0, false);
809+
ItemDefinition.renderNPCs(false);
810+
MovedStatics.renderProjectiles();
811+
MovedStatics.renderSpotAnims();
812812
if(!Player.cutsceneActive) {
813813
int pitch = Main.playerCamera.getPitch();
814814
if(SceneCamera.cameraTerrainMinScaledPitch / 256 > pitch) {
@@ -834,23 +834,23 @@ public static void method353() {
834834
Point3d shakeOffsetPosition = new Point3d(0, 0, 0);
835835
CameraRotation shakeOffsetRotation = new CameraRotation(0, 0);
836836

837-
for(int i_6_ = 0; i_6_ < 5; i_6_++) {
838-
if(SceneCamera.customCameraActive[i_6_]) {
839-
int i_7_ = (int) ((double) (SceneCamera.customCameraJitter[i_6_] * 2 + 1) * Math.random() - (double) SceneCamera.customCameraJitter[i_6_] + Math.sin((double) SceneCamera.customCameraTimer[i_6_] * ((double) SceneCamera.customCameraFrequency[i_6_] / 100.0)) * (double) SceneCamera.customCameraAmplitude[i_6_]);
840-
if(i_6_ == 1) {
841-
shakeOffsetPosition = shakeOffsetPosition.addZ(i_7_);
837+
for(int cameraType = 0; cameraType < 5; cameraType++) {
838+
if(SceneCamera.customCameraActive[cameraType]) {
839+
int shakeAmount = (int) ((double) (SceneCamera.customCameraJitter[cameraType] * 2 + 1) * Math.random() - (double) SceneCamera.customCameraJitter[cameraType] + Math.sin((double) SceneCamera.customCameraTimer[cameraType] * ((double) SceneCamera.customCameraFrequency[cameraType] / 100.0)) * (double) SceneCamera.customCameraAmplitude[cameraType]);
840+
if(cameraType == 1) {
841+
shakeOffsetPosition = shakeOffsetPosition.addZ(shakeAmount);
842842
}
843-
if(i_6_ == 0) {
844-
shakeOffsetPosition = shakeOffsetPosition.addX(i_7_);
843+
if(cameraType == 0) {
844+
shakeOffsetPosition = shakeOffsetPosition.addX(shakeAmount);
845845
}
846-
if(i_6_ == 2) {
847-
shakeOffsetPosition = shakeOffsetPosition.addY(i_7_);
846+
if(cameraType == 2) {
847+
shakeOffsetPosition = shakeOffsetPosition.addY(shakeAmount);
848848
}
849-
if(i_6_ == 4) {
850-
shakeOffsetRotation = shakeOffsetRotation.addPitch(i_7_);
849+
if(cameraType == 4) {
850+
shakeOffsetRotation = shakeOffsetRotation.addPitch(shakeAmount);
851851
}
852-
if(i_6_ == 3) {
853-
shakeOffsetRotation = shakeOffsetRotation.addYaw(i_7_);
852+
if(cameraType == 3) {
853+
shakeOffsetRotation = shakeOffsetRotation.addYaw(shakeAmount);
854854
}
855855
}
856856
}
@@ -1189,13 +1189,13 @@ public static void method164() {
11891189
}
11901190
}
11911191

1192-
public static void method165() {
1192+
public static void moveTowardsTarget() {
11931193
// TODO (James) this moves the cutscene camera towards its target, we should move this into the CutsceneCamera class
11941194
CutsceneCamera camera = Main.cutsceneCamera;
11951195

11961196
int i = camera.getMoveTo().y;
11971197
int i_3_ = camera.getMoveTo().x;
1198-
int i_4_ = Class37.getFloorDrawHeight(Player.worldLevel, i_3_, i) - camera.getMoveTo().z;
1198+
int i_4_ = Scene.getFloorDrawHeight(Player.worldLevel, i_3_, i) - camera.getMoveTo().z;
11991199

12001200
int newX = camera.getPosition().x;
12011201
int newY = camera.getPosition().y;
@@ -1238,7 +1238,7 @@ public static void method165() {
12381238

12391239
i_3_ = camera.getLookAt().x;
12401240
i = camera.getLookAt().y;
1241-
i_4_ = Class37.getFloorDrawHeight(Player.worldLevel, i_3_, i) - camera.getLookAt().z;
1241+
i_4_ = Scene.getFloorDrawHeight(Player.worldLevel, i_3_, i) - camera.getLookAt().z;
12421242
int i_5_ = -newZ + i_4_;
12431243
int i_6_ = i - newY;
12441244
int i_7_ = i_3_ - newX;
@@ -1586,7 +1586,7 @@ else if(ChatBox.dialogueId != -1)
15861586
WallDecoration.durationHoveredOverWidget--;
15871587
Item.calculateCameraPosition();
15881588
if(Player.cutsceneActive)
1589-
method165();
1589+
moveTowardsTarget();
15901590
for(int i_19_ = 0; i_19_ < 5; i_19_++)
15911591
SceneCamera.customCameraTimer[i_19_]++;
15921592
MovedStatics.manageTextInputs();

src/main/java/org/runejs/client/MovedStatics.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ public static void method440() {
185185
ProducingGraphicsBuffer.aProducingGraphicsBuffer_1631 = null;
186186
Class51.aProducingGraphicsBuffer_1206 = null;
187187
Landscape.anIntArray1168 = null;
188-
Class40_Sub5_Sub17_Sub6.anIntArray3255 = null;
188+
SpotAnim.anIntArray3255 = null;
189189
Class59.imgLoginScreenButton = null;
190190
anIntArray1445 = null;
191191
Class40_Sub5_Sub15.loginScreenBox = null;
@@ -195,7 +195,7 @@ public static void method440() {
195195
GameObjectDefinition.aProducingGraphicsBuffer_2524 = null;
196196
Class39.aClass40_Sub5_Sub14_Sub4_918 = null;
197197
MovedStatics.aClass40_Sub5_Sub14_Sub2Array535 = null;
198-
Class40_Sub5_Sub17_Sub6.anIntArray3248 = null;
198+
SpotAnim.anIntArray3248 = null;
199199
MovedStatics.loginBoxGraphics = null;
200200
SceneTile.aClass40_Sub5_Sub14_Sub4_2043 = null;
201201
anIntArray178 = null;
@@ -334,18 +334,18 @@ public static void initiateVertexHeights(int offsetY, int sizeY, int sizeX, int
334334
}
335335
}
336336

337-
public static void method1000() {
338-
for (Class40_Sub5_Sub17_Sub6 class40_sub5_sub17_sub6 = (Class40_Sub5_Sub17_Sub6) Class57.aLinkedList_1332.peekFirst(); class40_sub5_sub17_sub6 != null; class40_sub5_sub17_sub6 = (Class40_Sub5_Sub17_Sub6) Class57.aLinkedList_1332.pollFirst()) {
339-
if (Player.worldLevel == class40_sub5_sub17_sub6.anInt3239 && !class40_sub5_sub17_sub6.aBoolean3237) {
340-
if (pulseCycle >= class40_sub5_sub17_sub6.anInt3230) {
341-
class40_sub5_sub17_sub6.method834(anInt199);
342-
if (class40_sub5_sub17_sub6.aBoolean3237)
343-
class40_sub5_sub17_sub6.unlink();
337+
public static void renderSpotAnims() {
338+
for (SpotAnim spotAnim = (SpotAnim) Class57.aLinkedList_1332.peekFirst(); spotAnim != null; spotAnim = (SpotAnim) Class57.aLinkedList_1332.pollFirst()) {
339+
if (Player.worldLevel == spotAnim.plane && !spotAnim.animationFinished) {
340+
if (pulseCycle >= spotAnim.startCycle) {
341+
spotAnim.method834(anInt199);
342+
if (spotAnim.animationFinished)
343+
spotAnim.unlink();
344344
else
345-
Npc.currentScene.method134(class40_sub5_sub17_sub6.anInt3239, class40_sub5_sub17_sub6.anInt3244, class40_sub5_sub17_sub6.anInt3235, class40_sub5_sub17_sub6.anInt3231, 60, class40_sub5_sub17_sub6, 0, -1, false);
345+
Npc.currentScene.method134(spotAnim.plane, spotAnim.x, spotAnim.y, spotAnim.z, 60, spotAnim, 0, -1, false);
346346
}
347347
} else
348-
class40_sub5_sub17_sub6.unlink();
348+
spotAnim.unlink();
349349
}
350350
}
351351

@@ -359,7 +359,7 @@ public static int method546() {
359359

360360
Point3d cameraPos = Main.cutsceneCamera.getPosition();
361361

362-
int i = Class37.getFloorDrawHeight(Player.worldLevel, cameraPos.x, cameraPos.y);
362+
int i = Scene.getFloorDrawHeight(Player.worldLevel, cameraPos.x, cameraPos.y);
363363
if (i + -cameraPos.z < 800 && (OverlayDefinition.tile_flags[Player.worldLevel][cameraPos.x >> 7][cameraPos.y >> 7] & 0x4) != 0)
364364
return Player.worldLevel;
365365
return 3;
@@ -435,15 +435,15 @@ public static RSString intToStr(int arg0) {
435435
return PacketBuffer.method521(false, 10, arg0);
436436
}
437437

438-
public static void method335() {
438+
public static void renderProjectiles() {
439439
Projectile projectile = (Projectile) Class43.projectileQueue.peekFirst();
440440
for (/**/; projectile != null; projectile = (Projectile) Class43.projectileQueue.pollFirst()) {
441441
if (Player.worldLevel == projectile.anInt2981 && pulseCycle <= projectile.endCycle) {
442442
if (projectile.delay <= pulseCycle) {
443443
if (projectile.entityIndex > 0) {
444444
Npc class40_sub5_sub17_sub4_sub2 = Player.npcs[-1 + projectile.entityIndex];
445445
if (class40_sub5_sub17_sub4_sub2 != null && class40_sub5_sub17_sub4_sub2.worldX >= 0 && class40_sub5_sub17_sub4_sub2.worldX < 13312 && class40_sub5_sub17_sub4_sub2.worldY >= 0 && class40_sub5_sub17_sub4_sub2.worldY < 13312)
446-
projectile.trackTarget(pulseCycle, 61 + -61, class40_sub5_sub17_sub4_sub2.worldY, Class37.getFloorDrawHeight(projectile.anInt2981, class40_sub5_sub17_sub4_sub2.worldX, class40_sub5_sub17_sub4_sub2.worldY) - projectile.endHeight, class40_sub5_sub17_sub4_sub2.worldX);
446+
projectile.trackTarget(pulseCycle, 61 + -61, class40_sub5_sub17_sub4_sub2.worldY, Scene.getFloorDrawHeight(projectile.anInt2981, class40_sub5_sub17_sub4_sub2.worldX, class40_sub5_sub17_sub4_sub2.worldY) - projectile.endHeight, class40_sub5_sub17_sub4_sub2.worldX);
447447
}
448448
if (projectile.entityIndex < 0) {
449449
int i = -1 + -projectile.entityIndex;
@@ -453,7 +453,7 @@ public static void method335() {
453453
else
454454
class40_sub5_sub17_sub4_sub1 = Player.localPlayer;
455455
if (class40_sub5_sub17_sub4_sub1 != null && class40_sub5_sub17_sub4_sub1.worldX >= 0 && class40_sub5_sub17_sub4_sub1.worldX < 13312 && class40_sub5_sub17_sub4_sub1.worldY >= 0 && class40_sub5_sub17_sub4_sub1.worldY < 13312)
456-
projectile.trackTarget(pulseCycle, 0, class40_sub5_sub17_sub4_sub1.worldY, Class37.getFloorDrawHeight(projectile.anInt2981, class40_sub5_sub17_sub4_sub1.worldX, class40_sub5_sub17_sub4_sub1.worldY) - projectile.endHeight, class40_sub5_sub17_sub4_sub1.worldX);
456+
projectile.trackTarget(pulseCycle, 0, class40_sub5_sub17_sub4_sub1.worldY, Scene.getFloorDrawHeight(projectile.anInt2981, class40_sub5_sub17_sub4_sub1.worldX, class40_sub5_sub17_sub4_sub1.worldY) - projectile.endHeight, class40_sub5_sub17_sub4_sub1.worldX);
457457
}
458458
projectile.move(anInt199);
459459
Npc.currentScene.method134(Player.worldLevel, (int) projectile.currentX, (int) projectile.currentY, (int) projectile.currentHeight, 60, projectile, projectile.anInt3013, -1, false);
@@ -518,7 +518,7 @@ public static void method973() {
518518
OverlayDefinition.tile_underlay_path = null;
519519
MouseHandler.tile_overlayids = null;
520520
tile_underlayids = null;
521-
Class40_Sub5_Sub17_Sub6.blendedHue = null;
521+
SpotAnim.blendedHue = null;
522522
}
523523

524524
public static void printException(String arg0, Throwable exception) {
@@ -622,7 +622,7 @@ public static void method836(int arg0) {
622622
for (int i_6_ = 1; i_6_ < i - 1; i_6_++) {
623623
for (int i_7_ = 1; i_7_ < 127; i_7_++) {
624624
int i_8_ = i_7_ + (i_6_ << 7);
625-
Class40_Sub5_Sub17_Sub6.anIntArray3255[i_8_] = (anIntArray178[i_8_ + 1] + anIntArray178[i_8_ - 1] - (-anIntArray178[-128 + i_8_] - anIntArray178[128 + i_8_])) / 4;
625+
SpotAnim.anIntArray3255[i_8_] = (anIntArray178[i_8_ + 1] + anIntArray178[i_8_ - 1] - (-anIntArray178[-128 + i_8_] - anIntArray178[128 + i_8_])) / 4;
626626
}
627627
}
628628
RSRuntimeException.anInt1641 += 128;
@@ -634,7 +634,7 @@ public static void method836(int arg0) {
634634
for (int i_10_ = 1; i_10_ < -1 + i; i_10_++) {
635635
for (int i_11_ = 1; i_11_ < 127; i_11_++) {
636636
int i_12_ = i_11_ + (i_10_ << 7);
637-
int i_13_ = -(Landscape.anIntArray1168[i_12_ + RSRuntimeException.anInt1641 & -1 + Landscape.anIntArray1168.length] / 5) + Class40_Sub5_Sub17_Sub6.anIntArray3255[i_12_ + 128];
637+
int i_13_ = -(Landscape.anIntArray1168[i_12_ + RSRuntimeException.anInt1641 & -1 + Landscape.anIntArray1168.length] / 5) + SpotAnim.anIntArray3255[i_12_ + 128];
638638
if (i_13_ < 0)
639639
i_13_ = 0;
640640
anIntArray178[i_12_] = i_13_;
@@ -1960,7 +1960,7 @@ public static void method312(int arg0, int arg1, int arg2, int arg3) {
19601960
Class44.anInt1048 = -1;
19611961
ISAAC.anInt522 = -1;
19621962
} else {
1963-
int i = Class37.getFloorDrawHeight(Player.worldLevel, arg2, arg1) + -arg0;
1963+
int i = Scene.getFloorDrawHeight(Player.worldLevel, arg2, arg1) + -arg0;
19641964

19651965
Point3d cameraPos = Main.getActiveCamera().getPosition();
19661966
CameraRotation rotation = Main.getActiveCamera().getRotation();

src/main/java/org/runejs/client/Projectile.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public static void method763(Component arg0, CacheArchive arg2) {
189189
GameObject.tabPieceLeft = MovedStatics.createGraphicsBuffer(image.imageWidth, image.imageHeight, arg0);
190190
image.drawInverse(0, 0);
191191
image = HuffmanEncoding.method1028(arg2, Native.imgBacktop1, Native.aClass1_305);
192-
Class40_Sub5_Sub17_Sub6.framePieceTop = MovedStatics.createGraphicsBuffer(image.imageWidth, image.imageHeight, arg0);
192+
SpotAnim.framePieceTop = MovedStatics.createGraphicsBuffer(image.imageWidth, image.imageHeight, arg0);
193193
image.drawInverse(0, 0);
194194
image = HuffmanEncoding.method1028(arg2, Native.imgBackvmid1, Native.aClass1_305);
195195
Class40_Sub7.mapBackRight = MovedStatics.createGraphicsBuffer(image.imageWidth, image.imageHeight, arg0);
@@ -627,7 +627,7 @@ else if(face == 3)
627627

628628
public Model getRotatedModel() {
629629
SpotAnimDefinition spotAnimDefinition = SpotAnimDefinition.forId(graphicsId);
630-
Model class40_sub5_sub17_sub5 = spotAnimDefinition.method549(animationFrame);
630+
Model class40_sub5_sub17_sub5 = spotAnimDefinition.getModel(animationFrame);
631631
if(class40_sub5_sub17_sub5 == null)
632632
return null;
633633
class40_sub5_sub17_sub5.method804(anInt2976);

0 commit comments

Comments
 (0)