@@ -31231,30 +31231,36 @@ void FFScript::do_loadgenericdata(const bool v)
3123131231void FFScript::do_create_paldata()
3123231232{
3123331233 ri->paldataref = get_free_paldata();
31234- user_paldata* pd = &script_paldatas[ri->paldataref-1];
31235- for (int32_t q = 0; q < PALDATA_BITSTREAM_SIZE; ++q)
31236- pd->colors_used[q] = 0;
31234+ if (ri->paldataref > 0)
31235+ {
31236+ user_paldata* pd = &script_paldatas[ri->paldataref - 1];
31237+ for (int32_t q = 0; q < PALDATA_BITSTREAM_SIZE; ++q)
31238+ pd->colors_used[q] = 0;
31239+ }
3123731240 ri->d[rEXP1] = ri->paldataref;
3123831241}
3123931242
3124031243void FFScript::do_create_paldata_clr()
3124131244{
3124231245 ri->paldataref = get_free_paldata();
31243- user_paldata* pd = &script_paldatas[ri->paldataref - 1];
31244- int32_t clri = get_register(sarg1);
31245-
31246- RGB c = _RGB((clri >> 16) & 0xFF, (clri >> 8) & 0xFF, clri & 0xFF);
31247-
31248- if (c.r < 0 || c.g < 0 || c.b < 0)
31246+ if (ri->paldataref > 0)
3124931247 {
31250- Z_scripterrlog("Invalid rgb (%d) passed to Graphics->CreatePalData().\n", clri);
31251- }
31252- c.r = vbound(c.r, 0, 63);
31253- c.g = vbound(c.g, 0, 63);
31254- c.b = vbound(c.b, 0, 63);
31248+ user_paldata* pd = &script_paldatas[ri->paldataref - 1];
31249+ int32_t clri = get_register(sarg1);
3125531250
31256- for(int32_t q = 0; q < 240; ++q)
31257- pd->set_color(q, c);
31251+ RGB c = _RGB((clri >> 16) & 0xFF, (clri >> 8) & 0xFF, clri & 0xFF);
31252+
31253+ if (c.r < 0 || c.g < 0 || c.b < 0)
31254+ {
31255+ Z_scripterrlog("Invalid rgb (%d) passed to Graphics->CreatePalData().\n", clri);
31256+ }
31257+ c.r = vbound(c.r, 0, 63);
31258+ c.g = vbound(c.g, 0, 63);
31259+ c.b = vbound(c.b, 0, 63);
31260+
31261+ for (int32_t q = 0; q < 240; ++q)
31262+ pd->set_color(q, c);
31263+ }
3125831264 ri->d[rEXP1] = ri->paldataref;
3125931265}
3126031266
0 commit comments