// NewBitmapTextRenderer returns a new text renderer for the given bitmap font. func NewBitmapTextRenderer(font model.Font) TextRenderer { return &bitmapTextRenderer{ cp: text.DefaultCodepage(), font: font, bitmap: BitmapFromRaw(font.Bitmap), lastCharacterIndex: font.FirstCharacter + len(font.GlyphXOffsets) - 1} }
func NewTextures(library io.StoreLibrary) (textures *Textures, err error) { var cybstrng [model.LanguageCount]chunk.Store var images chunk.Store for i := 0; i < model.LanguageCount && err == nil; i++ { cybstrng[i], err = library.ChunkStore(localized[i].cybstrng) } if err == nil { images, err = library.ChunkStore("texture.res") } if err == nil { textures = &Textures{cybstrng: cybstrng, images: images, cp: text.DefaultCodepage()} } return }
// NewGameObjects returns a new instance of GameObjects. func NewGameObjects(library io.StoreLibrary) (gameObjects *GameObjects, err error) { var cybstrng [model.LanguageCount]chunk.Store var objart chunk.Store var objProperties objprop.Store if err == nil { objart, err = library.ChunkStore("objart.res") } if err == nil { objProperties, err = library.ObjpropStore("objprop.dat") } for i := 0; i < model.LanguageCount && err == nil; i++ { cybstrng[i], err = library.ChunkStore(localized[i].cybstrng) } if err == nil { gameObjects = &GameObjects{ cybstrng: cybstrng, cp: text.DefaultCodepage(), desc: objprop.StandardProperties(), objProperties: objProperties, objart: objart, objIconOffsets: make(map[res.ObjectID]int), mapIconOffsets: make(map[res.ObjectID]int)} offset := 1 for classIndex, classDesc := range gameObjects.desc { for subclassIndex, subclassDesc := range classDesc.Subclasses { for typeIndex := uint32(0); typeIndex < subclassDesc.TypeCount; typeIndex++ { objID := res.MakeObjectID(res.ObjectClass(classIndex), res.ObjectSubclass(subclassIndex), res.ObjectType(typeIndex)) commonProperties := gameObjects.commonProperties(objID) extraImages := int(commonProperties.Extra >> 4) gameObjects.objIconOffsets[objID] = offset offset = offset + 3 + extraImages gameObjects.mapIconOffsets[objID] = offset - 1 } } } } return }