diff --git a/binding-mri/font-binding.cpp b/binding-mri/font-binding.cpp index ec6ae14..2a8856a 100644 --- a/binding-mri/font-binding.cpp +++ b/binding-mri/font-binding.cpp @@ -152,7 +152,7 @@ RB_METHOD(FontSetName) Font *f = getPrivateData(self); char result[256]; - fontSetNameHelper(self, argc, argv, "default_name", + fontSetNameHelper(self, argc, argv, "name", result, sizeof(result)); f->setName(result); diff --git a/src/audiostream.cpp b/src/audiostream.cpp index 75f7acd..ae572ef 100644 --- a/src/audiostream.cpp +++ b/src/audiostream.cpp @@ -179,6 +179,7 @@ void AudioStream::fadeOut(int duration) lockStream(); ALStream::State sState = stream.queryState(); + noResumeStop = true; if (fade.active) { diff --git a/src/audiostream.h b/src/audiostream.h index d968af3..3f234a0 100644 --- a/src/audiostream.h +++ b/src/audiostream.h @@ -55,7 +55,10 @@ struct AudioStream /* Note that 'extPaused' and 'noResumeStop' are * effectively only used with the AudioStream - * instance representing the BGM */ + * instance representing the BGM. + * They are not AtomicFlags because they're regarded + * as part of the underlying stream state, and + * always accessed with the stream lock held */ /* Flag indicating that the MeWatch paused this * (BGM) stream because a ME started playing. diff --git a/src/bitmap.cpp b/src/bitmap.cpp index 19ffc9e..48f3337 100644 --- a/src/bitmap.cpp +++ b/src/bitmap.cpp @@ -1107,6 +1107,8 @@ void Bitmap::drawText(const IntRect &rect, const char *str, int align) p->ensureFormat(txtSurf, SDL_PIXELFORMAT_ABGR8888); + int rawTxtSurfH = txtSurf->h; + if (p->font->getShadow()) applyShadow(txtSurf, *p->format, c); @@ -1155,7 +1157,7 @@ void Bitmap::drawText(const IntRect &rect, const char *str, int align) if (alignX < rect.x) alignX = rect.x; - int alignY = rect.y + (rect.h - txtSurf->h) / 2; + int alignY = rect.y + (rect.h - rawTxtSurfH) / 2; float squeeze = (float) rect.w / txtSurf->w;