def run_inventory(b1, v1, v2, e, b2, b3, b, c, snd): [b1, v1, v2, e, b2, b3, snd] = resolve_all([b1, v1, v2, e, b2, b3, snd]) print("inventory", b1, v1, v2, e, b2, b3, snd) if b3 == '"REMOVE"': found = False for i, (_, _, _, _, bi) in enumerate(state.inventory): if bi == b2: found = True state.inventory.pop(i) break assert (found) if v1 != '""': run_setflag(v1, "TRUE") if b1 != '""': bmp = load_bmp(b1) x, y = state.gorigin state.screen.blit(bmp, [x, y]) pygame.display.flip() state.masks.append((bmp, x, y, e, v2, "kInventory")) state.inventory.append((b1, v1, v2, e, b2, b3)) if snd != '""': play_sound(snd, 0)
def run_savegame(b): b = resolve_expr(b) bmp = load_bmp(b) state.save_game = (bmp, 0, 0) state.screen.blit(bmp, [0, 0]) pygame.display.flip()
def run_soundarea(m, s): m = resolve_expr(m) s = resolve_expr(s) print("soundarea", m, s) bmp = load_bmp(m) state.sareas.append((bmp, s)) state.screen.blit(bmp, [0, 0]) pygame.display.flip()
def run_dossierbitmap(x, y): x = resolve_expr(x) y = resolve_expr(y) x, y = scale_point(x, y) assert (state.dossier_current_sheet is not None) assert (state.dossier_current_suspect is not None) bmp = load_bmp(state.dossiers[state.dossier_current_suspect][ state.dossier_current_sheet]) state.screen.blit(bmp, [x, y]) pygame.display.flip()
def run_dossierprevsuspect(b, x, y): b = resolve_expr(b) x = resolve_expr(x) y = resolve_expr(y) x, y = scale_point(x, y) bmp = load_bmp(b) state.dossier_previous_suspect = (bmp, x, y) state.screen.blit(bmp, [x, y]) pygame.display.flip()
def run_transition(v, e): v = resolve_expr(v) e = resolve_expr(e) if state.mode == 1: state.current_view_frame = load_bmp(state.game_frame) state.screen.blit(state.current_view_frame, [0, 0]) print("play transition", v) if (v != '""'): state.video_to_play = (v, e) else: assert (state.next_setting is None) state.next_setting = e
def run_dossierchgsheet(b, n, x, y): b = resolve_expr(b) n = resolve_expr(n) x = resolve_expr(x) y = resolve_expr(y) x, y = scale_point(x, y) bmp = load_bmp(b) if n == 1: state.dossier_next_sheet = (bmp, x, y) else: state.dossier_previous_sheet = (bmp, x, y) state.screen.blit(bmp, [x, y]) pygame.display.flip()
def render_dossier(): (bmp, x, y) = state.dossier_previous_sheet state.screen.blit(bmp, [x, y]) (bmp, x, y) = state.dossier_next_sheet state.screen.blit(bmp, [x, y]) csus = state.dossier_current_suspect cshe = state.dossier_current_sheet bmp = load_bmp(state.dossiers[csus][cshe]) state.screen.blit(bmp, [x, y]) (bmp, x, y) = state.dossier_previous_suspect state.screen.blit(bmp, [x, y]) (bmp, x, y) = state.dossier_next_suspect state.screen.blit(bmp, [x, y]) pygame.display.flip()
def run_bitmap(e, x, y): if (type(x) != int): x = resolve_expr(x) x = int(x) if (type(y) != int): y = resolve_expr(y) y = int(y) v = resolve_expr(e) print("bitmap", v, x, y, state.screen) bmp = load_bmp(v) if state.mode == 1: x, y = state.gorigin else: x, y = scale_point(x, y) state.screen.blit(bmp, [x, y]) pygame.display.flip()
def run_mask(m, e, c, x, y, drawn): m = resolve_expr(m) e = resolve_expr(e) c = resolve_expr(c) x = resolve_expr(x) y = resolve_expr(y) print("mask", m, e, c, x, y) bmp = load_bmp(m) if state.mode == 1: x, y = state.gorigin else: x, y = scale_point(x, y) print("mask (updated)", x, y) state.masks.append((bmp, x, y, e, "NULL", c)) if drawn: state.screen.blit(bmp, [x, y]) pygame.display.flip()
def run_movie(v, e): v = resolve_expr(v) e = resolve_expr(e) if state.mode == 1: state.current_view_frame = load_bmp(state.game_frame) state.screen.blit(state.current_view_frame, [0, 0]) print("play movie", v) if (v != '""' and v not in state.played_movies): state.video_to_play = (v, e) state.played_movies.append(v) elif (v == '""'): state.repeated_movie_exit = e assert (state.next_setting is None) state.next_setting = e else: print("movie", v, "already played") state.next_setting = state.repeated_movie_exit