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

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

style: remove trailing spaces, fix copyright statements.

File size: 2.5 KB
RevLine 
[56]1/*
2 *  Abuse - dark 2D side-scrolling platform game
3 *  Copyright (c) 1995 Crack dot Com
[494]4 *  Copyright (c) 2005-2011 Sam Hocevar <sam@hocevar.net>
[56]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
[481]13#include "volumewindow.h" // class VolumeWindow
14#include "property.h"     // class property_manager
15#include "gui.h"          // ico_button
[39]16
[120]17VolumeWindow::VolumeWindow() : Jwindow("Volume")
[2]18{
[118]19    char const *ff = "art/frame.spe";
[123]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);
[118]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)))))));
[124]37
[118]38    //reconfigure();
[123]39    bg = cache.reg(ff, "vcontrol", SPEC_IMAGE, 1);
40    l = cache.img(bg)->width();
41    h = cache.img(bg)->height();
[118]42    screen = new image(l, h, NULL, 2);
43    redraw();
[2]44}
45
[118]46void VolumeWindow::redraw()
[2]47{
[123]48    cache.img(bg)->put_image(screen, 0, 0);
[118]49    draw_music_vol();
50    draw_sfx_vol();
51    inm->redraw();
[2]52}
53
[118]54void VolumeWindow::draw_vol(int x1, int y1, int x2, int y2, int t,
55                            int max, int c1, int c2)
[2]56{
[118]57    int dx = x1 + t * (x2 - x1) / max;
58    if(t != 0)
[2]59    {
[124]60        cache.img(slider)->put_image(screen, x1, y1);
[118]61//      screen->bar(x1,y1,dx,y2,c1);
[2]62    }
[118]63    else
64        dx--;
[2]65
[118]66    if(dx < x2)
67        screen->bar(dx + 1, y1, x2, y2, c2);
[2]68}
69
[118]70void VolumeWindow::draw_sfx_vol()
[2]71{
[118]72    draw_vol(6, 16, 34, 22, sfx_volume, 127,
73             pal->find_closest(200, 75, 19), pal->find_closest(40, 0, 0));
[2]74}
75
[118]76void VolumeWindow::draw_music_vol()
[2]77{
[118]78    draw_vol(6, 61, 34, 67, music_volume, 127,
79             pal->find_closest(255, 0, 0), pal->find_closest(40, 0, 0));
[2]80}
81
Note: See TracBrowser for help on using the repository browser.