示例#1
0
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)
示例#2
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()
示例#3
0
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()
示例#4
0
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()
示例#5
0
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()
示例#6
0
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
示例#7
0
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()
示例#8
0
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()
示例#9
0
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()
示例#10
0
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()
示例#11
0
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