screenless: get rid of va_list (nw)

This commit is contained in:
hap 2019-06-12 23:55:30 +02:00
parent 65ddca8b75
commit 54b3e04d09
5 changed files with 15 additions and 18 deletions

View File

@ -146,7 +146,7 @@ public:
hh_amis2k_state(mconfig, type, tag)
{
// bumpers are dimmed
set_display_levels(2, 0.02, 0.1);
set_display_levels(0.02, 0.1);
}
void prepare_display();

View File

@ -429,7 +429,7 @@ public:
melodym_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_pic16_state(mconfig, type, tag)
{
set_display_level(0.9);
set_display_levels(0.9);
}
DECLARE_WRITE8_MEMBER(write_b);

View File

@ -1213,7 +1213,7 @@ public:
hh_tms1k_state(mconfig, type, tag)
{
// offsense blips are brighter
set_display_levels(2, 0.005, 0.03);
set_display_levels(0.005, 0.03);
}
void prepare_display();
@ -1345,7 +1345,7 @@ public:
hh_tms1k_state(mconfig, type, tag)
{
// offsense blips are brighter
set_display_levels(2, 0.005, 0.03);
set_display_levels(0.005, 0.03);
}
void prepare_display();

View File

@ -27,8 +27,7 @@ public:
// set defaults (60hz frames, 0.5 interpolation, 1 brightness level)
set_display_duration(attotime::from_hz(60));
set_display_factor(0.5);
reset_display_levels();
set_display_level(0.02);
set_display_levels(0.02);
}
protected:
@ -45,8 +44,8 @@ protected:
void set_display_factor(double factor);
void reset_display_levels();
void set_display_level(double level, u8 i = 0);
void set_display_levels(int levels, ...);
void set_display_level(u8 i, double level);
void set_display_levels(double l0, double l1 = 1.0, double l2 = 1.0, double l3 = 1.0);
void set_display_size(int maxx, int maxy);
void set_display_segmask(u32 digits, u32 mask);

View File

@ -75,22 +75,20 @@ void screenless_state::reset_display_levels()
std::fill_n(m_ds_level, ARRAY_LENGTH(m_ds_level), 1.0);
}
void screenless_state::set_display_level(double level, u8 i)
void screenless_state::set_display_level(u8 i, double level)
{
// set a brightness level, range is 0.0 to 1.0
m_ds_level[i] = level;
}
void screenless_state::set_display_levels(int levels, ...)
void screenless_state::set_display_levels(double l0, double l1, double l2, double l3)
{
// set multiple brightness levels
va_list v;
va_start(v, levels);
for (int i = 0; i < levels; i++)
m_ds_level[i] = va_arg(v, double);
va_end(v);
m_ds_level[levels] = 1.0;
// init brightness level(s) (if you need to set more than 4, use set_display_level)
reset_display_levels();
m_ds_level[0] = l0;
m_ds_level[1] = l1;
m_ds_level[2] = l2;
m_ds_level[3] = l3;
}
void screenless_state::set_display_size(int maxx, int maxy)