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

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

imlib: refactor a few image methods so that they use vec2i.

File size: 2.7 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
[555]7 *  domain software, no warranty is made or implied by Crack dot Com, by
8 *  Jonathan Clark, or by Sam Hocevar.
[56]9 */
10
[555]11#if defined HAVE_CONFIG_H
12#   include "config.h"
13#endif
[56]14
[512]15#include "common.h"
16
[481]17#include "volumewindow.h" // class VolumeWindow
18#include "property.h"     // class property_manager
19#include "gui.h"          // ico_button
[39]20
[120]21VolumeWindow::VolumeWindow() : Jwindow("Volume")
[2]22{
[118]23    char const *ff = "art/frame.spe";
[123]24    u_u = cache.reg(ff, "u_u", SPEC_IMAGE, 1),
25    u_d = cache.reg(ff, "u_u", SPEC_IMAGE, 1),
26    u_ua = cache.reg(ff, "u_ua", SPEC_IMAGE, 1),
27    u_da = cache.reg(ff, "u_da", SPEC_IMAGE, 1),
28    d_u = cache.reg(ff, "d_u", SPEC_IMAGE, 1),
29    d_d = cache.reg(ff, "d_u", SPEC_IMAGE, 1),
30    d_ua = cache.reg(ff, "d_ua", SPEC_IMAGE, 1),
31    d_da = cache.reg(ff, "d_da", SPEC_IMAGE, 1),
32    slider = cache.reg(ff, "volume_slide", SPEC_IMAGE, 1);
[118]33    x = prop->getd("volume_x", xres / 2 - 20);
34    y = prop->getd("volume_y", yres / 2 - 50);
35    inm->add(new ico_button(10, 27, ID_SFX_DOWN, d_u, d_d, d_ua, d_da,
36                  new ico_button(21, 27, ID_SFX_UP, u_u, u_d, u_ua, u_da,
37                      new info_field(15, 42, 0, symbol_str("SFXv"),
38                          new ico_button(10, 72, ID_MUSIC_DOWN, d_u, d_d, d_ua, d_da,
39                              new ico_button(21, 72, ID_MUSIC_UP, u_u, u_d, u_ua, u_da,
40                                  new info_field(10, 86, 0, symbol_str("MUSICv"), NULL)))))));
[124]41
[118]42    //reconfigure();
[123]43    bg = cache.reg(ff, "vcontrol", SPEC_IMAGE, 1);
[512]44    l = cache.img(bg)->Size().x;
45    h = cache.img(bg)->Size().y;
[644]46    m_surf = new image(cache.img(bg)->Size(), NULL, 2);
[118]47    redraw();
[2]48}
49
[118]50void VolumeWindow::redraw()
[2]51{
[650]52    m_surf->PutImage(cache.img(bg), vec2i(0, 0));
[118]53    draw_music_vol();
54    draw_sfx_vol();
55    inm->redraw();
[2]56}
57
[118]58void VolumeWindow::draw_vol(int x1, int y1, int x2, int y2, int t,
59                            int max, int c1, int c2)
[2]60{
[118]61    int dx = x1 + t * (x2 - x1) / max;
62    if(t != 0)
[2]63    {
[650]64        m_surf->PutImage(cache.img(slider), vec2i(x1, y1));
[644]65//      m_surf->bar(x1,y1,dx,y2,c1);
[2]66    }
[118]67    else
68        dx--;
[2]69
[118]70    if(dx < x2)
[655]71        m_surf->Bar(vec2i(dx + 1, y1), vec2i(x2, y2), c2);
[2]72}
73
[118]74void VolumeWindow::draw_sfx_vol()
[2]75{
[118]76    draw_vol(6, 16, 34, 22, sfx_volume, 127,
77             pal->find_closest(200, 75, 19), pal->find_closest(40, 0, 0));
[2]78}
79
[118]80void VolumeWindow::draw_music_vol()
[2]81{
[118]82    draw_vol(6, 61, 34, 67, music_volume, 127,
83             pal->find_closest(255, 0, 0), pal->find_closest(40, 0, 0));
[2]84}
85
Note: See TracBrowser for help on using the repository browser.