diff --git a/constants/const.go b/constants/const.go index 2e93e279..4d86a98a 100644 --- a/constants/const.go +++ b/constants/const.go @@ -182,6 +182,12 @@ var TouchGenIDs = []string{ "RFN", "RFP", "R64", "RYW", } +var PaynPlayIDs = []string{ + "WFC", "R3B", "WR9", "WRX", "SJD", "SD2", "SJX", + "SJO", "SE3", "SZA", "SZB", "R9J", "SXE", "SXI", "R36", + "SXA", "SWA", "SWB", "SXF", "R9O", "SUS", "SU3", "R83", + +} var DevAppIDs = []string{ "007E", "091E", "410E", "413E", "5NEA", "RAAE", } diff --git a/constants/rating_images.go b/constants/rating_images.go index 248e4627..b911ae39 100644 --- a/constants/rating_images.go +++ b/constants/rating_images.go @@ -51,6 +51,238 @@ var ( //go:embed ratings/cero/Z.jpg CEROZ []byte + //go:embed ratings/esrb/descriptors/alcohol_reference.jpg + ESRBAlcoholReference []byte + + //go:embed ratings/esrb/descriptors/animated_blood.jpg + ESRBAnimatedBlood []byte + + //go:embed ratings/esrb/descriptors/animated_violence.jpg + ESRBAnimatedViolence []byte + + //go:embed ratings/esrb/descriptors/blood_and_gore.jpg + ESRBBloodandGore []byte + + //go:embed ratings/esrb/descriptors/blood.jpg + ESRBBlood []byte + + //go:embed ratings/esrb/descriptors/cartoon_violence.jpg + ESRBCartoonViolence []byte + + //go:embed ratings/esrb/descriptors/comic_mischief.jpg + ESRBComicMischief []byte + + //go:embed ratings/esrb/descriptors/crude_humor.jpg + ESRBCrudeHumor []byte + + //go:embed ratings/esrb/descriptors/drug_reference.jpg + ESRBDrugReference []byte + + //go:embed ratings/esrb/descriptors/edutainment.jpg + ESRBEdutainment []byte + + //go:embed ratings/esrb/descriptors/fantasy_violence.jpg + ESRBFantasyViolence []byte + + //go:embed ratings/esrb/descriptors/intense_violence.jpg + ESRBIntenseViolence []byte + + //go:embed ratings/esrb/descriptors/language.jpg + ESRBLanguage []byte + + //go:embed ratings/esrb/descriptors/lyrics.jpg + ESRBLyrics []byte + + //go:embed ratings/esrb/descriptors/mature_humor.jpg + ESRBMatureHumor []byte + + //go:embed ratings/esrb/descriptors/mild_animated_violence.jpg + ESRBMildAnimatedViolence []byte + + //go:embed ratings/esrb/descriptors/mild_blood.jpg + ESRBMildBlood []byte + + //go:embed ratings/esrb/descriptors/mild_cartoon_violence.jpg + ESRBMildCartoonViolence []byte + + //go:embed ratings/esrb/descriptors/mild_fantasy_violence.jpg + ESRBMildFantasyViolence []byte + + //go:embed ratings/esrb/descriptors/mild_language.jpg + ESRBMildLanguage []byte + + //go:embed ratings/esrb/descriptors/mild_lyrics.jpg + ESRBMildLyrics []byte + + //go:embed ratings/esrb/descriptors/mild_sexual_themes.jpg + ESRBMildSexualThemes []byte + + //go:embed ratings/esrb/descriptors/mild_suggestive_themes.jpg + ESRBMildSuggestiveThemes []byte + + //go:embed ratings/esrb/descriptors/mild_violence.jpg + ESRBMildViolence []byte + + //go:embed ratings/esrb/descriptors/partial_nudity.jpg + ESRBPartialNudity []byte + + //go:embed ratings/esrb/descriptors/sexual_content.jpg + ESRBSexualContent []byte + + //go:embed ratings/esrb/descriptors/sexual_themes.jpg + ESRBSexualThemes []byte + + //go:embed ratings/esrb/descriptors/simulated_gambling.jpg + ESRBSimulatedGambling []byte + + //go:embed ratings/esrb/descriptors/some_adult_assistance_may_be_needed.jpg + ESRBSomeAdultAssistanceMayBeNeeded []byte + + //go:embed ratings/esrb/descriptors/strong_language.jpg + ESRBStrongLanguage []byte + + //go:embed ratings/esrb/descriptors/strong_lyrics.jpg + ESRBStrongLyrics []byte + + //go:embed ratings/esrb/descriptors/strong_sexual_content.jpg + ESRBStrongSexualContent []byte + + //go:embed ratings/esrb/descriptors/suggestive_themes.jpg + ESRBSuggestiveThemes []byte + + //go:embed ratings/esrb/descriptors/tobacco_reference.jpg + ESRBTobaccoReference []byte + + //go:embed ratings/esrb/descriptors/use_of_alcohol.jpg + ESRBUseofAlcohol []byte + + //go:embed ratings/esrb/descriptors/use_of_drugs.jpg + ESRBUseofDrugs []byte + + //go:embed ratings/esrb/descriptors/use_of_tobacco.jpg + ESRBUseofTobacco []byte + + //go:embed ratings/esrb/descriptors/violence.jpg + ESRBViolence []byte + + //go:embed ratings/esrb/descriptors/violent_references.jpg + ESRBViolentReferences []byte + + ESRBDescriptors = map[string][]byte{ + "alcohol reference": ESRBAlcoholReference, + "animated blood": ESRBAnimatedBlood, + "animated violence": ESRBAnimatedViolence, + "blood and gore": ESRBBloodandGore, + "blood": ESRBBlood, + "cartoon violence": ESRBCartoonViolence, + "comic mischief": ESRBComicMischief, + "crude humor": ESRBCrudeHumor, + "drug reference": ESRBDrugReference, + "edutainment": ESRBEdutainment, + "fantasy violence": ESRBFantasyViolence, + "intense violence": ESRBIntenseViolence, + "language": ESRBLanguage, + "lyrics": ESRBLyrics, + "mature humor": ESRBMatureHumor, + "mild animated violence": ESRBMildAnimatedViolence, + "mild blood": ESRBMildBlood, + "mild cartoon violence": ESRBMildCartoonViolence, + "mild fantasy violence": ESRBMildFantasyViolence, + "mild language": ESRBMildLanguage, + "mild lyrics": ESRBMildLyrics, + "mild sexual themes": ESRBMildSexualThemes, + "mild suggestive themes": ESRBMildSuggestiveThemes, + "mild violence": ESRBMildViolence, + "partial nudity": ESRBPartialNudity, + "sexual content": ESRBSexualContent, + "sexual themes": ESRBSexualThemes, + "simulated gambling": ESRBSimulatedGambling, + "some adult assistance may be needed": ESRBSomeAdultAssistanceMayBeNeeded, + "strong language": ESRBStrongLanguage, + "strong lyrics": ESRBStrongLyrics, + "strong sexual content": ESRBStrongSexualContent, + "suggestive themes": ESRBSuggestiveThemes, + "tobacco reference": ESRBTobaccoReference, + "use of alcohol": ESRBUseofAlcohol, + "use of drugs": ESRBUseofDrugs, + "use of tobacco": ESRBUseofTobacco, + "violence": ESRBViolence, + "violent references": ESRBViolentReferences, + } + //go:embed ratings/pegi/descriptors/discrimination.jpg + PEGIDiscrimination []byte + + //go:embed ratings/pegi/descriptors/drugs.jpg + PEGIDrugs []byte + + //go:embed ratings/pegi/descriptors/fear.jpg + PEGIFear []byte + + //go:embed ratings/pegi/descriptors/gambling.jpg + PEGIGambling []byte + + //go:embed ratings/pegi/descriptors/bad-language.jpg + PEGILanguage []byte + + //go:embed ratings/pegi/descriptors/sexual-content.jpg + PEGISexualContent []byte + + //go:embed ratings/pegi/descriptors/violence.jpg + PEGIViolence []byte + + //go:embed ratings/pegi/descriptors/online.jpg + PEGIOnline []byte + + PEGIDescriptors = map[string][]byte{ + "discrimination": PEGIDiscrimination, + "drugs": PEGIDrugs, + "fear": PEGIFear, + "gambling": PEGIGambling, + "language": PEGILanguage, + "sex": PEGISexualContent, + "violence": PEGIViolence, + "online": PEGIOnline, + } + + //go:embed ratings/cero/descriptors/crime.jpg + CEROCrime []byte + + //go:embed ratings/cero/descriptors/drinkingandsmoking.jpg + CERODrinkingAndSmoking []byte + + //go:embed ratings/cero/descriptors/drugs.jpg + CERODrugs []byte + + //go:embed ratings/cero/descriptors/fright.jpg + CEROFright []byte + + //go:embed ratings/cero/descriptors/gambling.jpg + CEROGambling []byte + + //go:embed ratings/cero/descriptors/language.jpg + CEROLanguage []byte + + //go:embed ratings/cero/descriptors/love.jpg + CEROLove []byte + + //go:embed ratings/cero/descriptors/sex.jpg + CEROSex []byte + + //go:embed ratings/cero/descriptors/violence.jpg + CEROViolence []byte + + CERODescriptors = map[string][]byte{ + "crime": CEROCrime, + "alcohol/tobacco": CERODrinkingAndSmoking, + "drugs": CERODrugs, + "horror": CEROFright, + "gambling": CEROGambling, + "language": CEROLanguage, + "love": CEROLove, + "sex": CEROSex, + "violence": CEROViolence, + } + Images = map[RatingGroup][][]byte{ CERO: {CEROA, CEROB, CEROC, CEROD, CEROZ}, ESRB: {ECImage, EImage, E10Image, TImage, MImage}, diff --git a/constants/ratings/cero/descriptors/crime.jpg b/constants/ratings/cero/descriptors/crime.jpg new file mode 100644 index 00000000..68bbb551 Binary files /dev/null and b/constants/ratings/cero/descriptors/crime.jpg differ diff --git a/constants/ratings/cero/descriptors/drinkingandsmoking.jpg b/constants/ratings/cero/descriptors/drinkingandsmoking.jpg new file mode 100644 index 00000000..5bfc76f8 Binary files /dev/null and b/constants/ratings/cero/descriptors/drinkingandsmoking.jpg differ diff --git a/constants/ratings/cero/descriptors/drugs.jpg b/constants/ratings/cero/descriptors/drugs.jpg new file mode 100644 index 00000000..c2535238 Binary files /dev/null and b/constants/ratings/cero/descriptors/drugs.jpg differ diff --git a/constants/ratings/cero/descriptors/fright.jpg b/constants/ratings/cero/descriptors/fright.jpg new file mode 100644 index 00000000..346f8c29 Binary files /dev/null and b/constants/ratings/cero/descriptors/fright.jpg differ diff --git a/constants/ratings/cero/descriptors/gambling.jpg b/constants/ratings/cero/descriptors/gambling.jpg new file mode 100644 index 00000000..31baa7aa Binary files /dev/null and b/constants/ratings/cero/descriptors/gambling.jpg differ diff --git a/constants/ratings/cero/descriptors/language.jpg b/constants/ratings/cero/descriptors/language.jpg new file mode 100644 index 00000000..f4afc919 Binary files /dev/null and b/constants/ratings/cero/descriptors/language.jpg differ diff --git a/constants/ratings/cero/descriptors/love.jpg b/constants/ratings/cero/descriptors/love.jpg new file mode 100644 index 00000000..84d125da Binary files /dev/null and b/constants/ratings/cero/descriptors/love.jpg differ diff --git a/constants/ratings/cero/descriptors/sex.jpg b/constants/ratings/cero/descriptors/sex.jpg new file mode 100644 index 00000000..ea4cbecc Binary files /dev/null and b/constants/ratings/cero/descriptors/sex.jpg differ diff --git a/constants/ratings/cero/descriptors/violence.jpg b/constants/ratings/cero/descriptors/violence.jpg new file mode 100644 index 00000000..c64615ab Binary files /dev/null and b/constants/ratings/cero/descriptors/violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/alcohol_reference.jpg b/constants/ratings/esrb/descriptors/alcohol_reference.jpg new file mode 100644 index 00000000..8584b4c8 Binary files /dev/null and b/constants/ratings/esrb/descriptors/alcohol_reference.jpg differ diff --git a/constants/ratings/esrb/descriptors/animated_blood.jpg b/constants/ratings/esrb/descriptors/animated_blood.jpg new file mode 100644 index 00000000..0e493eb4 Binary files /dev/null and b/constants/ratings/esrb/descriptors/animated_blood.jpg differ diff --git a/constants/ratings/esrb/descriptors/animated_violence.jpg b/constants/ratings/esrb/descriptors/animated_violence.jpg new file mode 100644 index 00000000..586272b2 Binary files /dev/null and b/constants/ratings/esrb/descriptors/animated_violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/blood.jpg b/constants/ratings/esrb/descriptors/blood.jpg new file mode 100644 index 00000000..69479a52 Binary files /dev/null and b/constants/ratings/esrb/descriptors/blood.jpg differ diff --git a/constants/ratings/esrb/descriptors/blood_and_gore.jpg b/constants/ratings/esrb/descriptors/blood_and_gore.jpg new file mode 100644 index 00000000..5d3549c7 Binary files /dev/null and b/constants/ratings/esrb/descriptors/blood_and_gore.jpg differ diff --git a/constants/ratings/esrb/descriptors/cartoon_violence.jpg b/constants/ratings/esrb/descriptors/cartoon_violence.jpg new file mode 100644 index 00000000..4e17d8c4 Binary files /dev/null and b/constants/ratings/esrb/descriptors/cartoon_violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/comic_mischief.jpg b/constants/ratings/esrb/descriptors/comic_mischief.jpg new file mode 100644 index 00000000..9fa5080f Binary files /dev/null and b/constants/ratings/esrb/descriptors/comic_mischief.jpg differ diff --git a/constants/ratings/esrb/descriptors/crude_humor.jpg b/constants/ratings/esrb/descriptors/crude_humor.jpg new file mode 100644 index 00000000..4d8dd7a5 Binary files /dev/null and b/constants/ratings/esrb/descriptors/crude_humor.jpg differ diff --git a/constants/ratings/esrb/descriptors/drug_reference.jpg b/constants/ratings/esrb/descriptors/drug_reference.jpg new file mode 100644 index 00000000..0c03eb16 Binary files /dev/null and b/constants/ratings/esrb/descriptors/drug_reference.jpg differ diff --git a/constants/ratings/esrb/descriptors/edutainment.jpg b/constants/ratings/esrb/descriptors/edutainment.jpg new file mode 100644 index 00000000..f96919c6 Binary files /dev/null and b/constants/ratings/esrb/descriptors/edutainment.jpg differ diff --git a/constants/ratings/esrb/descriptors/fantasy_violence.jpg b/constants/ratings/esrb/descriptors/fantasy_violence.jpg new file mode 100644 index 00000000..9f904bb7 Binary files /dev/null and b/constants/ratings/esrb/descriptors/fantasy_violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/intense_violence.jpg b/constants/ratings/esrb/descriptors/intense_violence.jpg new file mode 100644 index 00000000..be1bb0ed Binary files /dev/null and b/constants/ratings/esrb/descriptors/intense_violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/language.jpg b/constants/ratings/esrb/descriptors/language.jpg new file mode 100644 index 00000000..7131421c Binary files /dev/null and b/constants/ratings/esrb/descriptors/language.jpg differ diff --git a/constants/ratings/esrb/descriptors/lyrics.jpg b/constants/ratings/esrb/descriptors/lyrics.jpg new file mode 100644 index 00000000..0cc7e7a7 Binary files /dev/null and b/constants/ratings/esrb/descriptors/lyrics.jpg differ diff --git a/constants/ratings/esrb/descriptors/mature_humor.jpg b/constants/ratings/esrb/descriptors/mature_humor.jpg new file mode 100644 index 00000000..7d644cee Binary files /dev/null and b/constants/ratings/esrb/descriptors/mature_humor.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_animated_violence.jpg b/constants/ratings/esrb/descriptors/mild_animated_violence.jpg new file mode 100644 index 00000000..74ae3333 Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_animated_violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_blood.jpg b/constants/ratings/esrb/descriptors/mild_blood.jpg new file mode 100644 index 00000000..fc71897a Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_blood.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_cartoon_violence.jpg b/constants/ratings/esrb/descriptors/mild_cartoon_violence.jpg new file mode 100644 index 00000000..76f2a4b9 Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_cartoon_violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_fantasy_violence.jpg b/constants/ratings/esrb/descriptors/mild_fantasy_violence.jpg new file mode 100644 index 00000000..cca73472 Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_fantasy_violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_language.jpg b/constants/ratings/esrb/descriptors/mild_language.jpg new file mode 100644 index 00000000..6e537a75 Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_language.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_lyrics.jpg b/constants/ratings/esrb/descriptors/mild_lyrics.jpg new file mode 100644 index 00000000..18539585 Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_lyrics.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_sexual_themes.jpg b/constants/ratings/esrb/descriptors/mild_sexual_themes.jpg new file mode 100644 index 00000000..bbcd123c Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_sexual_themes.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_suggestive_themes.jpg b/constants/ratings/esrb/descriptors/mild_suggestive_themes.jpg new file mode 100644 index 00000000..5260e911 Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_suggestive_themes.jpg differ diff --git a/constants/ratings/esrb/descriptors/mild_violence.jpg b/constants/ratings/esrb/descriptors/mild_violence.jpg new file mode 100644 index 00000000..e3fdfb95 Binary files /dev/null and b/constants/ratings/esrb/descriptors/mild_violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/partial_nudity.jpg b/constants/ratings/esrb/descriptors/partial_nudity.jpg new file mode 100644 index 00000000..b0707406 Binary files /dev/null and b/constants/ratings/esrb/descriptors/partial_nudity.jpg differ diff --git a/constants/ratings/esrb/descriptors/sexual_content.jpg b/constants/ratings/esrb/descriptors/sexual_content.jpg new file mode 100644 index 00000000..4daf4348 Binary files /dev/null and b/constants/ratings/esrb/descriptors/sexual_content.jpg differ diff --git a/constants/ratings/esrb/descriptors/sexual_themes.jpg b/constants/ratings/esrb/descriptors/sexual_themes.jpg new file mode 100644 index 00000000..abb08200 Binary files /dev/null and b/constants/ratings/esrb/descriptors/sexual_themes.jpg differ diff --git a/constants/ratings/esrb/descriptors/simulated_gambling.jpg b/constants/ratings/esrb/descriptors/simulated_gambling.jpg new file mode 100644 index 00000000..23cc4713 Binary files /dev/null and b/constants/ratings/esrb/descriptors/simulated_gambling.jpg differ diff --git a/constants/ratings/esrb/descriptors/some_adult_assistance_may_be_needed.jpg b/constants/ratings/esrb/descriptors/some_adult_assistance_may_be_needed.jpg new file mode 100644 index 00000000..061a7e2f Binary files /dev/null and b/constants/ratings/esrb/descriptors/some_adult_assistance_may_be_needed.jpg differ diff --git a/constants/ratings/esrb/descriptors/strong_language.jpg b/constants/ratings/esrb/descriptors/strong_language.jpg new file mode 100644 index 00000000..00a8c2e3 Binary files /dev/null and b/constants/ratings/esrb/descriptors/strong_language.jpg differ diff --git a/constants/ratings/esrb/descriptors/strong_lyrics.jpg b/constants/ratings/esrb/descriptors/strong_lyrics.jpg new file mode 100644 index 00000000..ca6396e3 Binary files /dev/null and b/constants/ratings/esrb/descriptors/strong_lyrics.jpg differ diff --git a/constants/ratings/esrb/descriptors/strong_sexual_content.jpg b/constants/ratings/esrb/descriptors/strong_sexual_content.jpg new file mode 100644 index 00000000..ed8b6d3b Binary files /dev/null and b/constants/ratings/esrb/descriptors/strong_sexual_content.jpg differ diff --git a/constants/ratings/esrb/descriptors/suggestive_themes.jpg b/constants/ratings/esrb/descriptors/suggestive_themes.jpg new file mode 100644 index 00000000..1b7239d8 Binary files /dev/null and b/constants/ratings/esrb/descriptors/suggestive_themes.jpg differ diff --git a/constants/ratings/esrb/descriptors/tobacco_reference.jpg b/constants/ratings/esrb/descriptors/tobacco_reference.jpg new file mode 100644 index 00000000..3309bd5e Binary files /dev/null and b/constants/ratings/esrb/descriptors/tobacco_reference.jpg differ diff --git a/constants/ratings/esrb/descriptors/use_of_alcohol.jpg b/constants/ratings/esrb/descriptors/use_of_alcohol.jpg new file mode 100644 index 00000000..4ef591aa Binary files /dev/null and b/constants/ratings/esrb/descriptors/use_of_alcohol.jpg differ diff --git a/constants/ratings/esrb/descriptors/use_of_drugs.jpg b/constants/ratings/esrb/descriptors/use_of_drugs.jpg new file mode 100644 index 00000000..4da4e3d7 Binary files /dev/null and b/constants/ratings/esrb/descriptors/use_of_drugs.jpg differ diff --git a/constants/ratings/esrb/descriptors/use_of_tobacco.jpg b/constants/ratings/esrb/descriptors/use_of_tobacco.jpg new file mode 100644 index 00000000..40adf886 Binary files /dev/null and b/constants/ratings/esrb/descriptors/use_of_tobacco.jpg differ diff --git a/constants/ratings/esrb/descriptors/violence.jpg b/constants/ratings/esrb/descriptors/violence.jpg new file mode 100644 index 00000000..9b2ac7ed Binary files /dev/null and b/constants/ratings/esrb/descriptors/violence.jpg differ diff --git a/constants/ratings/esrb/descriptors/violent_references.jpg b/constants/ratings/esrb/descriptors/violent_references.jpg new file mode 100644 index 00000000..fdb844e7 Binary files /dev/null and b/constants/ratings/esrb/descriptors/violent_references.jpg differ diff --git a/constants/ratings/pegi/12.jpg b/constants/ratings/pegi/12.jpg index 3eb2b294..c37e9be6 100644 Binary files a/constants/ratings/pegi/12.jpg and b/constants/ratings/pegi/12.jpg differ diff --git a/constants/ratings/pegi/16.jpg b/constants/ratings/pegi/16.jpg index 88f31214..e0b9dfa2 100644 Binary files a/constants/ratings/pegi/16.jpg and b/constants/ratings/pegi/16.jpg differ diff --git a/constants/ratings/pegi/18.jpg b/constants/ratings/pegi/18.jpg index 9aa7f573..8a5b5600 100644 Binary files a/constants/ratings/pegi/18.jpg and b/constants/ratings/pegi/18.jpg differ diff --git a/constants/ratings/pegi/3.jpg b/constants/ratings/pegi/3.jpg index 6dc67bc3..6c25c40e 100644 Binary files a/constants/ratings/pegi/3.jpg and b/constants/ratings/pegi/3.jpg differ diff --git a/constants/ratings/pegi/7.jpg b/constants/ratings/pegi/7.jpg index ed94949d..e7688af0 100644 Binary files a/constants/ratings/pegi/7.jpg and b/constants/ratings/pegi/7.jpg differ diff --git a/constants/ratings/pegi/descriptors/bad-language.jpg b/constants/ratings/pegi/descriptors/bad-language.jpg new file mode 100644 index 00000000..f3511151 Binary files /dev/null and b/constants/ratings/pegi/descriptors/bad-language.jpg differ diff --git a/constants/ratings/pegi/descriptors/discrimination.jpg b/constants/ratings/pegi/descriptors/discrimination.jpg new file mode 100644 index 00000000..588eab23 Binary files /dev/null and b/constants/ratings/pegi/descriptors/discrimination.jpg differ diff --git a/constants/ratings/pegi/descriptors/drugs.jpg b/constants/ratings/pegi/descriptors/drugs.jpg new file mode 100644 index 00000000..d0ba95ae Binary files /dev/null and b/constants/ratings/pegi/descriptors/drugs.jpg differ diff --git a/constants/ratings/pegi/descriptors/fear.jpg b/constants/ratings/pegi/descriptors/fear.jpg new file mode 100644 index 00000000..58f0b88b Binary files /dev/null and b/constants/ratings/pegi/descriptors/fear.jpg differ diff --git a/constants/ratings/pegi/descriptors/gambling.jpg b/constants/ratings/pegi/descriptors/gambling.jpg new file mode 100644 index 00000000..fad4fca7 Binary files /dev/null and b/constants/ratings/pegi/descriptors/gambling.jpg differ diff --git a/constants/ratings/pegi/descriptors/online.jpg b/constants/ratings/pegi/descriptors/online.jpg new file mode 100644 index 00000000..cbae350e Binary files /dev/null and b/constants/ratings/pegi/descriptors/online.jpg differ diff --git a/constants/ratings/pegi/descriptors/sexual-content.jpg b/constants/ratings/pegi/descriptors/sexual-content.jpg new file mode 100644 index 00000000..4329065c Binary files /dev/null and b/constants/ratings/pegi/descriptors/sexual-content.jpg differ diff --git a/constants/ratings/pegi/descriptors/violence.jpg b/constants/ratings/pegi/descriptors/violence.jpg new file mode 100644 index 00000000..dba192f0 Binary files /dev/null and b/constants/ratings/pegi/descriptors/violence.jpg differ diff --git a/gametdb/gametdb.go b/gametdb/gametdb.go index 6aba90b5..6a1acc40 100644 --- a/gametdb/gametdb.go +++ b/gametdb/gametdb.go @@ -54,8 +54,9 @@ type Date struct { } type Rating struct { - Type string `xml:"type,attr"` - Value string `xml:"value,attr"` + Type string `xml:"type,attr"` + Value string `xml:"value,attr"` + Descriptor []string `xml:"descriptor"` } type Controllers struct { diff --git a/v6/dllist/titles.go b/v6/dllist/titles.go index f9bd91e3..a11131c8 100644 --- a/v6/dllist/titles.go +++ b/v6/dllist/titles.go @@ -306,9 +306,10 @@ func (l *List) GenerateTitleStruct(games *[]gametdb.Game, defaultTitleType const } i := info.Info{} - i.MakeHeader(titleID, game.Controllers.Players, companyID, table.TitleType, table.ReleaseYear, table.ReleaseMonth, table.ReleaseDay) + i.MakeHeader(id, titleID, game.Controllers.Players, companyID, table.TitleType, table.ReleaseYear, table.ReleaseMonth, table.ReleaseDay) i.RatingID = table.RatingID - i.MakeInfo(id, &game, fullTitle, synopsis, l.region, l.language, defaultTitleType, recommendations) + + i.MakeInfo(id, &game, fullTitle, synopsis, l.region, l.language, defaultTitleType, game.Rating.Descriptor, recommendations) } } } diff --git a/v6/info/controllers.go b/v6/info/controllers.go index d377315d..639bfe96 100644 --- a/v6/info/controllers.go +++ b/v6/info/controllers.go @@ -1,6 +1,7 @@ package info import ( + "NintendoChannel/constants" "NintendoChannel/gametdb" "unicode/utf16" ) @@ -49,4 +50,15 @@ func (i *Info) GetSupportedControllers(controllers *gametdb.Controllers) { break } } + // The WiiTDB XML labels the "wiimote" as a required accessory, therefore, this confuses the generator into mislabeling + // certain VC titles as supporting a Wii Remote when they do not. + switch i.Header.TitleType { + case constants.SNES, + constants.Nintendo64, + constants.Genesis: + i.SupportedControllers.WiiRemote = 0 + i.SupportedControllers.Nunchuk = 0 + case constants.NES: + i.SupportedControllers.Nunchuk = 0 + } } diff --git a/v6/info/features.go b/v6/info/features.go index f830a744..3fe44ed4 100644 --- a/v6/info/features.go +++ b/v6/info/features.go @@ -29,6 +29,10 @@ func (i *Info) GetSupportedFeatures(game *gametdb.Game) { } } + if slices.Contains(constants.PaynPlayIDs, game.ID[:3]) { + i.SupportedFeatures.NintendoWifiConnection = 2 + } + if game.Controllers.MultiCart > 1 { i.SupportedFeatures.WirelessPlay = 1 } diff --git a/v6/info/header.go b/v6/info/header.go index aaf9fda9..5c75779a 100644 --- a/v6/info/header.go +++ b/v6/info/header.go @@ -46,7 +46,7 @@ type Header struct { NumberOfPlayers uint8 } -func (i *Info) MakeHeader(gameID [4]byte, numberOfPlayers uint8, companyID uint32, titleType constants.TitleType, releaseYear uint16, releaseMonth, releaseDay uint8) { +func (i *Info) MakeHeader(softwareID uint32, gameID [4]byte, numberOfPlayers uint8, companyID uint32, titleType constants.TitleType, releaseYear uint16, releaseMonth, releaseDay uint8) { i.Header = Header{ Version: 6, Unknown: 2, @@ -70,7 +70,7 @@ func (i *Info) MakeHeader(gameID [4]byte, numberOfPlayers uint8, companyID uint3 RatingPictureOffset: 0, RatingPictureSize: 0, DetailedRatingPictureTable: [7]DetailedRatingPictureTable{}, - SoftwareID: 0, + SoftwareID: softwareID, GameID: gameID, TitleType: titleType, CompanyID: companyID, diff --git a/v6/info/image.go b/v6/info/image.go index 4c6d0063..b6fbcef9 100644 --- a/v6/info/image.go +++ b/v6/info/image.go @@ -6,13 +6,14 @@ import ( "bytes" _ "embed" "fmt" - "golang.org/x/image/draw" "image" "image/color" "image/jpeg" "image/png" "net/http" "os" + + "golang.org/x/image/draw" ) var regionToStr = map[constants.Region]string{ @@ -88,7 +89,7 @@ func (i *Info) WriteCoverArt(buffer *bytes.Buffer, titleType constants.TitleType // Creates a blank white image which will then be layered by the cover newImage := image.NewRGBA(image.Rect(0, 0, 384, 384)) draw.Draw(newImage, newImage.Bounds(), &image.Uniform{C: color.RGBA{R: 255, G: 255, B: 255, A: 255}}, image.Point{}, draw.Src) - draw.Draw(newImage, img.Bounds().Add(offset), img, image.Point{}, draw.Src) + draw.Draw(newImage, img.Bounds().Add(offset), img, image.Point{}, draw.Over) err = jpeg.Encode(buffer, newImage, nil) common.CheckError(err) @@ -119,3 +120,32 @@ func resize(origImage image.Image, x, y int) image.Image { draw.BiLinear.Scale(newImage, newImage.Bounds(), origImage, origImage.Bounds(), draw.Over, nil) return newImage } + +func (i *Info) WriteRatingDescriptor(buffer *bytes.Buffer, region constants.Region, RatingDescriptors []string) { + // Cap + maxDescriptors := min(len(RatingDescriptors), 7) + for j := 0; j < maxDescriptors; j++ { + s := RatingDescriptors[j] + + // Skip empty strings + if s == "" { + continue + } + + // Find matching descriptor image + var descriptorImage []byte + switch region { + case constants.Japan: + descriptorImage = constants.CERODescriptors[s] + case constants.PAL: + descriptorImage = constants.PEGIDescriptors[s] + case constants.NTSC: + descriptorImage = constants.ESRBDescriptors[s] + } + + // Set picture table entry + i.Header.DetailedRatingPictureTable[j].PictureOffset = i.GetCurrentSize(buffer) + buffer.Write(descriptorImage) + i.Header.DetailedRatingPictureTable[j].PictureSize = uint32(len(descriptorImage)) + } +} diff --git a/v6/info/info.go b/v6/info/info.go index b5768423..b61eda3d 100644 --- a/v6/info/info.go +++ b/v6/info/info.go @@ -44,7 +44,7 @@ type Info struct { var timePlayed = map[string]TimePlayed{} -func (i *Info) MakeInfo(fileID uint32, game *gametdb.Game, title, synopsis string, region constants.Region, language constants.Language, titleType constants.TitleType, recommendations map[string]common.TitleRecommendation) { +func (i *Info) MakeInfo(fileID uint32, game *gametdb.Game, title, synopsis string, region constants.Region, language constants.Language, titleType constants.TitleType, ratingDescriptors []string, recommendations map[string]common.TitleRecommendation) { i.GetSupportedControllers(&game.Controllers) i.GetSupportedFeatures(game) i.GetSupportedLanguages(game.Languages) @@ -119,6 +119,7 @@ func (i *Info) MakeInfo(fileID uint32, game *gametdb.Game, title, synopsis strin i.Header.PictureOffset = i.GetCurrentSize(imageBuffer) i.WriteCoverArt(imageBuffer, titleType, region, game.ID) i.WriteRatingImage(imageBuffer, region) + i.WriteRatingDescriptor(imageBuffer, region, ratingDescriptors) i.Header.Filesize = i.GetCurrentSize(imageBuffer) temp.Reset()