def main():
    pg.init()
    a = pg.display.set_mode((800, 400))
    testsurf = pg.surface.Surface((2, 2))
    testsurf.fill(COLOURS['green'])
    t = Terrain('dirt', 'flattish')
    t_surf = t.build_surface()
    a.blit(t_surf, (0, 0))
    print('blitted')
    #d = CharacterImage('test', WeaponDummy(testsurf), (0, 0), {}, {})
    #d.start_thread((200, 100), a)
    print(
        CharacterImage.get_topleft_coord(t,
                                         *CharacterImage.find_closest_of(
                                             t, '*')))
    truecoord = CharacterImage.find_closest_of(
        t, '*')[0], CharacterImage.find_closest_of(t, '*')[1]
    print(
        CharacterImage.get_topleft_coord(t, *truecoord),
        CharacterImage.get_topleft_coord(t,
                                         *CharacterImage.find_closest_of(
                                             t, '*')))
    #s.start_thread(CharacterImage.get_topleft_coord(t, *CharacterImage.find_closest_of(t, '#')), a)
    # for i in range(100):
    #     i = CharacterImage('test', WeaponDummy(testsurf), (0,0), {}, {})
    #     i.start_thread((0, 0 ), a)
    pause = events.Pause()
    s = CharacterImage('test', WeaponDummy(testsurf),
                       CharacterImage.get_topleft_coord(t, *truecoord), {}, {})
    print(CharacterImage.get_topleft_coord(t, *truecoord))
    s.start_thread(800, a)

    while True:
        #a.blit(PICS['Maps']['army'], CharacterImage.get_topleft_coord(t, *CharacterImage.find_closest_of(t, '*')))
        #s.build_image(a)
        for i in pg.event.get():
            if i.type == QUIT:
                print('hello?')
                # cleanup and saving and stuff like that can go here, but for now time.sleep tests it.
                # always remove the pause from _internal_events before putting Quit
                os._exit(0)

                #import time; time.sleep(1)

        try:
            pg.display.update()
            a.fill(COLOURS['black'])
            a.blit(t_surf, (0, 0))
        except pg.error:
            # os._exit is about to be called in a seperate thread
            pass

        print('updated')
        CLOCK.tick(FPS)