From adfe21afd6e5f4efc9c60b45590f4c086b9e0e52 Mon Sep 17 00:00:00 2001 From: Cerapter Date: Tue, 4 Sep 2018 22:45:07 +0200 Subject: [PATCH] Added `jur` and `sea` positions. --- courtroom.cpp | 14 +++++++++++++- server/aoprotocol.py | 2 +- server/client_manager.py | 4 ++-- server/evidence.py | 11 ++++++++++- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/courtroom.cpp b/courtroom.cpp index c4d9074..6df5f9f 100644 --- a/courtroom.cpp +++ b/courtroom.cpp @@ -137,6 +137,8 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() ui_pos_dropdown->addItem("jud"); ui_pos_dropdown->addItem("hld"); ui_pos_dropdown->addItem("hlp"); + ui_pos_dropdown->addItem("jur"); + ui_pos_dropdown->addItem("sea"); ui_defense_bar = new AOImage(this, ao_app); ui_prosecution_bar = new AOImage(this, ao_app); @@ -1482,7 +1484,7 @@ void Courtroom::handle_chatmessage_3() //shifted by 1 because 0 is no evidence per legacy standards QString f_image = local_evidence_list.at(f_evi_id - 1).image; //def jud and hlp should display the evidence icon on the RIGHT side - bool is_left_side = !(f_side == "def" || f_side == "hlp" || f_side == "jud"); + bool is_left_side = !(f_side == "def" || f_side == "hlp" || f_side == "jud" || f_side == "jur"); ui_vp_evidence_display->show_evidence(f_image, is_left_side, ui_sfx_slider->value()); } @@ -2321,6 +2323,16 @@ void Courtroom::set_scene() f_background = "prohelperstand"; f_desk_image = "prohelperdesk"; } + else if (f_side == "jur") + { + f_background = "jurystand"; + f_desk_image = "jurydesk"; + } + else if (f_side == "sea") + { + f_background = "seancestand"; + f_desk_image = "seancedesk"; + } else { if (is_ao2_bg) diff --git a/server/aoprotocol.py b/server/aoprotocol.py index 4e725d0..d7a2c6c 100644 --- a/server/aoprotocol.py +++ b/server/aoprotocol.py @@ -427,7 +427,7 @@ class AOProtocol(asyncio.Protocol): if self.client.pos: pos = self.client.pos else: - if pos not in ('def', 'pro', 'hld', 'hlp', 'jud', 'wit'): + if pos not in ('def', 'pro', 'hld', 'hlp', 'jud', 'wit', 'jur', 'sea'): return msg = text[:256] if self.client.shaken: diff --git a/server/client_manager.py b/server/client_manager.py index 2310298..5e6825b 100644 --- a/server/client_manager.py +++ b/server/client_manager.py @@ -345,8 +345,8 @@ class ClientManager: return self.server.char_list[self.char_id] def change_position(self, pos=''): - if pos not in ('', 'def', 'pro', 'hld', 'hlp', 'jud', 'wit'): - raise ClientError('Invalid position. Possible values: def, pro, hld, hlp, jud, wit.') + if pos not in ('', 'def', 'pro', 'hld', 'hlp', 'jud', 'wit', 'jur', 'sea'): + raise ClientError('Invalid position. Possible values: def, pro, hld, hlp, jud, wit, jur, sea.') self.pos = pos def set_mod_call_delay(self): diff --git a/server/evidence.py b/server/evidence.py index ddd9ba3..efa2e25 100644 --- a/server/evidence.py +++ b/server/evidence.py @@ -24,7 +24,16 @@ class EvidenceList: def __init__(self): self.evidences = [] - self.poses = {'def':['def', 'hld'], 'pro':['pro', 'hlp'], 'wit':['wit'], 'hlp':['hlp', 'pro'], 'hld':['hld', 'def'], 'jud':['jud'], 'all':['hlp', 'hld', 'wit', 'jud', 'pro', 'def', ''], 'pos':[]} + self.poses = {'def':['def', 'hld'], + 'pro':['pro', 'hlp'], + 'wit':['wit', 'sea'], + 'sea':['sea', 'wit'], + 'hlp':['hlp', 'pro'], + 'hld':['hld', 'def'], + 'jud':['jud', 'jur'], + 'jur':['jur', 'jud'], + 'all':['hlp', 'hld', 'wit', 'jud', 'pro', 'def', 'jur', 'sea', ''], + 'pos':[]} def login(self, client): if client.area.evidence_mod == 'FFA':