source: abuse/trunk/src/ui/volumewindow.cpp @ 494

Last change on this file since 494 was 494, checked in by Sam Hocevar, 8 years ago

style: remove trailing spaces, fix copyright statements.

File size: 2.5 KB
Line 
1/*
2 *  Abuse - dark 2D side-scrolling platform game
3 *  Copyright (c) 1995 Crack dot Com
4 *  Copyright (c) 2005-2011 Sam Hocevar <sam@hocevar.net>
5 *
6 *  This software was released into the Public Domain. As with most public
7 *  domain software, no warranty is made or implied by Crack dot Com or
8 *  Jonathan Clark.
9 */
10
11#include "config.h"
12
13#include "volumewindow.h" // class VolumeWindow
14#include "property.h"     // class property_manager
15#include "gui.h"          // ico_button
16
17VolumeWindow::VolumeWindow() : Jwindow("Volume")
18{
19    char const *ff = "art/frame.spe";
20    u_u = cache.reg(ff, "u_u", SPEC_IMAGE, 1),
21    u_d = cache.reg(ff, "u_u", SPEC_IMAGE, 1),
22    u_ua = cache.reg(ff, "u_ua", SPEC_IMAGE, 1),
23    u_da = cache.reg(ff, "u_da", SPEC_IMAGE, 1),
24    d_u = cache.reg(ff, "d_u", SPEC_IMAGE, 1),
25    d_d = cache.reg(ff, "d_u", SPEC_IMAGE, 1),
26    d_ua = cache.reg(ff, "d_ua", SPEC_IMAGE, 1),
27    d_da = cache.reg(ff, "d_da", SPEC_IMAGE, 1),
28    slider = cache.reg(ff, "volume_slide", SPEC_IMAGE, 1);
29    x = prop->getd("volume_x", xres / 2 - 20);
30    y = prop->getd("volume_y", yres / 2 - 50);
31    inm->add(new ico_button(10, 27, ID_SFX_DOWN, d_u, d_d, d_ua, d_da,
32                  new ico_button(21, 27, ID_SFX_UP, u_u, u_d, u_ua, u_da,
33                      new info_field(15, 42, 0, symbol_str("SFXv"),
34                          new ico_button(10, 72, ID_MUSIC_DOWN, d_u, d_d, d_ua, d_da,
35                              new ico_button(21, 72, ID_MUSIC_UP, u_u, u_d, u_ua, u_da,
36                                  new info_field(10, 86, 0, symbol_str("MUSICv"), NULL)))))));
37
38    //reconfigure();
39    bg = cache.reg(ff, "vcontrol", SPEC_IMAGE, 1);
40    l = cache.img(bg)->width();
41    h = cache.img(bg)->height();
42    screen = new image(l, h, NULL, 2);
43    redraw();
44}
45
46void VolumeWindow::redraw()
47{
48    cache.img(bg)->put_image(screen, 0, 0);
49    draw_music_vol();
50    draw_sfx_vol();
51    inm->redraw();
52}
53
54void VolumeWindow::draw_vol(int x1, int y1, int x2, int y2, int t,
55                            int max, int c1, int c2)
56{
57    int dx = x1 + t * (x2 - x1) / max;
58    if(t != 0)
59    {
60        cache.img(slider)->put_image(screen, x1, y1);
61//      screen->bar(x1,y1,dx,y2,c1);
62    }
63    else
64        dx--;
65
66    if(dx < x2)
67        screen->bar(dx + 1, y1, x2, y2, c2);
68}
69
70void VolumeWindow::draw_sfx_vol()
71{
72    draw_vol(6, 16, 34, 22, sfx_volume, 127,
73             pal->find_closest(200, 75, 19), pal->find_closest(40, 0, 0));
74}
75
76void VolumeWindow::draw_music_vol()
77{
78    draw_vol(6, 61, 34, 67, music_volume, 127,
79             pal->find_closest(255, 0, 0), pal->find_closest(40, 0, 0));
80}
81
Note: See TracBrowser for help on using the repository browser.