Remove resume button from complete games.

This commit is contained in:
yukirij 2024-10-01 23:19:45 -07:00
parent 6965ebbf75
commit 15030fc700
4 changed files with 21 additions and 12 deletions

View File

@ -471,6 +471,8 @@ pub async fn thread_system(mut app:App, bus:Bus<protocol::QRPacket>)
// Verify that session exists // Verify that session exists
if let Some(session) = app.sessions.get_mut(&request.token) { if let Some(session) = app.sessions.get_mut(&request.token) {
response.is_complete = session.game.is_complete();
if user_id == Some(session.p_dawn.user) { if user_id == Some(session.p_dawn.user) {
response.player = 1; response.player = 1;
} else if user_id == Some(session.p_dusk.user) { } else if user_id == Some(session.p_dusk.user) {

View File

@ -42,6 +42,7 @@ pub struct PacketSessionViewResponse {
pub status:u16, pub status:u16,
pub token:SessionToken, pub token:SessionToken,
pub player:u8, pub player:u8,
pub is_complete:bool,
} }
impl PacketSessionViewResponse { impl PacketSessionViewResponse {
pub fn new() -> Self pub fn new() -> Self
@ -50,6 +51,7 @@ impl PacketSessionViewResponse {
status:0, status:0,
token:SessionToken::default(), token:SessionToken::default(),
player:0, player:0,
is_complete:false,
} }
} }
} }
@ -59,7 +61,8 @@ impl Packet for PacketSessionViewResponse {
fn encode(&self) -> Vec<u8> fn encode(&self) -> Vec<u8>
{ {
let mut flags = 0u8; let mut flags = 0u8;
flags |= self.player; flags |= self.is_complete as u8;
flags |= (self.player as u8) << 1;
[ [
pack_u16(self.status), pack_u16(self.status),

View File

@ -622,18 +622,20 @@ const SCENES = {
// Resume / Review Buttons // Resume / Review Buttons
if(data.view.player != 0) { if(data.view.player != 0) {
if(data.mode == INTERFACE.Mode.Review) { if(data.mode == INTERFACE.Mode.Review) {
let callback_resume = function() { if(!data.view.is_complete) {
LOAD(SCENES.GameLoad, { let callback_resume = function() {
token:this.token, LOAD(SCENES.GameLoad, {
mode:INTERFACE.Mode.Player, token:this.token,
mode:INTERFACE.Mode.Player,
});
}
callback_resume = callback_resume.bind({
token: data.token,
player: data.player,
}); });
}
callback_resume = callback_resume.bind({
token: data.token,
player: data.player,
});
buttons_top.push(UI.button(LANG("resume"), callback_resume)); buttons_top.push(UI.button(LANG("resume"), callback_resume));
}
} else { } else {
let callback_review = function() { let callback_review = function() {
LOAD(SCENES.GameLoad, { LOAD(SCENES.GameLoad, {

View File

@ -222,6 +222,7 @@ function MESSAGE(event) {
data = { data = {
status:0, status:0,
player:0, player:0,
is_complete:false,
token:new Uint8Array(8), token:new Uint8Array(8),
}; };
@ -234,7 +235,8 @@ function MESSAGE(event) {
result = UNPACK.u8(bytes, index); result = UNPACK.u8(bytes, index);
index = result.index; index = result.index;
let flags = result.data; let flags = result.data;
data.player = flags & 3; data.is_complete = (flags & 1) == 1;
data.player = (flags >> 1) & 3;
// Token // Token
for(let i = 0; i < 8; ++i) { data.token[i] = bytes[index++]; } for(let i = 0; i < 8; ++i) { data.token[i] = bytes[index++]; }