@@ -744,16 +744,23 @@ function galakong.startplugin()
744
744
mem :write_u8 (0x6a33 , 256 - missile_y )
745
745
last_bonus = _frame
746
746
747
- -- 7 digits for the calculation purposes incase we tick over the million
747
+ -- 7 digits for the calculation purposes incase we tick over the million
748
748
score = _format (" %07d" , tonumber (get_score_segment (0x60b4 ).. get_score_segment (0x60b3 ).. get_score_segment (0x60b2 )) + bonus )
749
- -- update 6 digit score in ram
750
749
score = _sub (score , 2 , 7 )
751
- set_score_segment (0x60b4 , _sub (score , 1 ,2 ))
750
+ set_score_segment (0x60b4 , _sub (score , 1 ,2 )) -- update score in ram
752
751
set_score_segment (0x60b3 , _sub (score , 3 ,4 ))
753
- set_score_segment (0x60b2 , _sub (score , 5 ,6 ))
754
-
755
- -- update score on screen
756
- write_ram_message (0x7781 , score )
752
+ set_score_segment (0x60b2 , _sub (score , 5 ,6 ))
753
+ write_ram_message (0x7781 , score ) -- update score on screen
754
+
755
+ -- update high score when necessary
756
+ high_score = _format (" %06d" , tonumber (get_score_segment (0x60ba ).. get_score_segment (0x60b9 ).. get_score_segment (0x60b8 )))
757
+ if tonumber (score ) >= tonumber (high_score ) then
758
+ -- update high score on screen
759
+ set_score_segment (0x60ba , _sub (score , 1 ,2 )) -- update score in ram
760
+ set_score_segment (0x60b9 , _sub (score , 3 ,4 ))
761
+ set_score_segment (0x60b8 , _sub (score , 5 ,6 ))
762
+ write_ram_message (0x7641 , score ) -- update score on screen
763
+ end
757
764
end
758
765
end
759
766
end
0 commit comments