Add OFFICIAL_SWF_IS_BROKEN glitch

Snug Hissi and Old School Draik outfits are gonna be labeled with this!
This commit is contained in:
Emi Matchu 2021-03-18 06:59:21 -07:00
parent 6638ff409e
commit a848533c7c
3 changed files with 51 additions and 1 deletions

View file

@ -40,6 +40,39 @@ function OutfitKnownGlitchesBadge({ appearance }) {
}
}
// Look for items with the OFFICIAL_SWF_IS_INCORRECT glitch.
for (const item of items) {
const itemHasBrokenOnNeopetsDotCom = item.appearance.layers.some((l) =>
(l.knownGlitches || []).includes("OFFICIAL_SWF_IS_INCORRECT")
);
const itemHasBrokenUnconvertedLayers = item.appearance.layers.some(
(l) =>
(l.knownGlitches || []).includes("OFFICIAL_SWF_IS_INCORRECT") &&
!layerUsesHTML5(l)
);
if (itemHasBrokenOnNeopetsDotCom) {
glitchMessages.push(
<Box key={`official-swf-is-incorrect-for-item-${item.id}`}>
{itemHasBrokenUnconvertedLayers ? (
<>
We're aware of a glitch affecting the art for <i>{item.name}</i>.
Last time we checked, this glitch affected its appearance on
Neopets.com, too. Hopefully this will be fixed once it's converted
to HTML5!
</>
) : (
<>
We're aware of a previous glitch affecting the art for{" "}
<i>{item.name}</i>, but it might have been resolved during HTML5
conversion. Please use the feedback form on the homepage to let us
know if it looks right, or still looks wrong! Thank you!
</>
)}
</Box>
);
}
}
// Look for items with the OFFICIAL_SVG_IS_INCORRECT glitch.
for (const item of items) {
const itemHasOfficialSvgIsIncorrect = item.appearance.layers.some((l) =>

View file

@ -430,6 +430,12 @@ function ItemLayerSupportKnownGlitchesFields({
<FormLabel fontWeight="bold">Known glitches</FormLabel>
<CheckboxGroup value={selectedKnownGlitches} onChange={onChange}>
<VStack spacing="2" align="flex-start">
<Checkbox value="OFFICIAL_SWF_IS_INCORRECT">
Official SWF is incorrect{" "}
<Box display="inline" color="gray.400" fontSize="sm">
(Will display a message)
</Box>
</Checkbox>
<Checkbox value="OFFICIAL_SVG_IS_INCORRECT">
Official SVG is incorrect{" "}
<Box display="inline" color="gray.400" fontSize="sm">
@ -439,7 +445,8 @@ function ItemLayerSupportKnownGlitchesFields({
<Checkbox value="REQUIRES_OTHER_BODY_SPECIFIC_ASSETS">
Only fits pets with other body-specific assets{" "}
<Box display="inline" color="gray.400" fontSize="sm">
(DTI's fault: bodyId=0 is a lie!)
(DTI's fault: bodyId=0 is a lie! Will mark incompatible for some
pets.)
</Box>
</Checkbox>
</VStack>

View file

@ -83,6 +83,16 @@ const typeDefs = gql`
}
enum AppearanceLayerKnownGlitch {
# This glitch means that the official SWF art for this layer is known to
# contain a glitch. (It probably also affects the PNG captured by Classic
# DTI, too.)
#
# In this case, there's no correct art we _can_ show until it's converted
# to HTML5. We'll show a message explaining the situation, and automatically
# change it to be more hesitant after HTML5 conversion, because we don't
# know in advance whether the layer will be fixed during conversion.
OFFICIAL_SWF_IS_INCORRECT
# This glitch means that, while the official manifest declares an SVG
# version of this layer, it is incorrect and does not visually match the
# PNG version that the official pet editor users.