OpenTTD Source  20241125-master-g5b02f51e17
LanguageWriter Struct Referenceabstract

Base class for all language writers. More...

#include <strgen.h>

Inheritance diagram for LanguageWriter:
LanguageFileWriter TranslationWriter

Public Member Functions

virtual void WriteHeader (const LanguagePackHeader *header)=0
 Write the header metadata. More...
 
virtual void Write (const uint8_t *buffer, size_t length)=0
 Write a number of bytes. More...
 
virtual void Finalise ()=0
 Finalise writing the file.
 
virtual ~LanguageWriter ()=default
 Especially destroy the subclasses.
 
virtual void WriteLength (uint length)
 Write the length as a simple gamma. More...
 
virtual void WriteLang (const StringData &data)
 Actually write the language. More...
 

Detailed Description

Base class for all language writers.

Definition at line 108 of file strgen.h.

Member Function Documentation

◆ Write()

virtual void LanguageWriter::Write ( const uint8_t *  buffer,
size_t  length 
)
pure virtual

Write a number of bytes.

Parameters
bufferThe buffer to write.
lengthThe amount of byte to write.

Implemented in LanguageFileWriter, and TranslationWriter.

◆ WriteHeader()

virtual void LanguageWriter::WriteHeader ( const LanguagePackHeader header)
pure virtual

Write the header metadata.

The multi-byte integers are already converted to the little endian format.

Parameters
headerThe header to write.

Implemented in LanguageFileWriter, and TranslationWriter.

◆ WriteLang()

void LanguageWriter::WriteLang ( const StringData data)
virtual

Actually write the language.

Parameters
dataThe data about the string.

Definition at line 895 of file strgen_base.cpp.

References _lang, StringData::CountInUse(), LanguagePackHeader::offsets, and StringData::tabs.

◆ WriteLength()

void LanguageWriter::WriteLength ( uint  length)
virtual

Write the length as a simple gamma.

Parameters
lengthThe number to write.

Reimplemented in TranslationWriter.

Definition at line 876 of file strgen_base.cpp.


The documentation for this struct was generated from the following files: