diff options
author | Vincent Hamm | 2002-04-20 09:30:04 +0000 |
---|---|---|
committer | Vincent Hamm | 2002-04-20 09:30:04 +0000 |
commit | db2e80383196f6837a618183a1e79b11bf7aab27 (patch) | |
tree | 37097bf72080297393e1ee1f3c807da66776c64b | |
parent | eb773b477a669427ff84e422bbdb1c3d6b63e8ef (diff) | |
download | scummvm-rg350-db2e80383196f6837a618183a1e79b11bf7aab27.tar.gz scummvm-rg350-db2e80383196f6837a618183a1e79b11bf7aab27.tar.bz2 scummvm-rg350-db2e80383196f6837a618183a1e79b11bf7aab27.zip |
Fix the twin ball elevator
svn-id: r4020
-rw-r--r-- | costume.cpp | 5 | ||||
-rw-r--r-- | gfx.cpp | 70 | ||||
-rw-r--r-- | script_v2.cpp | 3 |
3 files changed, 8 insertions, 70 deletions
diff --git a/costume.cpp b/costume.cpp index 3756acbb7e..3c0aabd3b7 100644 --- a/costume.cpp +++ b/costume.cpp @@ -702,6 +702,9 @@ void CostumeRenderer::proc_special(Actor *a, byte mask2) byte shadow4; byte shadow5; + if(a->costume==153) //Samnmax elevator FIXME + return; + shadow1=a->shadow_mode & 0x80; shadow2=a->shadow_mode & 0x40; shadow3=a->shadow_mode & 0x20; @@ -761,7 +764,7 @@ void CostumeRenderer::proc_special(Actor *a, byte mask2) { pcolor=_vm->_proc_special_palette[*dst]; } -proc_special_end:; *dst = pcolor; +proc_special_end:; *dst = pcolor; } } dst += 320; @@ -2641,131 +2641,67 @@ CHECK_HEAP; void Scumm::createSpecialPalette(int16 a, int16 b, int16 c, int16 d, int16 e, int16 colorMin, int16 colorMax) - { - byte *palPtr; - byte *curPtr; - byte *searchPtr; - - byte colorComp1; - byte colorComp2; - byte colorComp3; - - byte searchComp1; - byte searchComp2; - byte searchComp3; - - short int bestResult; - short int currentResult; byte currentIndex; - - int i; - int j; - - palPtr = getPalettePtr(); - - for(i=colorMin;i<colorMax;i++) - _proc_special_palette[i]=i; - - curPtr = palPtr + colorMin*3; - - for(i=colorMin;i<colorMax;i++) - { - - /* colorComp1=((((*curPtr++)>>2)*c)>>8)&0x7F; - - colorComp2=((((*curPtr++)>>2)*d)>>8)&0x7F; - - colorComp3=((((*curPtr++)>>2)*e)>>8)&0x7F;*/ - - + //colorComp1=((((*curPtr++)>>2)*c)>>8)&0x7F; + //colorComp2=((((*curPtr++)>>2)*d)>>8)&0x7F; + //colorComp3=((((*curPtr++)>>2)*e)>>8)&0x7F; /* Yazoo: I can't get the right formula, so I made one that just work fine with SamnMax flashlight */ - - colorComp1=(*curPtr++)+10; - colorComp2=(*curPtr++)+10; - colorComp3=(*curPtr++)+10; - - - - searchPtr = palPtr; - bestResult = 0x7FFF; - currentIndex = 0; - - for(j=0;j<256;j++) - { - searchComp1 = (*searchPtr++); - searchComp2 = (*searchPtr++); - searchComp3 = (*searchPtr++); - - currentResult = abs(searchComp1-colorComp1) + abs(searchComp2-colorComp2) + abs(searchComp3-colorComp3); - - if(currentResult<bestResult) - if(currentIndex >= a && currentIndex <= b) - { - _proc_special_palette[i]=currentIndex; - bestResult=currentResult; - } - - currentIndex++; - } - - - } }
\ No newline at end of file diff --git a/script_v2.cpp b/script_v2.cpp index e61a42448e..65326c44aa 100644 --- a/script_v2.cpp +++ b/script_v2.cpp @@ -2812,8 +2812,7 @@ void Scumm::o6_miscOps() break; case 112: /* palette shift? */ - warning("stub o6_miscOps_112(%d,%d,%d,%d,%d,%d,%d)", - args[1], args[2], args[3], args[4], args[5], args[6], args[7]); + createSpecialPalette(args[1], args[2], args[3], args[4], args[5], args[6], args[7]); break; case 114: /* palette? */ |